More JVS hackery

SpamYouToDeath

I asked for a, Custom Rank and, Learned My Lesson.
15 Year Member
Joined
Oct 3, 2005
Posts
6,042
So, I decided to take another shot at a JVS IO device. I wanted to avoid the mess of hosting a USB myself, but still make it easy to use USB peripherals with my NAOMI.

Initially, I tried a straight serial adapter, to attach a USB host (i.e. a Raspberry Pi) to a JVS bus. The design was very simple - a USB UART and an RS485 transceiver and a few parts to make the Sense lines work. Then, the intent was, I could just implement the JVS protocol on software under Linux or whatever, and read any gamepad that Linux could read.

The problem is, JVS requires that the device turns around a request in 100 microseconds. That's a ton of time for a microcontroller and a UART, but it's impossible if you're across a USB. The USB host could get the whole packet at once, ideally, but would have to wait for the next 1ms USB frame to send its reply back to the adapter. So, for example, the NAOMI would time-out waiting for the response when it enumerates the JVS devices.

I could have dropped the USB part and just gone straight to a 9-pin serial port or something, but real native serial ports are rare nowadays. (A USB-to-serial adapter has the same problem of course.)

Instead, I built a JVS device that runs by itself - implementing the JVS protocol on a microcontroller - but also acts as a USB device, and gets the switch data from the USB host. It was trivial to also add some inputs for plain old switches, so it's also an IO Board by itself.

I drew a circuit board and ordered some prototypes. I ended up submitting the order one day after the factory closed for New Years... and then was quarantined for a month. But the boards got here eventually, and I put one together. My solder paste is kinda expired, though, and I ended up toasting part of the board in the process...

jvsbridge.jpg

The firmware still needs some polish, but luckily it's easy to update - the Silicon Labs microcontroller comes with a bootloader that runs over USB. So, it has a "firmware update" button and doesn't require any special equipment.

I'm going to try getting these assembled and selling them, once the world sorts itself out a bit.
 

Fox1

Bub & Bob's Bubble Buddy,
20 Year Member
Joined
Feb 24, 2001
Posts
3,169
I just wanted to say, I got one from Spam and it's a quality product. I put it in my supergun and it works great with my Exa board.
 

skate323k137

Professional College Dropout
10 Year Member
Joined
Jan 7, 2013
Posts
3,911
Thank you for sharing the source. I know we have emailed back and forth and I appreciate your help regardless. Still having fun with mine, but I haven't gotten to messing with usb host mode yet.

For those curious or anyone else digging through the source, I have 2 minor issues on Ringedge, neither of which affect the games originally included in the Niko multigame. I have a multi-player version of Pengo, but the Tuscon may not be reporting enough coin slots (I get a coin error... but looking at the source, the pcb should be reporting 2 slots already which I would think should suffice). Hopefully that's an easy fix. The other thing I would love to see is this functioning as a 2nd node to another IO for 4 player goodness.
 
Last edited:

skate323k137

Professional College Dropout
10 Year Member
Joined
Jan 7, 2013
Posts
3,911
For anyone else not sure what to do with one of these, I was able to use one with 2 UD decoders to effectively consolize a ringedge multi
 

Attachments

  • 8AbHKYH.jpg
    8AbHKYH.jpg
    676.8 KB · Views: 5

Gremlin

Hi, I'm Gmegbln
10 Year Member
Joined
Apr 4, 2010
Posts
637
Woah, been meaning to email for a quote on shipping to Canada for my Naomi but kept putting it off, had no idea you made it Spam!
Treating myself when my tax return comes in!
 
Top