User avatar
mattsoft

Posted Wed Mar 21, 2018 7:36 pm

Version 1

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.

The Project

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

Amiga Mouse

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!

Mounts

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!

Analog Out

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.

Floppy Drive

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!

Other Stuff

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.

Instructions

* 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.

Parts List

(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

Links

STL Files
Amiberry
Tynemouth Software Store
Last edited by mattsoft on Fri Apr 06, 2018 6:42 pm, edited 6 times in total.

User avatar
ArtstateDigital
Wales, United Kingdom

Posted Thu Mar 22, 2018 1:14 am

That is some fine work! I was totally oblivious to the Tynemouth South board solution.

User avatar
resonantflux
Zagreb, Croatia

Posted Fri Mar 23, 2018 12:57 am

Holy *%$&...
I saw this on Facebook, I thought it was 'just' a mount... mea culpa.

First of all, well done on making the files open source, I think that is perhaps the most commendable thing of all. Amiga seems to be a *relatively* small community, and there are so many things in it are just made proprietary. I realize people need to make money, but the, quite frankly, bloody amazing potential of the community will only ever be reached through open sourcing things, like this!

And thank you for the step-by-step instructions. Well made instructions go a long way in making newbies (yes, like me, but that means I speak from experience :D) welcome. Fresh blood is absolutely necessary for a community to prosper. Thanks for that!

Awesome project!

Dumb suggestion #124: You could always play it on a trackball :D

User avatar
mega65

Posted Sun Mar 25, 2018 7:50 pm

For Amiga joystick and real floppy drive interface, you could use a small FPGA to do the signal processing work. This would give you essentially 100% compatibility for those. We already have an open implementation of both in the MEGA65 (mega65.org, c65gs.blogspot.com.au, github.com/mega65), which being open-source you would be welcome to adapt.

Paul.

User avatar
mattsoft

Posted Mon Mar 26, 2018 6:14 pm

UPDATE

Amiga Mouse

The Retronic Design "USB Joystick Adapter" arrived. This adapter lets you connect different types of DB9 "retro" controllers to USB. It looks simple and appears to be well built. You have to flash the adapter for the type of device you are going to use. In this case, I want it to use an original Amiga "ball" mouse. After flashing, I connected it to the RPi and sure enough, my Amiga 500 mouse works in Amiberry like a regular old Amiga mouse. This is nice for completeness, but yeah, obviously a modern laser mouse is WAY better. But it keeps that simulated "authentic" experience going...plus I can play Marble Madness now! (Yeah, a trackball would be the arcade authentic experience).

Retronic Design USB Joystick Adapter here.

Power Button

I've used the PowerBlock in the past for adding an on/off button to the RPi, so I picked one up for this project. It connects over GPIO and then has headers for both power LED and an on/off switch. I picked up some on/off switches and have added the necessary scripts to DietPi/Amiberry -- everything works great! Unfortunately, the PowerBlock doesn't fit where I have the RPi mounted. After experimenting a bit, I've decided to leave the RPi mounted where it's at and will mount the PowerBlock next to it using a ribbon cable to connect the two. Once those parts arrives, I'll release an alternate back left piece that has a hole for the power switch and a mount for the PowerBlock in case you want to go that route.

PowerBlock.
On/Off Switches.

User avatar
bytestorm

Posted Thu Apr 05, 2018 12:39 pm

Just registered now to say thank you for sharing and I cant wait to try this out as soon as I find a empty 500 case!!
Just wow! :)

Should I try to find someone who can print these for me or is version 2 close to be finished?

Thanks!

User avatar
mattsoft

Posted Fri Apr 06, 2018 5:55 pm

I have a version 2ish that includes a power switch. I'll update the post later this weekend. I also just finished a C64 mod that I'll post.

User avatar
Cybermen

Posted Sun Apr 08, 2018 12:23 am

Hello mattsoft, thank you for your project. It is really great, I will also start a conversion. I read on the internet that the power LED lights up when the PI is on via the keyboard USB board. There is also the possibility that you can bring the Drive LED to light when the PI loads something, so as ACT Led. Did you do that too? or experience how it works. Thank you and best regards from Germany.

User avatar
mattsoft

Posted Sun Apr 08, 2018 10:29 am

So, the Tynemouth adapter drives the power LED. Works great.

I have added the PowerBlock to my RPi 500 which adds a physical off/on switch. I'm using this same combination in my RPi 64. What is nice about the PowerBlock, besides an off/on switch for the RPi, is that it has a power LED header -- and this header lights the LED more immediately than the USB adapters. That is, as soon as you hit the switch, the LED turns on -- where as the USB adapters take a couple of seconds to activate the LED. The other nice thing is that while the RPi is powering up, the LED flashes slowly letting you know it's powering up. When you hit the power switch to off, the LED flashes quickly while the RPi is powering down. Very cool.

So...I tries connecting the PowerBlock LED header to the 500's keyboard cable to drive the power LED and nothing. I don't think it's driving enough voltage. So I need to get the multi out and do some testing around voltage.

I also tried connecting the 500's keyboard cable drive LED pins to the GPIO on the RPi to power the drive LED and nothing. Again, maybe voltage? I did drive a spare LED I had laying around from the GPIO so I have it working...but the 500's LEDs may require different power specs. I don't want to remove the keyboard LEDs, I'd rather create a wire harness that connects the Tynemouth, PowerBlock power LED header, the RPi GPIO drive activity pins, and the 500 keyboard cable so that it all just works.

Long story story short, I have more work to do on this. If I can get it figured out, I'll post here. Or, if someone else has figured it out, let me know!

User avatar
Cybermen

Posted Mon Apr 09, 2018 11:23 am

I wrote to the people of Tynemouth on the subject and they said: The power LED is on when the device is connected, and the disk LED is set to numlock. You can configure the Pi to flash the numlock LED with disk activity, which will be reflected on the A500 keyboard.





Return to “Hardware”