What's new

nzgamer41

Beginner
Joined
Jul 14, 2020
Messages
11
Reaction score
18
Location
New Zealand
Hello, a friend of mine suggested I share this project I've been working on here, so figured why not.
IONA-PSX is a solution that will allow you to connect a PlayStation 1 or 2 Controller to an Arduino shield and convert it into JVS inputs. It's based off the IONA project as well as the IONA-346 project by Takashi Toyoshima (https://github.com/toyoshim).

It came about after I picked up a Taito Type X that was listed as non-functioning, and didn't include the Taito JVS I/O board to convert JAMMA to JVS. I didn't want to spend the outrageous amounts on sites like eBay to import one, so I went about looking for other low cost options. After messing around with a couple of different solutions, such as OpenJVS, I came to the conclusion that I would prefer to use an Arduino, solely because they're cheap, and I had a spare one lying around.


After many hours of soldering, burning my hand on the soldering iron, wiring the wrong pins up, etc, I am now ready to start showing this off! It's not 100% yet, but it is nearing the end.

WHAT WORKS:
It identifies as a IONA-PSX and my TTX will recognise this
The inputs are read from the PSX gamepad
The correct replies are sent to the TTX

WHAT IS STILL IN DEVELOPMENT:
Button mapping isn't correct yet. I need to fix this up a bit before it's complete.

I intend for this to be fully Open Source, so anyone can modify the code as well as produce the custom Arduino shield I have designed. I have got some prototype PCBs coming from JLCPCB which I should hopefully have within a week or two allowing for delays due to COVID-19. Down the line I may look into seeing if I can sell pre-assembled boards, or designing an all-in-one board that integrates the Arduino and maybe an LCD into one single board, but for now I feel this is the best solution, since it means that anyone can use it with a regular Arduino Uno and a prototyping shield if they really want.

I've included a mockup of the PCB from the manufacturer, as well as a picture of the prototyping board I've been using to test the software side.

unknown.png

IMG_20200819_025612.jpg
 
I realize it hasn't even 24 hours since my initial post, but I have actually made a lot of progress today!

Inputs now work! Found a small bug in my code which was reporting stuff incorrectly, once I adjusted that the inputs started working perfectly. I've tested with Chaos Breaker and King of Fighters '98 Ultimate Match. Here's a quick video of that working (my phone decided not to record audio for whatever reason, but you can see the controls working.)
https://www.youtube.com/watch?v=-DMxFKoT2rE&feature=youtu.be

I have also updated the code on my GitHub so the latest (working) version is available. If you have an Arduino Uno/Nano and want to mess around with it, the pinouts for the JVS connector and the PlayStation controller connector are in the README.md file. Here's a link to that: https://github.com/nzgamer41/iona-psx.

Lastly, the manufacturer of my prototype v1 PCBs have told me that they will be starting production of my 5 initial boards, I already have some ideas for changes I'd like to make, but I'm gonna wait until the first few boards arrive, which I'll be sure to show pictures of. Once I've got a semi-finalized PCB done, I will also upload the EAGLE and Gerber files to GitHub so anyone can make their own boards.

PS: If you live in NZ/Australia and happen to have a Naomi/any other JVS based boards and would be interested in testing this out further down the line, send me a message on here and we can have a chat, just want to make sure the boards work on more then just a Taito TypeX.
 
Got a new update for everyone today!

My sample PCBs have arrived today! Ordered them through JLCPCB last week and they arrived today at my house.
Here's a picture of the finished board:
EpOItchl.jpg


I still want to do some modifications to the design, such as adding in connections for a PlayStation female controller port (plug and play that way) as well as possibly a 2-player setup (turns out my code would be very easy to port to two players) and a couple of push buttons to toggle button mappings between stuff like KoF and other TTX games so the layout feels better on the playstation pad, but it's coming together!

Pretty much all I have left before I can call v1 done, is I just need to go down to Jaycar (Australian/New Zealand electronic component distributors, kinda like Radio Shack I think?) and get the components to build it.

Once I have actually assembled a working board, I will both A) demonstrate the working shield and B) upload the EAGLE files and Bill of Materials to their own GitHub repository so anyone can make their own shields. Depending on interest I may look at in the future doing a small production run of shields (these would be pre-assembled and pretty much a convenience thing, probably via patreon or kickstarter or something, would talk to forum admins first since I'm not sure what the deal is about stuff like that) but that would depend on timing and interest for a product like this.
 
Had some free time today so I went and picked up the components to assemble one of the boards.
Here are the first pictures of the assembled boards!
IMG_20200906_134935-min.jpg
IMG_20200906_134944-min.jpg
IMG_20200906_135010-min.jpg
Very shortly I will compile the bill of materials (It's pretty simple at the moment) and will add a link to the GitHub repository where the v1 board schematics are located.
On a separate note, I also had time to work on the v2 board (which will be close to final, and the one I'd consider selling as kits) which features 2-player support, as well as a 16x2 LCD for switching button mappings (buttons still need to be added at the moment, depending how many GPIO pins I have left on the arduino, I may also add an optional coin button on the board itself, atm coins are Select on the controller).
 
Very nice project!
You think it will work on Namco System 369 as well with PS3 USB fightsticks? Or would I need something else for that to concert to PS1/2 pinout?
 
Very nice project!
You think it will work on Namco System 369 as well with PS3 USB fightsticks? Or would I need something else for that to concert to PS1/2 pinout?
It definitely doesn't support PS3 controllers/fightsticks (that would need a USB host adapter thingy which is way above my skill level/may cause issues with the Arduino Uno's limited capabilities, you probably want a Raspberry Pi with OpenJVS installed for something like that), if you have some way to convert that to a PS1/PS2 controller port it'll work.
It should work on System 369 since it's just using standard JVS, if Namco did some weird stuff it might need a different mapping set up for buttons etc, can have a look later on.
 
Hello everyone, completely forgot to post up the stuff I had mentioned re board schematics.
https://github.com/nzgamer41/IONA-PSX-PCB/ is where for the foreseeable future I will keep board schematic files.
The bill of materials will be coming shortly, honestly just need to figure out how to write one.

I used Autodesk EAGLE to create the schematics, if there's a way to import the files into other PCB design software feel free to try but for simplicity I'd recommend using EAGLE since that's what I did it in. You'll need the SparkFun libraries as well as the Open Source Hardware library for the logo (google is your friend).

EDIT: To be clear, this is the v1 board that is single player and has a pin header for the psx port, not a spot to solder in a female connector. The new v2 board is coming, just need to make some adjustments to it and get a prototype made.
EDIT2: The Bill of materials has been added, note the part numbers are for Jaycar Electronics (jaycar.co.nz), if you don't live in NZ or Australia (Jaycar AU should use the same part #s) you may want to find equivalent parts at a store such as Mouser/Element14/eBay
 
Last edited:
Hello,I found the psx pin definition on the schematic (D9 D10 D11 D12)is different from the one in the code :Psx.setupPins(8, 9, 11, 12, 10).
 
I upload this project to my uno and connected all the pins and components,but still doesn't work on my naomi 2. ?(
AAC75219-FAA8-474B-B7CA-66A67A315C20.jpeg
 

Attachments

  • 609CA0E6-4EC0-4F18-BF24-C67F84219716.jpeg
    609CA0E6-4EC0-4F18-BF24-C67F84219716.jpeg
    23.4 KB · Views: 124
I downloaded the iona346 project,and it works well with my Saturn joypad. It still works, Even I did not connect the capacitor and risistor.
 
Very cool project!
Any idea where one would source the PSX female connector?
 
I upload this project to my uno and connected all the pins and components,but still doesn't work on my naomi 2. ?(
AAC75219-FAA8-474B-B7CA-66A67A315C20.jpeg
Hey, good to hear you got the iona-346 project working with your saturn pad, i think the git repo for my iona-psx code is missing some working code which is on my dev machine (I have been using a separate computer for all the Arduino programming), I will double check against that this week and push new code, there is the possibility it might not work on naomi yet (I don't see why not but I've only got a TTX so have only tested it on that), could be as simple as changing the JVS identifier to pretend it's a SEGA JVS board.

EDIT: Also the pinout's a bit weird on git because on my prototyping board (before i got PCBs manufactured) i accidentally shorted pins 9 and 10 together (don't do this) so rather then desoldering the bridge i just moved the pin down one. new code fixes this
 
I will try with my TTX2 after you updating the codes. Thank!
By the way,the button layout of iona346 (x y z kick,a b c punch)is different from the capcom street fighter recommended layout(x y z punch,a b c kick). Would you please teach me how to modify the code(I am have no idea about this:( ). Thanks in advance!
 
Back
Top