Code and Life

Programming, electronics and other cool tech stuff

Supported by

Supported by Picotech

Retronics USB Joystick Adapter and Other Coolness with V-USB

Retronics joystick adapter

There are a ton of cool gadgets available in eBay, and even though I sometimes do impulse buys, I rarely mention those in my blog. However, this extremely cool piece of retro tech is something I just cannot pass by without a comment: Retronic Design USB joystick adapter. It is essentially a joystick adapter for the popular 9-pin D-SUB connector used in many of the 80s consoles, most notably Atari, Commodore 64 and Amiga. On the outside, it’s not much to be excited about – USB connector on the one end, and grey dongle that accepts a joystick on the other. However, things quickly change when you open up the enclosure (click on the image for a large view):

Retronics USB adapter opened up

Inside the D-SUB end there is a very neat little piece of engineering, and many of my readers probably know how to program it — it isn’t anything other than a ATmega8A, a 8-bit AVR microcontroller that employs the same V-USB library I’ve covered in my tutorials to appear as a USB HID device on PC side.

All the components are on one side, and you have to admire the tiny ISP header the Retronic Design guys have fitted on the PCB. And wait, it doesn’t stop there. On the Retronic Design web site, they have full specifications for the device, and the download page includes both schematic, as well as full source code to the firmware.

My hat’s off to these guys, a great example what you can achieve with 8-bit AVR and V-USB, and the workmanship on the PCB and assembly is really exceptional. If you have the corrent components around, you could probably even build it yourself, the parts are almost identical (except the MCU) that are used in my V-USB tutorials, so I have little doubt that it would work with very small adjustments. However, I’ve come to the realization that a dedicated device with actual enclosure will be more durable and useful in the long term than trying to preserve something on a breadboard, so I decided to splurge the $29.95 and support such a fun piece of engineering by getting this from their eBay page.


On a side note, it’s almost sad how electronics hacker -friendly the joysticks of old were. From the Retronic Design’s spec page it’s easy to notice, that the 9 pins are basically just GND, VCC, 4 pins for different directions (up, down, left, right) that most likely go HIGH when joystick is pushed into that direction, and 3 pins for fire buttons. I’m quite sure one could just plug jumper cables to old C64 joystick and use it as 4-directional controller in any modern AVR or Arduino project. My eBay order on such an item is still being delivered, but I might cover that too in the future.

Another game controller project

I’ll also take this opportunity to point out another cool project that I discovered just last week via a pingback: Peter Fowler did a nice V-USB related project where he replaced a part of a Saitek Trim Wheel internals with AVR chip running V-USB, making the wheel appear as a USB HID device. Peter was also kind enough to credit my USB tutorial, so I’m returning the favor. :) I think the project is a great example how sharing ideas result in cool hacks!


Francis Gradel:

The power of the community is infinite! V-USB is a termendous piece of work that enable a lot of creativity “outside the box”. Great Job!

Francis Gradel:

BTW, you can reprogram this adapter via USB and hidbootflash. Just keep the button depressed while connecting it to the USB port. No need to use the ISP. ;)

Joonas Pihlajamaa:

Yeah I know that, and it’s an additional coolness in the device, however it does not diminish the coolness factor of the miniaturized ISP header – it has the feeling of a dollhouse TV that actually works (btw. that would be a fun project idea) – smaller but just as capable.

Francis Gradel:

Hey there Joonas!
Did you saw our new 3.0 version? It’s using an ATMEGA 328P instead of an ATMEGA 8. This new version is a lot more versatile because every pin is reconfigurable. It’s nearly compatible to any DB9 joystick ever invented. It’s only a matter of rewriting the firmware for each device. I’m also wondering to port it to the KADE project.



is this Adapter usable with MStar ISP Tool, to read/flash LCD TVs e.g. Grundig with broken Bootloaders??

Sorry for my bad english.

Joonas Pihlajamaa:

I would be surprised if a joystick adapter could be used to read or write TV firmware. Of course, you can reprogram the ATmega inside to do lots of stuff, but that is then not a joystick adapter anymore (and repurposing the adapter would be harder than starting from scratch, I’d imagine)


per Atari joystick spec the input pins are active low.

Francis Gradel:

Looking at the MSTAR ISP tool (DIY version), I think it could be done if emulating an LPT port over USB. A little DB9 to DB15 adapter would place the pins at the correct place. This would be a nice V-USB kickstarter project!

Francis Gradel:

Actually a slightly modified version of this project would work:
Don’t know about the windows software though.