Jump to content
Sign in to follow this  
arpruss

Interest in an easy DIY Stelladaptor clone?

Recommended Posts

Posted (edited)

It would be super-easy to make a Stelladaptor clone with the STM32F103CxT6 that I used for my paddle project. The total cost (without a case) would be about $4 ($2 STM32F103C8T6 board + $2 DB9 adapter), and pretty much the only assembly that would be required would be to solder connections between the DB9 adapter and the STM, solder six setup pins on the STM (adding one extra resistor would help with USB compatibility), and upload bootloader and firmware. One might even get away without soldering by using a breadboard.

 

I haven't made the firmware for this as I don't actually have any Atari hardware, but it wouldn't take more than an hour or two. I don't know if there is much interest, though.

Edited by arpruss
  • Like 2

Share this post


Link to post
Share on other sites

Ive already got like 9 devices or so that do 9-pin to USB....    Great idea, but a little late to the game (for me) my friend.

 

Share this post


Link to post
Share on other sites
On 4/6/2020 at 8:41 PM, arpruss said:

It would be super-easy to make a Stelladaptor clone with the STM32F103CxT6 that I used for my paddle project. The total cost (without a case) would be about $4 ($2 STM32F103C8T6 board + $2 DB9 adapter), and pretty much the only assembly that would be required would be to solder connections between the DB9 adapter and the STM, solder six setup pins on the STM (adding one extra resistor would help with USB compatibility), and upload bootloader and firmware. One might even get away without soldering by using a breadboard.

 

I haven't made the firmware for this as I don't actually have any Atari hardware, but it wouldn't take more than an hour or two. I don't know if there is much interest, though.

This is good for do-it-youselfers but firmware is still needed.  Don't you have firmware for your paddles?  Others will be looking for a complete adapter package.

Share this post


Link to post
Share on other sites
On 4/16/2020 at 7:25 AM, mr_me said:

This is good for do-it-youselfers but firmware is still needed.  Don't you have firmware for your paddles?  Others will be looking for a complete adapter package.

I do have firmware for the paddles, and it would take about an hour or two to adapt it to this purpose. But if nobody is interested, maybe because everybody already has a USB adapter, then there is no need for me to spend that hour or two.

Share this post


Link to post
Share on other sites

What changes are needed for the firmware.  Is it to to read different potentiometer values.  There are do it yourselfers that don't program code so they would appreciate the firmware.  Maybe sharing the source code you have helps.

  • Like 2

Share this post


Link to post
Share on other sites

I'd be very interested if the firmware was open. Stick it in github, and I'll likely contribute.

Share this post


Link to post
Share on other sites
Posted (edited)
On 4/20/2020 at 11:10 PM, RevEng said:

I'd be very interested if the firmware was open. Stick it in github, and I'll likely contribute.

I haven't tested it (for one, I don't actually have any Atari hardware), so there are probably some bugs, but here is some code: https://github.com/arpruss/usb2600. The main .ino file contains wiring instructions.  You need an stm32f103c8t6 "Blue Pill" board, a DB9 socket, two 100K resistors, and a UART-to-USB adapter for loading the initial firmware.

 

Currently it only works with joysticks and paddles. It should auto-detect which one is plugged in. 

 

Might be worth extending it to support two joysticks in one USB port if people like this code. But no point doing that if nobody is available to test. 🙂

Edited by arpruss

Share this post


Link to post
Share on other sites

Awesome, I'm in. :)  I've just ordered a couple stm32f103c8t6 boards and some sockets (I have the rest of the stuff) and will give it a shot when it gets here, which may be some weeks.

I'll let you know how it goes! 👍

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, RevEng said:

Awesome, I'm in. :)  I've just ordered a couple stm32f103c8t6 boards and some sockets (I have the rest of the stuff) and will give it a shot when it gets here, which may be some weeks.

I'll let you know how it goes! 👍

I just added support for dual joystick (or four paddles) in the (still untested, except for compiling) code.

You may want to refer to https://www.instructables.com/id/USB-Paddle-Game-Controller/ for instructions on how to flash a bootloader and firmware.

 

Edited by arpruss
  • Like 2

Share this post


Link to post
Share on other sites

Welp,  I finished the preliminary build last night.  Yeah, the first port needs some work, but contrary to their appearance in the image, the joints are acceptable and there are no shorts.

 

stella-a1.JPG.c849d4d3d85ad1d1444857e636de8404.JPG

 

Unfortunately, I have no functionality at this point.  With two joysticks plugged I get:

 

[email protected]:~$ jstest /dev/input/js1
Driver version is 2.1.0.
Joystick (Grand Idea Studio Stelladaptor 2600-to-USB Interface) has 2 axes (X, Y)
and 4 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn).
Testing ... (interrupt to exit)
Axes:  0: 32767  1: 32767 Buttons:  0:off  1:off  2:off  3:off 

No control input causes any change.

 

With a set of paddles plugged into port 1, one of those axes shows "0," but neither paddle causes a change when rotated, and the buttons remain "off" when pressed.

 

I've tried resetting the device, and holding down a joystick or paddle button when plugging in the 2600-to-USB with no change.

 

To confirm, this is how the ports should be wired, correct?

 

// Atari pin 7 -- VCC
// Controller #1
// Atari pin 3 -- PA2 // left paddle button, joystick left
// Atari pin 4 -- PA4 // right paddle button, joystick right
// Atari pin 9 -- PA1 // pot 1
// Atari pin 5 -- PA3 // pot 2
// Atari pin 8 -- GND
// Atari pin 6 -- PB5 // fire
// Atari pin 1 -- PB3 // joystick up
// Atari pin 2 -- PB4 // joystick down
// 100K resistors between Atari pin 9 and GND and between Atari pin 5 and GND

// Controller #2
// Atari pin 3 -- PA6 // left paddle button, joystick left
// Atari pin 4 -- PA8 // right paddle button, joystick right
// Atari pin 9 -- PA5 // pot 1
// Atari pin 5 -- PA7 // pot 2
// Atari pin 8 -- GND
// Atari pin 6 -- PB8 // fire
// Atari pin 1 -- PB6 // joystick up
// Atari pin 2 -- PB7 // joystick down
// 100K resistors between Atari pin 9 and GND and between Atari pin 5 and GND


 

Share this post


Link to post
Share on other sites

Changing INPUT_PULLDOWN to INPUT_PULLUP in line 207 might help. I've updated it in the code.

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)
8 hours ago, arpruss said:

Changing INPUT_PULLDOWN to INPUT_PULLUP in line 207 might help. I've updated it in the code.

Making progress.  This change does show paddle button inputs.  They are inverted(closing the switch turns the button "off",) but both paddle buttons are now working.  Pot(lack of) reading behavior is unchanged as expected(by me.) 

 

Do you suppose that removing the resistors would allow for joysticks to be "detected?"  I realize that since they are just a bunch of open switches there isn't really anything to detect without something actuated on a stock standard 2600 joystick.

Edited by fluxit

Share this post


Link to post
Share on other sites
45 minutes ago, fluxit said:

Making progress.  This change does show paddle button inputs.  They are inverted(closing the switch turns the button "off",) but both paddle buttons are now working.  Pot(lack of) reading behavior is unchanged as expected(by me.) 

 

Do you suppose that removing the resistors would allow for joysticks to be "detected?"  I realize that since they are just a bunch of open switches there isn't really anything to detect without something actuated on a stock standard 2600 joystick.

Nope.  Here's what I get with my second, bare board:

 

Driver version is 2.1.0.
Joystick (Grand Idea Studio Stelladaptor 2600-to-USB Interface) has 2 axes (X, Y)
and 4 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn).
Testing ... (interrupt to exit)
Axes:  0:-30045  1:-29960 Buttons:  0:on   1:on   2:on   3:on  

 

Share this post


Link to post
Share on other sites

Sorry, it was my fault on  the pots.  It was very late when I was finishing up.  I forgot vcc entirely.  Now both paddles are working on the 1st port, although they are fighting each other a bit.  I'm getting a full range response.

Share this post


Link to post
Share on other sites
Posted (edited)

OK, I reversed the buttons: get the latest version from github.

 

I am not sure what you mean by saying the two pots are fighting. Do you mean that when you turn one, the other wiggles a bit? I've had that issue with my (non-Atari) paddles, but I thought I managed to fix it by using different ADCs for the two paddles. And I have this implemented here, too. 

 

It should auto-detect joysticks vs. paddles, but maybe that's not working.

Edited by arpruss

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...