My goal for this project was to create an emulated Amiga, but maintain the original aesthetics of the iconic Amiga 500 -- down to a functional keyboard, floppy drive, mouse, and joystick ports. All of this had to be done without permanently modifying -- or destroying -- any part of the Amiga. This emulated Amiga had to FEEL like an Amiga. Version 1 has accomplished a lot of this, but there is still more to do.
First up, the host computer. This is easy -- the Raspberry Pi 3B is small, uses very little power, is infinitely hackable, and runs a variety of emulators quite well. Speaking of emulators, Amiberry is a terrific Amiga emulator that is optimized for ARM. Even though Amiberry can emulate an Amiga at warp speeds, I prefer to run mostly stock 500 and 1200 configs. Amiberry runs on DietPi -- a super slimmed down Debian OS for the Pi -- that boots very quickly. The Amiberry/DietPi distribution also does a "quiet boot", bypassing all the usual Unix console messages, and boots directly into a default UAE configuration. The result is that when you turn on the Pi, within a few seconds you are in the Amiga Workbench. Done and done.
Second, maintain the original keyboard. There are lots of homebrew projects that connect an original Amiga keyboard to a Pi, but one commercial product caught my attention: Tynemouth Software's (TS) Amiga 500 USB keyboard adapter. This board fits in the Amiga 500 and provides a pin header to the Amiga 500's keyboard cable to, and a USB port to connect to your Mac/PC or in this case, Raspberry Pi. The TS board converts the signal from the Amiga 500's keyboard into a standard PC keyboard signal. Brilliant! As a bonus, the TS board also has two DB9 ports for connecting vintage joysticks! TS also offers many other USB keyboard adapters, and the proprietor is super friendly and helpful.
I punted the floppy drive to another day, and decided to next focus on getting these pieces INTO the Amiga 500. For this, a custom mounting bracket would have to be developed. Having seen the work of Corei64 in creating a non-destructive mounting bracket for the Commodore 64C, I was inspired to try this myself. So I bought a 3D printer (the excellent and cheap Monoprice Maker Select 3D Printer v2) and got to work.
My goal for the 3D printed bracket was to make it fit without drilling the original case. I wanted a clean look -- no nuts or washers visible from outside. I needed HDMI for audio and video, power (via micro USB), and two USB-A ports. Since I would be using wifi, I did not include ethernet. I also left out composite video and stereo audio. All of these could be added later if desired though.
For that clean look, "panel mount" cables would be used to extend the Pi's ports to the back of the Amiga. They would be mounted internally using "heat sets" set into the 3D printed plastic brackets. This would make a clean look from the outside.
Two weeks later and I have the first version of a four-bracket set for mounting the Pi, TS board, and panel cables! The fit is pretty good, however I already have some design changes in mind that should make it stronger, and some tweaks to make the fit a little better. STL files, a parts list, and instructions for doing this yourself are below.
3D Printed Mounting Brackets
My 3D printer can only print items 7"x7"x7" so I had to chop up the design to fit the printer. I'm BRAND NEW to this stuff, so I apologize for the lame STL files. I used a 2D design program to build most of them, then extruded the SVG exports into 3D using tinkercad.com. Unfortunately, this makes them not easily editable. Regardless, please tinker with them! Let me know if you make changes or improvements -- I'd LOVE to see them! These are distributed without any guarantee of any kind. Heck, if you want to make and sell them, go for it. I will not be selling these myself -- they take WAY TOO LONG to print.
Some Fails and the Future
I was a little disappointed to learn that the DB9 connectors on the TS board did not properly emulate the Amiga mouse. Honestly, a modern USB laser mouse is so much better in pretty much every way, but you can't play Marble Madness with a laser mouse! To remedy this, I have ordered the "USB joystick adapter" from Retronic Design. It won't ship until early April, but promises to allow an original Amiga mouse to work on a USB host like the Pi. Fingers-crossed! Until then, I'll keep using a cheap Dell USB laser mouse.
UPDATE: My adapter has shipped! More soon!
Like I mentioned earlier, some of the fit is not exact and there is some warping to the parts. This will be fixed in version 2. I've also been thinking of better places to mount the Pi. For example, I could replace the floppy drive WITH the Pi so that the micro SD card is in the floppy slot like a GOTEK drive. This might not look that great though. If anyone has some suggestions, let me know!
The Pi supports composite video and stereo audio. This might be fun to add for giggles. Not very practical, but would be kind of cool to hook up to an old CRT.
There are a number of projects to connect an original Amiga floppy to a PC, but they are riddled with problems. None of them read copy-protected disks, and some have write problems. Not to mention that none of them have drivers for Raspbian! I don't really need or even want to play games off of a real floppy, but it would be fun to read and write to floppy disks -- again for giggles. I'm thinking of fixing a regular old USB 3.5" floppy drive in place of the Amiga floppy drive. This will be a 3D printed bracket stretch goal for sure. Amiberry should be able to "see" the USB floppy drive and read/write to it. We'll see!
There's a few more things to do with Amiberry as well. I'd like to get a modem emulated with tcpser so I can "dial up" an old school BBS. I also need to figure out Bluetooth for wireless gamepads. Both should be easy.
The back left, back right, and Pi mounts with the Pi mounted.
The Pi and TS board installed.
Everything almost installed.
Nice, clean, back.
* Obtain a Raspberry Pi, micro SD card, TS Amiga 500 USB board, panel cables, screws, and washers. Parts list is below.
* Download the four STL files (linked at bottom) and print them with 20% infill using PLA. This took 26 hours in total for my Monoprice printer.
* While that's printing, download Amiberry and write it to your micro SD card.
* Take apart your Amiga 500 case, noting which screws go where.
* Watch a few movies, like The Commodore Story, Viva Amiga, and From Bedrooms to Billions. Watch them each twice.
* Parts are printed, hurray!
* Use the tip of the soldering iron to insert 4 heat sets into the top of the Pi mount, 4 more heat sets into the top of the TS board mount, 4 more into the panel mount screw receptacles on the right back mount, and 4 more into the left back mount.
* Use the (8) M2 x 5mm screws and (8) M2 washers to fix the Pi and TS board into their heat sets.
* Secure all panel cables using the M2 screws and M2 washers to the heat sets on the back panels. From left to right, HDMI, micro USB, and both USB-A cables.
* The TS board mount drops onto the floppy drive posts. The 3D printed plastic washer fits on the bottom post. This ensures that the floppy drive remains level when installed. The TS board will be held in place with a single screw from underneath that holds the floppy.
* The back left and right panels "pop" into place and are held by their shape. The left panel will be held down after the Pi board mount is installed.
* The Pi board mount drops onto the two posts next to the left side expansion door. Now that all pieces are in place, place the two 3D printed washers onto the two posts and secure using the original screws used to hold the motherboard down.
* Plug in the keyboard to the TS board, the TS board into the Pi, and all the panel cables into the Pi. Re-install the floppy drive (it's useless, but keeps the original look).
* Replace the top case.
(1) Raspberry Pi 3B
(1) 16GB Micro SD card
(1) Tynemouth Software Amiga 500 USB Adapter
(1) Micro USB male to female panel mount cable
(1) HDMI panel mount cable
(2) USB A male to female panel mount cables
(8) M2 x 5mm screws
(16) M2 x 3mm brass heat sets
(16) M2 5mm x 1mm flat insulating washers
(8) Variable length M2 screws -- depends on your cables. For the Adafruit ones, I used (6) 12mm, and (2) 10mm
Tynemouth Software Store