BMOW title
Floppy Emu banner

Retro USB – On Sale Now

Retro USB is available for sale now – visit the BMOW shop to be the first kid on your block to get one! Retro USB is an input converter for USB and ADB keyboards and mice. It works in two directions, connecting modern USB peripherals to a classic ADB-based Macintosh or Apple IIgs computer, or ADB peripherals to a USB-based computer running Windows, OSX, or Linux. The foreign keyboards and mice behave exactly like native peripherals, requiring no special software or drivers – just plug it in and go.

Now you can finally use an optical mouse with your vintage Macintosh, or amaze your coworkers with an antique Apple Extended Keyboard on your work machine.

The last month of development has been a marathon, but I’m very excited to finally release this product whose first concept was outlined here over a year ago. Aside from a very long period of hibernation between concept and implementation, the final result turned out very similar to how I imagined it in those first concept posts.

 
Compatibility

The Retro USB hardware is compatible with all Apple computers, keyboards, and mice using a mini DIN 4-pin ADB connector, including most early Macintosh computers and the Apple IIgs. It is also compatible with standard USB keyboards and mice with a USB-A connector. When in ADB-to-USB conversion mode, it works under Windows, OSX, Linux, or any other operating system that supports USB HID input peripherals.

 
USB to ADB

USB keyboards and mice with a classic ADB-based Macintosh or Apple IIgs. Set the jumpers as shown on the Retro USB board’s diagram to select USB-to-ADB conversion mode. Use an ADB cable to connect the board’s ADB port to the computer’s ADB port.

A single USB peripheral can be connected directly to the Retro USB board’s USB-A port, or a standard USB hub can be used to connect multiple peripherals at once. When in this mode, Retro USB supports one USB keyboard and one USB mouse, as well as any number of ADB keyboards and mice, all used simultaneously.

Standard bus-powered USB hubs are recommended. Externally powered USB hubs (with their own independent power supply) are not recommended, because they can backfeed power into Retro USB even when it’s off, causing problems.

Power Key

Original ADB keyboards had a power key – a square or rectangular key with a triangle logo that could be used to turn on some later models of Macintosh computers. Retro USB has two substitutes for the power key. There’s a small button on the board that will function as the power key, even when the board is off. And when Retro USB is provided standby power from an auxiliary source, the PRINT SCREEN key on a USB keyboard will also function as the power key. To provide standby power, connect the Retro USB board’s USB-B port to a standard USB charger.

 
 
ADB to USB

ADB keyboards and mice with a modern USB-based computer. Set the jumpers as shown on the Retro USB board’s diagram to select ADB-to-USB conversion mode. Use a USB-B-Mini cable to connect the board’s USB-B port to the computer’s USB port.

A single ADB peripheral can be connected directly to the Retro USB board’s ADB port, or multiple peripherals can be daisy-chained, using the ADB pass-through connector found on all Apple ADB keyboards. When in this mode, Retro USB supports one ADB keyboard and one ADB mouse, as well as any number of USB keyboards and mice, all used simultaneously.

The ADB peripherals will appear as standard HID input devices to modern Windows, OSX, and Linux computers. No special drivers or other software are needed.

 
Firmware Updates

Retro USB firmware can be updated to fix bugs and add new features. Disconnect all power from the board, and set the board’s jumpers to select USB-to-ADB mode. Download the firmware.hex file from the Retro USB web page, and copy the file to a USB flash drive. Plug the flash drive directly into the board’s USB-A port – do not use a hub. Hold the board’s power key button while you connect the power and turn on the board. Continue to hold the button for a few seconds, until the A and B status LEDs begin blinking rapidly. The update process takes about 10 seconds. When finished, the LEDs will blink slowly together, once per second. You can now press the power button a second time to exit the firmware update and return to normal input conversion mode.

 
LED Status Codes

The A and B LEDs on the Retro USB board display status and error information. (The A LED is labeled RUN on some boards). During normal use, the A LED will blink rapidly while B remains off. During a firmware update, both LEDs are used to indicate status:

slow alternating blinks of A, then B (1 blink/sec) – bootloader is searching for a firmware file
fast alternating blinks of A, then B (8 blinks/sec) – bootloader is updating the firmware
slow synchronized blinks of A and B together (1 blink/sec) – bootloader finished successfully

If B blinks several times while A remains off, it indicates a bootloader error:

2 blinks – no valid firmware exists on chip, can’t start main Retro USB program
3 blinks – no firmware files found on USB drive
4 blinks – error in firmware file (checksum mismatch or illegal data)
5 blinks – error while updating firmware in chip memory

 
Help Commands

You can interact directly with Retro USB by typing help commands on an attached ADB or USB keyboard. Open an empty text document or command prompt on your computer. Retro USB will “type” its responses to your commands, so they appear on the screen.

Control-Shift-Capslock-V – Displays the firmware version number

Control-Shift-Capslock-C – Enters keydump mode. While in this mode, the USB key code is displayed for each key that you press, along with the corresponding ADB key code it’s mapped to (or vice-versa). This can be helpful for troubleshooting key mapping problems.

Control-Shift-Capslock-D – Exits keydump mode.

Read 16 comments and join the conversation 

16 Comments so far

  1. Keith Kaisershot May 16th, 2017 4:42 pm

    Do connected USB keyboards/mice remain enumerated by the ADB host after the USB devices are disconnected? I’m asking because I want to make this part of my KVM setup, but my KVM switch cuts power to USB upon switching. I’m hoping if I hook up a Retro USB and power it via its mini-USB port, then everything will “just work” when I switch back and forth between machines, but I want to make sure before I place an order.

  2. Steve May 16th, 2017 4:55 pm

    That should work, assuming I understand your setup. ADB doesn’t do USB-style device enumeration anyway – only a simple address conflict resolution if you have more than one keyboard or mouse.

  3. Matt May 17th, 2017 7:02 am

    This looks great! I have an old Kensington Turbo Mouse, which is an ADB trackball with multiple buttons. Have you tested any hardware along these lines? I know other ADB to USB projects had to add special support for reading multiple mouse buttons. Also, have you tested any joysticks, either ADB or USB, with the device?

  4. Steve May 17th, 2017 7:18 am

    Version 1.0 supports the two official ADB device types: keyboard and 1-button mouse. Other device types are possible with a future firmware update, but those would be using a custom ADB protocol that would need to be reverse engineered if it’s not documented somewhere. Do you have a link to a project that did ADB to USB for the Turbo Mouse?

  5. Matt May 17th, 2017 4:46 pm

    Well, it appears that I remembered incorrectly. It appears that there was discussion about adding this support to the tmk adaptor, which you can find at https://github.com/tmk/tmk_keyboard/issues/274
    It doesn’t look like support ever landed in the code, however. There is a link on that page to an Apple doc about an Extended Mouse Protocol, which I believe the Kensington device uses, but I’m shooting in the dark a little bit here. I hope it leads you down a useful path; my apologies if it doesn’t.
    Your hardware is beautiful and I daydream about it often. Will you be at Kansasfest, and if so, will you be selling products?

  6. JohnM May 17th, 2017 6:49 pm

    When do you expect to have more in stock? This looks awesome!

  7. bigbadwolf May 17th, 2017 7:36 pm

    Does this support a wireless usb receiver for keyboard and mice? It seems like only wired usb devices are supported because you mention a hub is required to connect those.

  8. Steve May 17th, 2017 9:11 pm

    I’ll have more available in a few days, but I can only assemble them so fast! There’s nothing special about wireless vs wired devices, both will work if they present the same USB interface descriptor to the OS. Many wireless devices are also composite USB devices though, which may be problematic.

  9. Steve May 17th, 2017 9:20 pm

    Matt, yes that’s very helpful. Implementing the full extended mouse protocol would take some work, but the 2nd button state appears to occupy an unused bit in the standard mouse protocol. It would be a trivial firmware change to check that bit and use it. If you have a Turbo Mouse and a Retro USB board, I can send you a modified firmware to try out.

  10. Merlin May 18th, 2017 7:44 am

    Steve, I missed the last week of conversations about this device.
    I just wanted to say Congratulations on getting this to work.

  11. Alexcat3 the Electronics Kid May 18th, 2017 10:03 am

    I don’t mean to sound critical– I think your products are really cool and if I hadn’t wasted my birthday money I might buy one– but I’m curious why the prices of small batch electronics such as Retro USB are high compared to the low costs of components such as microcontrollers $3-$7 and PCBs ($5 per square foot for 3 at OSHPark). Is it the cost of labor to assemble the material? THat would be much higher with small batches where less automation could be used. Is it the painstakingly manual shipping. Or do all of the individual components add up?
    I have a few ideas for hardware projects to create for myself and it would be helpful to know about the costs that add up later.

  12. Steve May 18th, 2017 4:14 pm

    There’a s great series of posts here about product pricing for a small maker business: https://www.ponoko.com/blog/business-tips/ten-rules-for-maker-businesses-by-wireds-chris-anderson-—-rule-1/

  13. Draefend May 19th, 2017 1:41 am

    Does this support ISO layout?

  14. Steve May 19th, 2017 6:01 am

    Do you mean for Euro-style keyboards? I haven’t tested it with any, but the key layout shouldn’t matter as long as the keyboard transmits standard USB HID keycodes. I would appreciate feedback from anyone who uses Retro USB with a non-US keyboard as to whether any key mappings need editing.

  15. Steve May 19th, 2017 2:47 pm

    A small number of additional Retro USB boards are now available in the store. Get them while they last!

  16. Steve May 21st, 2017 5:51 pm

    Restocked the supply yet again.

Leave a reply. Comments may not be monitored regularly. For product support questions, visit the Contact page.