After pondering on it for a while I’ve concluded that my projects lack variety. I really enjoyed working on the case for MAXI09. The CAD work was interesting and taught me much, and was not just a means to the end of a case for MAXI09. So much so that I want to do more of it. And I want to make things: physical, mechanical things not just software and electronics. So I’ve done something I’ve wanted to do for a while now: I’ve bought a 3D printer.
I have also decided that my retro homebrew computing hobby needs to be more challenging from a hardware and software perspective so I will soon be starting on a new computer; one based on the 68000 series of microprocessors.
Not that MAXI09 work will stop. There’s still loads of interesting things to do with it. But after working on it for 3 years (I started the circuit design about 3 years ago) I want to add another board to the MAXIxx family.
But before coming to that, I need to mention how far I’ve got with the MAXI09 case.
In summary it is pretty much done:
I had to order another keyboard surround piece because I broke one modifying the sizes of the holes. And the replacement got a minor break (near the left Alt key) when Max (he is five years old now) got his hands on it. Luckily it was salvageable.
The left hand area contains three LEDs, from top to bottom:
- RGB attached to the keyboard controller
- DISCo status
The RGB LED is controlled by sending instruction bytes to the MCU. I’d played with this before, back when the Monitor was the only software for the board. To make it possible to send commands to the keyboard MCU from within MAXI09OS I have added a syscontrol method to the console driver. Of course it is not possible to use syswrite here because that outputs to the screen.
Exercising this facility without writing any extra code was easy to do via the Monitor: Just open an unused virtual console with sysopen and call syscontrol on the handle with the command byte to, say, turn the red LED on.
This same command byte is used to configure they key repeat rates. Here I’ve run into a problem: for some reason setting the repeat rate does not work; the key repeat delay and the key repeat rate is always the default values. I will investigate this at some point.
The LEDs are attached to the PCB using flying leads and connectors. The 4 way lead connecting the RGB LED is attached to a Berg connector; the same one used by floppy drives. This one worked well – the receiving end of the connector replaces the LED on the board using the same 0.1″ holes as the RGB LED and firmly attaches to the plug. For once I was thinking ahead when I laid out the board and made it so the LED could either be directly attached or a socket. For reliability I used shrink wrap on the solder joints to the LED itself. Here’s a pic of the LED, flying lead and plug:
The regular LEDs are more of a pain. I’m using tiny 0.1 inch spacing connectors with solderless pins on the plugs:
The plug pins need to be crimped onto the wires and pushed into holes in the plugs. This works well; the wires are attached firmly to the plugs. The problem is the plugs do not fit robustly in the sockets. Understandable, I guess, since the plugs are so small but annoying all the same. It works well enough but it’s a bit easy to tug the plug out of its socket.
The remaining issue is one I encountered when trying to plug my analogue joystick into one of the joystick ports: it doesn’t fit through the hole in the case. The problem is the holes in the case were sized based on the size of the connector on the PCB not the size of the plug. For ordinary DB9 Atari-style digital joysticks this is fine, but my analogue joystick uses a shell case with hand soldered connections to the pins. This shell case is larger then the moulded plug on the end of a joystick and doesn’t fit through the hole in the MAXI09 case. The same is true of the printer cable plug when I tried fitting it in the DB25 socket. All this goes to show that the real problem is the sockets on the PCB: they should be poking over the edge of the PCB so the face of the case is flush with the outside edge of the socket and not some distance in front of it. At some point I will “fix” this problem the simplest way: by enlarging the holes in the acrylic with my Dremel.
So, 3D printers.
I first heard about these things about 10 years ago when a work colleague started bringing in strange bits of plastic he’d produced on his RepRap printer, a home made printer he’d built from parts. At first the parts he bought in were of poor quality, but over time he managed to get some respectable looking “things” out of his printer. I never really thought much about it, but in the last few years it seems the technology has come a long way and the prices have come down to the point where I thought I would get one and have a play.
After looking at a few reviews on YouTube I settled on the Creality Ender 3 and found one on eBay for about £170.
Building it was fun, but a little frustrating. Suffice-to-say after a glitchy start I am thrilled with the printer. 3D printing is, currently, a bit like computing was for home-micro users in the early 80s:
- The machines need near constant attention and maintenance to keep them running.
- Bed levelling problems feel a bit like tape loading errors, though at least bed levelling issues show themselves at the very start of the print
- Anything not completely trivial takes hours to print, a bit like waiting for the tape to load on your ZX Spectrum.
- Once one viable – but relatively expensive – product appears other manufactures comes along with cheaper, and “not quite as good but good enough” models.
- Multiple colour output is possible, on the advanced machines.
All this is indicative of the nascent nature of 3D printing, I suppose. Hopefully in a few years printers will come on the market which are easy to use, quick, reliable, even cheaper to run etc.
For anyone interested in following what I’ve been doing with my printer, I have made an account on Thingiverse under my usual aslak3 username. So far the most impressive thing is probably the nut and bolt:
I couldn’t believe the quality of this print and was amazed at how easily the nut and the bolt meshed together.
My current, probably too large for me to take on, project with the 3D printer is to use it to build a CNC router/engraving machine, using the design from the Mostly Printed CNC project. This will be a CNC machine capable of cutting wood and hopefully soft metals like aluminium. I’m hoping for a useable area size of about 40cm by 40cm, so it will be pretty substantial when it’s built. So far I have started printing the parts needed, and am about a third of the way though the mammoth list of parts, which eventually will consume about 2kg of printing filament. I’ve also been gathering the non printable parts together in an eBay shopping basket: stepper motors, controller boards, screws, and some tools I’ll need.
I’m really excited to have no less then four projects on the go at the same time:
- 3D printing things: One thing I have yet to do is design my own “thingi” and print it. So far all my prints have been ones I’ve downloaded.
- Building a CNC router: This will also expose me to the workings of 3D printers, since they share much of the same technology.
- Planning, learning about and prototyping a 68K based computer.
- And of course my beloved MAXI09.
In my next post I’ll talk about my plans for a 68K-based computer…