Category Archives: Electronics

Posts about electronics. Usually meaning electrical gadgets smaller than a proper computer.

A Staggeringly Clever Input Conditioning Circuit

Input conditioning is one of those things that snares novice designers, causes late-process changes that overrun expectations on cost and board area, and traditionally isn’t terribly well taught to EE/CPE students.

It’s on my mind because next week is the point in the semester where I drag UK’s current crop of EE/CPE sophomores through a lab exercise I designed about 5 years ago to drive home gate delays, static hazards, switch bounce, etc.

While I was thinking about it, an upperclassman who regularly digs up neat stuff sent me the cleverest input conditioning circuit I’ve ever encountered.

The circuit comes from the late, great Don Lancaster of TV Typewriter fame, who in addition to his published designs, wrote and self-published a number of instructional/reference books. He had a well-deserved reputation for clever, cheap, robust circuit designs, and this particular trick is the highest wizardry.

Here’s the whole circuit diagram from the text:

The design comes from his CMOS Cookbook (PDF, link to his own hosted copy of the 2nd ED), on p.317 amid a discussion of Flip-Flops and Clocks. It is presented as “An Alternate-Action Push Button” which is entirely correct but really undersells how clever it is, and has apparently been in there since the 1st edition in 1977.

Here’s a link to it pre-built in the CircuitJS simulator so you can manipulate it and see it work. I had to play with it for a few minutes before I really understood the genius.

The fundamental trick is that it’s a master-slave Flip-Flop where the capacitor is the master storage element, and the pair of feedback-coupled inverters is the slave. The cap tanks the next state based on the output of the first inverter when the switch is open, and induces it on the inverters on switch close. This means, in addition to latching/toggling, it de-bounces, because the capacitor sets the time constant for hysteresis. It conditions, because the load sees the output of the second inverter. No race conditions or potential oscillations, because the cap can’t charge/discharge while the switch is held. No charge is moving inside the mechanism at steady state, so it’s not leaking power. It’s brilliant.

It is only suitable for relatively slow human-scale edges, so probably not a good method for encoders or the like. You can manipulate the time constant for the de-bounce by changing the value of the capacitor, but only down to a few 10s of nF (depending on what kind of inverter you use) before it gets marginal because it doesn’t have the charge to reliably throw the input of the first inverter.

Not only is it ridiculously cheap and simple as presented, which I think intends a 4067 or 74HC04, you can built it out of anything. Any inverting CMOS gate will work. Any inverting TTL gate will work. Ridiculous old RTL or DTL inverters work. A pair of N-Channel FETs (another CircuitJS link, has an extra transistor on the output for integrity reasons) with pullups to build your own cruddy NMOS inverters works. As would P-channels with pull-downs, or BJTs with resistors for constructed RTL (though doing it that way is leaky), or various other assemblages of tiny mass produced minimum cost components to make it even more minimal (though maybe not cheaper in a modern context).

I appreciate a clever domain-crossing design, and this is the highest form.

Posted in DIY, Electronics, General | Leave a comment

Anbernic RG351(p) and Powkiddy RGB10 Max2 Button Membranes are Drop-In Compatible

I’ve had an Anbernic RG351P for roughly 2 years now, and it’s an absolutely delightful object.

For those unfamiliar: the RG351 is an example of a class of little gaming emulation handhelds that started back in the mid-to-late 2000s with things like the Dingoo A330. They are, essentially, a tiny ARM (+ usually Linux) machine the size and shape of a handheld gaming device, set up with a built-in controller specifically to run games in emulation. The stock firmware on the RG351 is an ancient EmulationStation/RetroArch/Linux stack, but there are better alternatives – IMO, throwing in a decent SD card loaded with AmberElec is the first thing to do when you get one. It will play essentially everything from the dawn of gaming through the PlayStation and some (but not all) of the Nintendo 64 library, and has limited/marginal support for PSP and DS. It is …straightforward but not the sort of thing I’ll link… to obtain the full ROMsets for these platforms, they are frankly not that large. I paid about $90 for mine, I think they’ve gone up a bit, but there are a whole range of similar options at different price points, build qualities, and platform support.

The build quality, however, isn’t perfect. It’s small-brand China-export hardware. You know you have to be a little careful with it just from handling (I keep mine in a fitted case when throwing it in a bag). I’ve been through a screen (I got red lines in my original after about a year), re-gluing the back rubber pads (original glue melted), and now after two years I wore through the membrane behind the “A” button, and that’s actually what this post is about.

I opened it up, found the worn though button, looked around online, couldn’t any in stock, contacted Anbernic through their AliExpress store front (none available), asked the subreddit (no leads), and couldn’t come up with any exact replacement membranes.

HOWEVER on inspection, the membranes from the similar Powkiddy RBG10 appeared extremely similar, and those are readily available (as a $12ish pack of all the membranes and button caps to refit an RGB10, which includes two of the 4x membranes). I ordered this set via Aliexpress, and ~16 days later when it showed up, can confirm the membranes are slightly different, but drop-in compatible.

As you can see from the photos, the Powkiddy membranes have a bit more flat area, and the bottoms of the mounting holes are filled in rather than fully punched through, but the dimensions are exactly right. The height and force of the domes is even almost identical to the originals, and at effectively $6/membrane it’s a very reasonable repair.

Posted in DIY, Electronics, Entertainment, General, Objects | Leave a comment

More Adventures in Tiny Stepper Motors and Drivers

A tiny stepper motor being driven by a TMC2208 Stepstick

Last summer I posted about some tiny stepper motors from the internet, thinking about them as an alternative to mechatronic standbys like those terrible SG90 type servos or larger and differently terrible 28BYJ-48 geared steppers driven through a ULN2003.

At the time, I tried one with an A4988 stepstick from the top of my parts bin, and it didn’t work, so I figured there was some limitation and stuck to directly driving with H-bridges.
…it turns out the “limitation” was that the cheap current-setting potentiometer on that particular stepstick was broken so it was driving no output current.


  • Those little bipolar stepper motors work fine with bipolar stepper drivers.
  • Generational gains in bipolar stepper driver ICs are substantial (eg. A4988 -> TMC2208).
  • The venerable 28BYJ-48 unipolar stepper motor is easily modified to run from bipolar drivers.
Continue reading
Posted in DIY, Electronics, General, Objects | Leave a comment

Onn Surf 8 (100003561) Hacking

I have an Onn Surf 8 (One of the surprisingly-not-that-shitty ultra-cheap Walmart tablets) that my research group bought a couple of to use as Android dev testbeds. I’ve been occasionally using it as a normal tablet since I have it around, and have been consistently irritated by the collection of bloatware it comes with…. so I decided to hack it. To tl;dr this whole thing, ignore the collection of typically scammy Android dev forum and blogspam crud, and use the open-source mtkclient for your MediaTek Android device hackin’ needs.

Continue reading
Posted in Computers, DIY, Electronics, General, Objects | Leave a comment

TI Silent 700 745 Hard Copy Terminal

Top view of an open Texas Instruments Silent 700 Mod. 745 portable hard-copy TTY

I’ve wanted a hard-copy terminal for a while – both to play with and to use for explaining why serial works the way it does, but they tend to be expensive. Most of the common hard-copy terminals also aren’t really convenient objects to own: loud desk-sized machines (Teletype 33 family, most DECWriters), additionally clockwork nightmares (IBM 2741, earlier Teletype devices), which speak ridiculous protocols (…ditto).
This only leaves a handful of reasonable options, the most common of which are portables like TI Silent 700s and DEC LA12s, or one of the dasiywheel-printer based terminals (which are often non-period-correct things like a WheelWriter with a modern serial interface card in it).

So, of course, I’ve been idly keeping an eye out for a deal on one on the auction sites, and mid-October last year I got lucky: I scored a TI Silent 700 Mod. 745 for $34.00+S&H (about $47 all in) from a Shopgoodwill auction, and got it working.

Continue reading
Posted in Computers, Electronics, General, Objects | Leave a comment

HP Apollo 9000/735: Restoration Begins

An old friend of mine was moving cross-country and got in touch about taking “Some of his old computers” a while ago. I of course agreed, and it turned out to be quite a growth event for my hoard. There will be several posts about machines that arrived in this process as I get to them.

The list of things to be re-homed included “an Apollo” which I was hoping was a pre-acquision DN-something or a HP 300/400 series because I’ve had a long fascination with Domain/OS. What showed up is… not that. This is a later HP Apollo 9000/735 PA-RISC workstation, ca. 1992, which is easily the most exotic piece of hardware that transaction made me steward of. The OS options are HP-UX 7-10.20, a few BSDs, or a second-class NextStep 3.3 port; I’ll probably go with HP-UX10.2.
It came with the requisite HP-HIL keyboard and mouse (thank goodness) and a DEC branded 5xBNC to VGA cable.

Processor board with 12x16MB Memory modules

This thing was serious rarefied-air hardware when it was new: PA-7100 99 MHz processor, 208 MB of RAM in 12 obscene proprietary 16MB RAM modules + 16 soldered to the processor board, a HP CRX-24Z video board, a full-height SCSI HDD, and an AUI Ethernet daughter card. Probably in the ballpark of $60,000 new. It is also built like a piece of high-end industrial equipment, with big sheet-metal frames with handles that pull out of the back of the system for every major component.

My first attempt to power it resulted in …a feeble blink of the power light.
That suggested to me that the PSU was bad, probably due to defunct electrolytic capacitors. So, in standard “old electronics troubleshooting” fashion, I pulled the PSU, tore it down, read labels off the most suspicious capacitors, and ordered replacements.
The HP Museum folk also suggest the AC line filter module is a time bomb on all of these, so since it’s still made, I grabbed one of those too.

List with Mouser links, since they were the vendor with everything I needed in-stock:
8x 2200uF 25V, 12.5mmD 40mmH, 5mm lead spacing , Nichicon UPJ1E222MHD 8@1.09
1x 220uF 35v, 10mmD, 20mmH, 7mm lead spacing, Nichicon UPM1V221MPD1TA 1@$0.72
1x 1x 22uF, 25V, 5mmD, 12mmH: Nichicon UPS1E220MDD1TA 1@0.30
1x 12uF, 35v, 5mmD, 10mmH, Panasonic EEA-FC1V120B 1@$0.39
1x AC Power Entry Module, Schaffner FN9222R-10-06, 1@$6.50
I also ordered a couple 470uF 25V, 10mmD, 20mmH, 5mm lead spacing caps, but ended up not installing them because there was no sign of damage and they were hard to get a good angle on.

I passed on dealing with a couple smaller electrolytics with no signs of damage, and also two gigantic 2x 1200uF, 250v, 35mmD, 47mmH, 10mm lead spacing input caps that cost $7.50 a piece, since they looked both fine and like a fight to get out without damaging the PCB.
One of these days I really need to invest in a proper pump-driven desoldering gun to make this kind of task safer and easier.

I of course picked up an extra 1-2 of each since it was noise over paying for shipping, and it’s a good thing because I dropped one of the new 220uF/35V parts and it instantly disappeared forever, presumably to wherever my cat has been hiding toys recently.
The new input filter is slightly longer than the original and required a bit of creative terminal bending to fit around the caps, but it made it back into the case.
After the recap, it powered right up, and on a second try after giving the hard disc a gentle thump to unstick the heads from park, everything spun right up.

Full Status LEDs. 8,6,3,1 = “Autoselection Failure to Find Boot Device”

It booted to status LEDs at that point, and shows “8,6,3,1” which according to the service manual indicates “Autoselection Failure to Find Boot Device” – probably meaning the HDD is dead and/or wiped. The appropriate HP/UX media is easy enough to find.
Unfortunately, the monitor on my basement bench doesn’t seem to want to sync with the presumed 1280×1024@72Hz Sync-on-Green coming out of the video card, so I’m stuck for now until I can find a workaround. There is a 4th BNC labeled “Stereo” that might somehow be useful for sync? Or I need a scan converter/sync stripper gadget? … further research required.

Posted in Computers, Electronics, General | 1 Comment

Tiny Stepper Motors

I impulse bought a 5 pack of tiny stepper motors off Amazon for $3 to satisfy my curiosity. A colleague showed them to me and asked if I knew anything about them and …I didn’t, but they were too cheap and interesting not to try.

I couldn’t find any documentation on the internet from the identifying marks, so I burnt an afternoon figuring them out, and I’m posing my notes in case anyone else wants to make use of them.

Amazon product is “5 Pcs 2 Phase 4 Wire Micro Stepper Motor with Cable 3-5v Dc Dia 8mm Mini Stepper Motor Micro Stepping Motor for Digital Products Camera”. They look like they’re drop-in replacements or surplus from the production of …something… but I don’t see any obvious leads as to what.

The labeling on the motor itself is “SRG0808 003PLK5” which doesn’t turn up anything useful in a quick search, and the bag they came in is labeled “Fashion Worlds stepper motor 9496 x5” which is also not something googlable.

The motor comes attached to a flat flex cable with various adhesive pads built in, a boardlet, and a connector at one end. The output shaft is set in a brass gear roughly 2.75mm diameter with 12 involute profile teeth, about 3mm long – I don’t know small gears well enough to infer a ton from this, but it does seem like there is a lot of compatible gearing on the market.

Test setup for one of these steppers

To get around the lack of documentation, I probed one out with a DMM then built a test rig out of a dual L9110S H-Bridge board and a little STM32F103 dev board with the AccelStepper Arduino library to figure out the details.

They appear to be 20 steps per revolution motors, though they seem to work noticeably better with a half-step drive pattern.
They work nicely at 3.3V, but get a little hotter than I’m comfortable with if energized for an extended period of time; I also tried 5V and it seems to tolerate that fine as well, gain a noticeable amount of extra torque, and get appreciably louder.

I don’t have the tools around to easily test the effective torque, but was way more than I expected based on my experiences with other small hobby motors. In my little taped-to-the-table test setup (pictured), if I jammed a fingernail into the rotor when it was already at speed at around at about 1000 steps/s on a 5V supply, the motor and/or nail deflected rather than missing steps.

Motor Diagram

If you look at the motor with the output shaft facing away from you and label the four pads A,B,C,D, the phases are A-D and B-C with about 9Ω across each phase.

FPC Connector Pinout

If you look at the attached flat flex cable with the end pointed toward you, it has 7 contacts. For reference, let’s refer to them numbered 1-7 left to right. The ribbon itself is 4mm wide, and the contacts appear to be 0.5mm pitch, so it would probably mate with any of the various “7Pin 0.5mm Pitch FFC FPC” connectors floating around on the market for cheap if you wanted to spin a driver board for it that used the included cable.

The last 4 cable pins correspond to the motor terminals 4-D, 5-C, 6-B, 7-A… but for experimentation it’s easier to just solder leads directly to the motor pads. I used two pairs out of some old stranded CAT5, visible in the top picture.

IR Reflective Object Sensor Breakout

There is a bonus component on a little arc-shaped boardlet built into the flat flex. It appears to be some manner of reflective infrared optical sensor, which I assume was used to establish a home position in whatever these were designed for use in – frankly since it has convenient mounting holes and wiring it would be pretty nice to use the same way in most applications I would want one of these in.

The first three ribbon pins are attached to this part, and none of these pins are shared with the motor itself. For discussion, let’s number the pins 1,2 left to right on the side toward the flex cable, and 3,4 right to left along the other in typical IC fashion. The pins are broken out Part 1 = Flex 1, Part 2 = Flex 2, Part 3 = also Flex 1, Part 4 = Flex 3.

Two of the pins (+ on 2, – on 3) appear to be a diode with a 1V forward voltage, and after I thought about it and checked with a camera with a bad IR filter, it is an infrared LED. The other pair seem to be a phototransistor or similar; it reads about 1.5MΩ from pin 4 to pin 1 in darkness and 1KΩ across the same with an IR LED pointed at it.

I’m not sure what I’m going to do with these, but they seem promising for small motion systems, especially since (if I bought bulk packs of each from China) you could get the motor and pair of H-bridges to drive it for under a dollar. Hopefully I’ll run into something to play with them in and/or my reversing work will enable someone else’s cool project.

Posted in DIY, Electronics, General | 2 Comments

Some Cheap 3D Printer Upgrades

Photo of Anycubic Kossel on top of a concrete paver + upholstery foam isolation platform.
Paver + Foam isolation Platform

I’ve had an Anycubic Linear Kossel for several years now, and have generally been quite pleased with it – if Anycubic were still selling them I’d still be suggesting them as ideal first printers.

It has produced quite a number of useful pieces, a decent assortment of household conveniences, and the usual selection of toys and meme trash for myself and others.

I’ve made a couple recent upgrades that seemed worth documenting.

Continue reading
Posted in DIY, Electronics, General, Objects | Leave a comment

Over-Designed Model Paint Shaker

An over-designed and useless agitator for Testors enamel bottles

…An otherwise useless exercise in rapid prototyping.

Continue reading
Posted in DIY, Electronics, General, Objects | Leave a comment

Resistor Storage

As I continue my electronics part organization spree, I was looking for …something… reasonable for through-hole resistor storage. Resistors are a problem because there are a lot of values, once mixed they’re possible-but-irritating to distinguish, and strips of resistors are awkwardly shaped.

There are some special-purpose drawers, most of which aren’t very flexible (configured to hold exactly the E12 series, or with slots too small for the 4″ strips a lot of cheap resistors come in, or…), and many of which are enormous 3D printing projects in their own right that I didn’t feel like dealing with. There are some systems with small or card-catalog style drawers, but I don’t stock large enough quantities of resistors to invest that kind of money/space, and don’t plan to. I also looked at variations on schemes using card holding binder pages, since I really like the cheap SMT binders (link is the ones Adafruit stocks, mine are all the ubiquitous brown ones with gold-debossed Chinese text because I’m cheap), but after I bought a pack of the appropriate business card slot binder sheets I realized I’d underestimated my size requirements.

After quite a lot of looking around and stalling, the only thing that really appealed to me was cloning Zach Poff’s Edge-Labeled Baggie Method, so I did.

I added some E24 values (like 51x and 75x) that I had stocks of from one purchase or another, and a few other odd labels that I happen to have stocks of. The added labels are missing the cute little colored resistor images because I’m not sure how they were generated and it wasn’t urgent enough to spend a ton of time on – I just put the value and the band numbers on those.

I did cheap out on basically every part; I used 2mil 3×4″ baggies instead of the nice 6mil ones, and I used AmazonBasics 1 x 2-5/8 Inch labels that list themselves as compatible with Avery 5160 labels. Both of those may eventually prove to be a mistake, but for now they work and feel fine.

One thing I am looking to improve upon, I currently have them stored in an old Kroger deli meat tub, which is OK but not ideal. I don’t think I can find something that will hold them reliably and still clear the 3″ height of the drawers I’ve been packing a lot of my component assortments into, so I’m probably looking for something that will close, possibly a large-ish 3×5 card organizer.

Posted in DIY, Electronics, General, Objects | Leave a comment