In a previous blog article, I showed how you can make 2 and 4 port USB adapters to use with retro Atari Joysitcks. While that was really awesome, I recently made improvements leading to this next generation adapter that I will cover in this article. The top improvements are:
- Wireless Bluetooth support
- Paddle support in addition to joysticks
- Additional buttons you can use without having to open up your joysticks
Here is a video that shows the result if you dont feel like reading.
Wireless Bluetooth Support
Atari and retro joystick wires are typically just 5 feet long. The main idea for wireless bluetooth support was to be able to sit back away from the TV while you played your classic games. So this is now possible with my new Bluetooth retro adapter! My PC will pair to the adapter with Bluetooth and I just plug my joysticks and paddles to the adapter and I am golden!
In my last blog, I showed a preview to this original prototype I made to prove it would work:

I used an ESP32 micro controller because it has built-in Bluetooth capabilities. By using a chargeable lipo battery (you can see it on the bottom), the right code, and the right wiring, the unit can be paired to your computer or phone via Bluetooth.
Joystick and Paddle Support
With the 2 game controller ports, you can connect 2 joysticks or even 2 paddles and a joystick at same time!
Getting paddles turned out to not be very simple because Atari paddles use mega ohm potentiometers and getting them to be jitter free needed a really decent analog to digital converter or use or an RC circuit for better precision. It was kind of fun playing old paddle games like Breakout.

Additional buttons
I decided to get a bit more fancy and added additional buttons on the device that could be mapped to simulate additional buttons on the joysticks. This is great because having the extra buttons will be useful to map to things like Start, Select, Reset, etc..

I also added a small screen to see immediate feedback of the Joysticks, paddle, and the buttons on the device! In the photo above I have connected a dual paddle controller to the port on the right and the screen shows 2 half circles for that port. As I move the paddles the dials move on the screen. Real-time information is sent to the PC with built-in bluetooth and my PC sees the joysticks and paddles as game controllers.
I designed a nice case with Fusion 360 and added a charging circuit for the battery and with a few sleepless nights getting the code to work, finally had success.
Buy one here
You can buy one here on sale and proceeds go to charity since I just do this for fun.
Hello!
Thanks for sharing your great proyects!
I built the dual atari joystick adapter, in my PC it works fine, detecting both joysticks. However, when connected to my Raspberry Pi 3b+ (which has Retropie installed), the system only detects the adapter as 1 gamepad, and i tried to make it “see” the two atari joysticks. Is it possible in a RPB3?
Did you build the USB one or BLE one? USB one should work fine. With BLE version, Rasbian does not properly see separate devices on same BLE connection. Both joysticks unfortunately will map to same JSport. Hoping they will fix the distribution soon. Will post an update if i see a solution. Please keep me posted also if you find one!
UPDATE: What I ended up doing is adding a single and double mode to the unit. In Single mode, you can still use 2 joysticks or 4 paddles because the device will send both ports data to a single gamepad shown on your PC/Linux/Mac.
For both ports as Joysticks, the device will send data of the 2 Joysticks connected to the systems single gamepad as follows:
– X/Y axis and button 1 will be Joystick 1 on the device
– Z axis, rotation, and button 6 will be Joystick 2 on the device
For Retropie, you will need to be in single mode and update the retroarch.cfg file to map the second joystick correctly. For example, if you are using the standard lr-stella2014 you will need to edit the /opt/retropie/configs/atari2600/retroarch.cfg file and update these lines in the file:
input_player2_joypad_index = “0”
input_player2_a_btn = “nul”
input_player2_b_btn = “5”
input_player2_up_axis = “-3”
input_player2_down_axis = “+3”
input_player2_left_axis = “-2”
input_player2_right_axis = “+2”
If you connect 4 paddles (2 on Port 1, and 2 on Port 2), the device will send data of all 4 paddles to the systems single gamepad as follows:
– X axis and button 1 for paddle 1
– Y axis and button 2 for paddle 2
– Z axis and button 7 for paddle 3
– Z rotation and button 8 for paddle 4
Great job Ali. I was wondering if the reverse is possible to be done :
Connect from modern USB joystick or pad to old ATARI db9 console/computer ?
It should be. I will see if we can create one. Check back in a few weeks!
Would you consider sharing the schematic and code for your BLE version?
Here you go:
Thanks for the schematic. Would you mind sharing your code as well?