Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Because I must eventually diagnose and fix the HQ Sixteen’s Motor Stall Heisenbug, I printed out several views of the power supply PCB on glossy photo paper for best visibility.
The component side:
Power PCB – components
The solder side:
Power PCB – solder
The X-ray view:
Power PCB – overlaid
Considerable pondering and sketching produced an annotated view of the solder side:
HQ Sixteen – Power PCB – solder side – component labels – reduced
Here’s a tentative schematic drawn on the fly while extracting it from the PCB traces:
HQ Sixteen – Power PCB – rough schematic
!!CAUTION!! I have not verified the schematic against the actual hardware / PCB / components, as the Heisenbug has not reoccurred and I had no occasion to take the machine apart for checking. Do not assume any connections or components are correctly drawn.
Before I redraw the schematic in a more useful format, I must verify several nodes, because not everything in there makes sense.
In particular, the elaborate resistor string in the middle of the page seems to establish reference voltages for everything else, from the motor power supply turn-on delay to the RUN signal starting the motor.
The optoisolators definitely get the RUN command signal from the controller and feed the STALL motor status back to it. That’s assuming I understand enough to pin those labels on those connections.
!!CAUTION!!Read my caveats about the direct-from-the-AC-line non-isolated +160 VDC motor supply before connecting your instruments. The GND traces are not isolated from the AC line and are not at the normal “0 V” AC neutral potential.
But if this mess gets you further along with whatever you were doing, let me know how it all worked out for you.
PrusaSlicer V 2.9.0 for Linux arrives as a Flatpak, instead of the previous AppImage, which wouldn’t matter except that the Flatpak sandbox prohibits access to anything outside each user’s home directory. I long ago set up access to the fileserver in the basement through filesystems mounted on /mnt, which is now inaccessible.
Overall, 2.9.0 seems significantly more sluggish and uglier than the 2.8.x series, but at least Prusa still supports Linux.
Just to show PrusaSlicer can fetch files from the server and to have some pictures enhancing this post’s negligible SEO, I built a couple of Gear Fidget Toys:
Double Gear fidget toy – on platform
Which pop off the platform ready to roll:
Double Gear fidget toy – finished
A trace of silicone grease eased between the pieces on a slip of paper makes the spinning action so smooth.
As usual, the multi-material version takes twice as long to build due to all the filament swapping. I think I must improve the MMU3’s spoolholders, because the MMU3 (very) occasionally fails to ram the filament into the extruder, seemingly due to the force required to pull filament from the recalcitrant spools.
Mary’s Handi-Quilter HQ Sixteen is new-to-her, but it’s had two previous owners over the past two decades. Neither of them reported any particular problems with it, but it now displays an intermittent Motor Stall error on its LCD panel(s). This post summarizes what I know and guesstimate to date.
The Motor Stall error happens at the first motor motion after turning the machine on, upon pressing either the Needle Up/Down or Start/Stop button on the handlebars. The motor does not move at all during the slight pause between pushing the button and seeing the error message. Pressing either button again clears the error message, although I (obviously) do not know if doing so affects any of the microcontroller’s internal status flags; the error dependably reoccurs after doing so.
A separate sector disk on the machine’s shaft sets the needle-up and needle-down positions through an optointerrupter:
The white silicone snot on the interrupter connector is original.
After the error occurs, slowly turning the machine handwheel while pressing either button generally prevents the error message from reappearing, suggesting the “stalled” signal from the motor is working and the signal reaches the microcontroller.
Turning the handwheel while pressing the Up/Down button does not produce an error message due to the “motor” not stopping at the appropriate edge of the sector disk.
The InterWebs suggest a thread jam, crud in the bobbin, and a needle crash can trigger a Motor Stall. When the machine is operating correctly, running it at slow speed and stopping the handwheel by hand (it has little torque) triggers the Motor Stall error message. However, the controller will clear the message and the machine will resume normal operation thereafter.
Conversely, when the Motor Stall error occurs at startup, it remains absolutely consistent and survives the usual “Reboot that sucker!” power cycle. Leaving the machine turned off and untouched for a few hours / overnight may reset whatever is wrong, after which it will run normally through many power cycles.
Long enough, indeed, to finish an entire practice quilt over the course of several days:
HQ Sixteen – remounted handlebars in use
The component side of the power supply / motor interface PCB inside the pod:
Power PCB – components
Connections:
Microcontroller board at top left
BLDC shaft motor middle right
Frame ground on green wire
AC power input on the IEC jack
Power switch just above IEC jack
A closer view of the ICs:
Power PCB – IC detail
Some initial thoughts on the circuitry, without detailed PCB tracing …
Although the date codes suggest it was built in 2005, the electrolytic caps show no signs of The Plague.
The TO-220 package is a classic LM7815 regulator with its tab soldered to a copper pad. No extensive copper pour on either side serves as a heat spreader.
The 8 pin DIP is an MCT62 dual optoisolator handling the motor speed control and stall sense feedback.
The big transformer at the bottom sends raw DC to the microcontroller board through B3 and J1, filtered by two of the electrolytic caps along the left edge. I think the low side remains isolated from the power board’s common, thus isolating the microcontroller from the AC power line.
The Skynet (‽‽) transformer produces +15 V through the 7815 regulator and B21 bridge, filtered by the middle electrolytic cap along the left edge of the board. All of the circuitry on the board uses that supply, with the low side as circuit common.
The 160 VDC (!) supply for the BLDC motor comes directly from the AC power line with no isolation through the Current Limiter PTC, the B1 bridge, and the hulking electrolytic cap in the middle of the board. The relay in the upper right energizes just after the power goes on, connecting the motor power return lead to circuit common through the 5W 4.7Ω sandbox resistor. The “common” side of B1 is, thus, not connected to the neutral side of the power line and, more importantly, none of the circuitry on the PCB is isolated from the power line.
As a result, casually clipping a line-powered oscilloscope’s “ground” probe lead to what’s obviously the circuit “common” will, in the best case, turn the ground lead into a fuse. I’ve done this exactly once, deep in the past, with a Tektronix 7904 mainframe oscilloscope priced (with plugins) somewhat higher than the house we owned at the time; suffice it to say I learned from that mistake.
I think (part of) the LM339 quad comparator determines the relay’s time delay, perhaps in response to a signal from the microcontroller after it wakes up.
The solder side of the same board:
Power PCB – solder
The two green wires and trace cuts are original, apparently to power just B21 (the motor supply) from the AC line through the fuse + PTC, with the two transformers connected directly to the AC line through the switch & fuse. The two white wires on the bottom go to the power supply I added for the Chin Light; the Motor Stall problem predates that modification and the handlebar relocation.
After cleanup / squaring / tweaking, the two images combine into an X-ray view:
Power PCB – overlaid
With all that in mind, some possible causes …
Taking the power supply and microcontroller pods off the machine and poking all the obvious spots has no effect. Not taking them off and not touching the machine may resolve the problem by the next day, after having it fail consistently during most of the previous day.
The motor label says DR-8538-937, which does not appear anywhere online, so this must be a unique Handi-quilter part. An overview of DR-8538 motors suggests they’re available with a variety of windings, none of which match the machine’s 160 VDC supply voltage. Because the PCB has no high-voltage / high-current switching components, other than the bulk DC supply, the motor contains the BLDC control & drive circuitry. The closest matching catalog page conspicuously does not identify the motor wiring connections.
This figure from another catalog suggests the motor accepts a DC speed control and outputs an open-collector “locked rotor” signal:
BLDC DR-8538-555 Motor pinout
The Handi-Quilter DR-8538-937 motor has five leads in the J2six pin header which could match thusly to the four pins in the figure:
Pin 1 = 160 VDC (pin 1 → 24 VDC )
Pin 2 = missing
Pin 3 = common (pin 2 → GND)
Pin 4 = ? (pin 3 → -On)
Pin 5 = ? (pin 4 → Lock ?)
Pin 6 = +Buzzer and elsewhere (?)
This will obviously require reverse engineering the schematic from the PCB traces, thus the X-ray view above.
The most obvious cause of a Motor Stall would be a defective / failing motor. Through a cosmic coincidence, a motor “removed from a working HQ Sixteen” was available on eBay when I looked. It behaves no differently than the original motor and, while it’s possible both motors have the same internal fault, that seems unlikely. The “new” motor now runs the machine, with the original motor neatly bagged in a box against future need.
Re-seating all the ICs on both boards produced ominous crunching sounds, but no improvement. Wiping DeoxIT on the leads of the two ICs on the power board had no effect.
Replacing the 10-conductor ribbon cable between the two boards had no effect. I knew I was saving those insulation displacement connectors for a good reason.
The MCT62 optoisolator has a minimum current transfer ratio of 100% at 10 mA diode current. A gimmicked test setup produced 8 mA in the output transistors with 6 mA through the diodes, which seems good enough.
The relay clicks audibly, even with my deflicted ears, suggesting that it’s working, although we have not had a motor failure while we were listening. It is possible the contacts are intermittent, letting the relay click without making contact; we’re now listening intently.
The machine lives upstairs, my instruments live in the basement, and I am unwilling to lug an awkward and invaluable 50 pound lump between the two. The next time the motor stalls, I must dismount the power pod from the side of the machine, haul a bunch of gear (including an isolation transformer!) upstairs, and probe various points while it remains defunct.
Things to find out:
What each of the five motor wires do
Discover the circuitry handling the optoisolator signals
What drives the relay?
Even though the machine ran perfectly for a week, a fundamental Debugging Rule applies: If you didn’t fix it, it ain’t fixed.
You’ve just seen more tech info on the HQ Sixteen than previously existed on The InterWebs.
It’s a BeeLink Mini S12 (whatever that means) and squats near the low end of PC performance these days. I chose it based on reports from folks at Squidwrench having used similar units for various purposes without much pain, plus motivation from one of those weird Amazon “coupons” knocking the price down; it now sells for about that same price without the coupon.
It’s advertised as coming with Windows 11, but my advisors recommended a clean installation to get rid of crapware and possible pre-installed malware. I decided to start with the as-delivered system, then use the same product key to blow away the default installation.
The box / packaging did not include a Microsoft Windows Product Key and going through the first boot setup process produced this disconcerting result:
Win 11 license key – not found
More disconcerting: Windows Defender (Microsoft’s antivirus scanner / system integrity checker) was inactive and could not be installed from the MS “Store”. While not conclusive proof of pre-installed malware, the situation certainly seemed suspicious.
The seller sent a key that seemed to be for Windows 10:
BeeLink MS Product Key – Win 10 – redacted
Having been assured this would also validate a Win 11 installation, I did a clean installation using a USB flash drive produced by the MS installer, was never asked for a key, and eventually got to this point:
Win 11 Pro Installed Key – requires Digital License – redacted
Despite the missing OEM key and the footnote, everything seems just ducky:
Win 11 Activation with Digital License
I assume a clean installation blows away any malware resident on the “hard drive” (an M.2 solid state drive, of course), including rootkits and boot sector malware. My threat model does not include malware in the BIOS / UEFI firmware, which may be overoptimistic.
I declined all the optional MS products, refused various MS subscriptions, and generally tried to kill off a myriad invasive / advertising / “customized for you” features along the way. A casual search will produce many helpful guides for that process; I expect the details will change as MS continues to extract information from us. I set up a non-Administrator account for myself specifically to run LightBurn.
With that accomplished, I gave it a static IP address, created network shares to various directories on the “file server” (an ancient off-lease Dell Optiplex) holding the files I previously used with Linux LightBurn, installed Window LightBurn, got its preferences sorted out / restored from backup, and things eventually worked pretty much as intended.
This setup is intended for layout tweaking and laser control, not for protracted design work while standing in what’s now a 57 °F = 14 °C basement.
For what it’s worth, I must run the laser’s water chiller for half an hour to raise the cooling water to the normal 20 °C operating range; it has a water-cooled pump serving as a little heater.
The next step involved enabling Remote Desktop Protocol access so I can access the Windows box from my Comfy Chair at my usual battle station upstairs. More on that tomorrow …
One string of three white LEDs in the left handlebar of Mary’s Handi-Quilter HQ Sixteen died over the past two decades:
HQ Sixteen – left LED deaders
A view minus the glare:
HQ Sixteen – left LED PCB
I replaced all 15 LEDs with new-old-stock white LEDs from my stash, while neglecting to pay close attention to the silkscreened orientation marks.
I used up a lot of solder wick while re-extracting seven of the LEDs :
HQ Sixteen – left LED PCB – orientation
The LED in the front-right corner is in the string with the two LEDs just above it, while pointing in the opposite direction. This definitely violates the Principle of Least Surprise.
Being of sound mind, I tested all the replacement LEDs before installing them:
HQ Sixteen – LED testing
Which tedious process weeded out a couple of deaders, one with its case on backwards, and a handful of completely different white LEDs evidently from a different manufacturing batch. Buying low-budget LEDs directly from a sketchy source halfway around the planet does have its downsides.
Being that type of guy, I also tested the removed LEDs. Weirdly, one of the strings had two dead LEDs, which suggests one failed short and the increased current took another LED down with it.
Two of the three strings in the central PCB had died and were replaced without incident: they all pointed in the same direction and I can deal with consistency.
Judging from the dates codes on the ICs inside, Mary’s HandiQuilter Sixteen long-arm machine is about two decades old and many of the white LEDs in the front handlebars have gone dark:
HQ Sixteen – dead handlebar LEDs
The vertiginous view looks upward into the handlebar at the top of the machine (more on this later). The PCBs run strings of three series LEDs from a 16 VDC supply with a 390 Ω ballast resistor (oddly enough, on the ground end of the string), so one failed LED takes down all three.
I decided to replace all the LEDs, on the principle they’re surely dimmer than they used to beand to take advantage of a decade or so of improvement in white LEDs (yes, I have old stock).
After discovering that the HandiQuilter engineers violated the Principle of Least Surprise by orienting adjacent LED strings in opposite directions, I found one of the strings still didn’t light up.
Pop quiz: which one of these LEDs caused the problem?
5 mm LEDs – swapped polarity
To the best of my knowledge, all 5 mm round LED packages mark the cathode lead with a flat edge. It’s easy to remember, as the cathode side of the schematic symbol has a bar: straight bar = straight edge.
Inside, the LED chip’s cathode lead is bonded to the reflective cup, with the anode lead wire-bonded to the top.
Took me a while to see what was wrong, too.
For whatever it’s worth, the backward LED works fine.
Although essentially all kitchens feature a microwave over the stove, essentially all women have difficulty reaching it. As a result, our kitchen has two microwaves: the built-in Samsung over the stove and our trusty Sears Kenmore on the counter.
We’ve had it for a while:
Sears Microwave – data plate
Apart from the turntable rollers, it’s been utterly reliable for the last two decades, until the Start button stopped working:
Sears Microwave – control panel
The membrane switch panel seems to be in good shape, with no cracks in the plastic surface. Only the Start button failed, which suggested the switch contact pad had failed and ruled out broken matrix traces on the flexible circuitry.
Back in the day, they kept casual tinkerers out of the dangerous interior:
Sears Microwave – Torx security screw
That would not be me:
Sears Microwave – security bit set
Over the course of two decades, an occasional food explosion produces a surprising amount of debris:
Sears Microwave – exhaust vent spatter
Go ahead, I dare you, show us your microwave exhaust vent.
The control panel circuit board & wiring looks like this:
Sears Microwave – control board – in place
Unplugging all the connectors proceeds as you’d expect, whereupon a single screw (out of sight to the top) releases the control assembly and pulling the whole thing upward gets it out of the cabinet:
Sears Microwave – control board
The capacitors show no signs of The Plague, but those resistors near the optoisolator (?) in the middle have a suspicious thermal plume.
The ribbon cable from the control surface goes into a connector with the usual locking collar:
Sears Microwave – control panel cable connector
The cable also has cutouts latching into tabs molded into the collar:
Sears Microwave – control panel ribbon cable – locking tabs
Removing two screws at the transformer releases the PCB:
Sears Microwave – control panel interior
Which promptly slammed the whole repair mission to a dead stop: with the entire membrane switch assembly glued to the front of the plastic shell, there is no way to get to the Start switch. Trying to peel the membrane off will most certainly destroy it.
Because all the other functions still worked, including the Add Minute button, we figured we can eke out a few more years before something else fails or the lack of one button gets intolerably annoying.
I reassembled everything in reverse order, plugged it in, and, while setting the clock, discovered the Start button once again worked perfectly.
It’s a classic laying-on of hands repair: take something apart, replace nothing, reassemble, and it works!
If the Start button is not part of the overall switch matrix, with a separate conductor through the ribbon cable, un- and re- plugging would be enough to restore a flaky contact. We’ll never know the rest of the story, although with this post as a reminder, maybe I can remember to tear the matrix apart when we scrap it out.