Since I recently got my HP Apollo 9000 Series 735 up and running, and it’s March, I decided to have a little Marchintosh fun and load MAE (the Macintosh Application Environment, a real officially-licensed Apple product) on to it this evening. As you can see from the photo (because I don’t have a device that can capture the video this thing outputs, and haven’t figured out screenshots under HP-UX 10.20), it works.
Over a year ago I started working on an inert HP Apollo 9000/735 a friend gave me from their collection to avoid moving it cross-country. I’ve recently got it working, and am posting notes about the fun.
At the end of my first post about it, I had recapped the power supply, but had not found a monitor that would talk to the enormousCRX-24z video board with its 1280×1024@72Hz Sync-on-Green via 3x BNC output, or verified the condition of the discs. As you can see from the splash image, all of those things have been remedied.
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.
I’ve been biking a fair amount lately after a 20-odd year hiatus; I decided last year that I wanted to start biking, bought a Giant Escape 3 Disc near the end of summer, but didn’t get confident enough riding to use it around campus last year among the students texting their way to their first (next?) vehicular manslaughter charge before they flocked back.
This summer, I’ve been dong my commute into campus on it, plus a significant amount of fun/exercise riding, and the top fixable annoyance has become getting sprayed at the slightest hint of wet. I did some hackin’ that I haven’t seen on the interwebs to fit the fenders I picked to the frame, which is the point of this post.
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.
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.
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.
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.
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.
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.
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.
Yesterday I pulled my ThinkPad 560E out, dd’d a floppinux on to a real floppy, booted it up and… it traps on an invalid opcode as soon as it tries to load init.
A little thinking made me realize that the way they were building their busybox binary was contaminating it with libraries from the system they were building on (which was apparently i686), so despite all their “will work on a 486 or later” option selections, the images they produced only work on i686 or later boxes.
I opened an issue then got obsessed and decided to fix it myself, and … you can read the details in my followup to the issue.
The magic lazy out for this kind of thing now is the pre-built musl based cross toolchains provided by https://musl.cc/
I made a couple other suggestions (about using musl, about configuring the kernel for xz and using it for the initrd, etc.) while I was hacking, because putting together little cross-compiled Linuxes is something I used to know what I was doing with. It did take a couple hours to spin back up, there are always picky cross-environment things to remember, and things have changed, mostly for the easier.
I’ve posted a copy of my generated i486-clean image. (Subsequently swapped out for a rebuild with slightly more useful busybox and kernel options, but only about 450k free)
I had my regularly-scheduled itch to play Escape Velocity or one of its successors and/or clones the other week, and decided to play the real thing this time since I did a lap on Endless Sky not too long ago, and NAEV still doesn’t quite grab me.
I’m now most of the way through a game of EV (under emulation in Basilisk II), and …impulse bought a cheap 2004 15″ Aluminum PowerBook G4 (a 5,4) off the internet after a crash ate a save file. I have good coverage of Apple 1984-1994 in my collection (in the form of bulky desktops with CRTs), and x86 OS X is pretty easy to run in a VM, but I have a hole in the late PPC era. That machine will hopefully eventually also get its own post as I finish fixing it up, it’s not in perfect condition but it auctioned below prevailing when I was looking, and seems to be acceptable.
While I was looking into the player communities (…because it’s become very hard to set up a working install of EV Nova recently, and I can’t find a backup of my registered copy) I discovered that a couple months ago some wonderful person (slurked on thingiverse/quarmus on reddit) made and shared 3D models of the Kestrel and Lightning ships from the original EV.
…So the little Mac-user child of the 90s in me promptly headed down to the basement to print a Kestrel and a pair of Lightnings.
I gave them a quick sand to take the worst print artifacts off and sprayed them down with a couple coats of gray Krylon Fusion, which gave a decent base coat. I needed to do a little (bad) detail painting on the Lightnings, and the acrylics I have around didn’t stick well to the spraypaint, so I dug out my decades-old Testor model enamel set. Eventually they were shaken and stirred enough to get the job done; in another post post, an absurd over-engineered shaker that didn’t really solve the problem.
EV is still one of my favorite games, though I think Endless Sky’s implementation of the formula is actually significantly better for a modern player without the memories, especially now that Ambrosia is defunct and the hacks around registering Nova seem to not be working.