What's new
Thanks @Darksoft and @Mitsurugi-w

Just recieved the repalcement. Working great!

IMG_3582.jpg
 
Anyone else with an ES3 that can confirm if this I/O works for them?
It looks like it's too slow with responding. Which will make the ES3 give an I/O error. This is even with the correct ID set. But with debugging turned on. It won't even reach that state. Using an official NA-JV works fine.

#####namco ltd.;NA-JV;Ver1.00;JPN,Multipurpose #####
Wrote profile num to SD card: 1
CMD_RESET
flush reply
CMD_RESET
flush reply
CMD_SETADDRESS
Address is: 1
flush reply
CMD_FORMATVERSION
CMD_JVSVERSION
CMD_COMMSVERSION
flush reply
CMD_READID
flush reply
CMD_RESET
flush reply
CMD_RESET
flush reply
CMD_SETADDRESS
Address is: 1
flush reply
CMD_FORMATVERSION
CMD_JVSVERSION
CMD_COMMSVERSION
flush reply
CMD_READID
flush reply
CMD_RESET
flush reply
CMD_RESET
 
@GravitySandwich which IO does the ES3 work with ?

Can you make a recording from the physical level with a RS485 sniffer and using something like Hammer Term which can timestamp packets ?

The ES3 might be expecting proper SENSE handling as well.
 
@GravitySandwich which IO does the ES3 work with ?

Can you make a recording from the physical level with a RS485 sniffer and using something like Hammer Term which can timestamp packets ?

The ES3 might be expecting proper SENSE handling as well.
I attached the log with Hterm (Hex and Timestamps) I did try it with Naoki's library which can be found on https://github.com/NaokiS28/jvs and that works. Only downside is that it would destroy the purpose of this device since none of the profile switching works.

The ES3 can use either one of these boards:
NA-JV
NA-JV(S)
NA-JV(M)

They are all the same apart from firmware. Some games like WMMT and Mario Kart want the specific one. (WMMT wants S, MKGPDX wants M)

I suspect that the reasoning for it not working is because there is too much stuff gathered in the loop, hence making it slower.
 

Attachments

  • output_2021-12-07_15-59-19.txt
    4.2 KB · Views: 112
Last edited:
Let's see what Master @winteriscoming has to say...
Sorry, I don't have capacity to dig into this currently.

The game may be looking at reported features as well as the id string.

I have not found an N2 and wmmt3/dx/dx+ to be at all picky about what JVS board is plugged in. I wonder what the ES3 is doing differently.

Best course of action might be to see a log sniffed from the stock Namco JVS board compared to a log from the multi JVS to see where the breakdown is.

Unfortunately, adding debugging output directly from the multi JVS introduces more time spent replying to commands while printing the debug output.
 
Sorry, I don't have capacity to dig into this currently.

The game may be looking at reported features as well as the id string.

I have not found an N2 and wmmt3/dx/dx+ to be at all picky about what JVS board is plugged in. I wonder what the ES3 is doing differently.

Best course of action might be to see a log sniffed from the stock Namco JVS board compared to a log from the multi JVS to see where the breakdown is.

Unfortunately, adding debugging output directly from the multi JVS introduces more time spent replying to commands while printing the debug output.

I have also tried without debugging mode on and sniffed the traffic. i attached both logs of original NA-JV and Mega-JVS. As you can see, the MegaJVS gets stuck after sending it's ID.
 

Attachments

  • NA-JV.txt
    33.5 KB · Views: 85
  • Mega-JVS_Emulated_as_NA-JV.txt
    405 bytes · Views: 100
I figured it out. There were two #includes in the MEGA_JVS.ino file that were referencing libraries that I needed to add. Those were bounce2 and U8glib. Once I did that I was able to update the firmware. My multiJVS is working now! All the profiles switch properly and I can create new ones! Thanks for the help everyone!!
Hello, Jambofan

I'm having what sounds like a similar issue as you when trying to update firmware. How exactly did you end up solving this?

Arduino: 1.8.20 Hourly Build 2021/12/20 07:33 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

MEGA_JVS:53:10: fatal error: Bounce2.h: No such file or directory

#include <Bounce2.h>

^~~~~~~~~~~

compilation terminated.

exit status 1

Bounce2.h: No such file or directory



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
 
I needed to update the firmware on the MultiJVS to V1.2.7.

  1. Download and install Arduino IDE
  2. Download Bounce2 and place file in 'libraries' folder of Arduino IDE folder you just installed via 'File Explorer'
  3. Under 'Tools' menu of Arduino IDE application, go to 'Manage libraries...' and install "U8glib" (there's a search box so you don't have to scroll)
  4. Under 'Tools' menu, make sure 'Arduino Mega 2560' is selected under 'Board' and 'Processor'
  5. Back in Arduino IDE, go to 'Open' (control-O keyboard shortcut) and navigate to "Mega_JVS.ino within "MEGA_JVS" folder which can be downloaded at @winteriscoming github here
  6. Hit 'Upload' in Arduino IDE and wait for progress to finish
  7. When asked to select serial port, select COM port where your MultiJVS is connected via micro USB cable—this can be found by right-clicking the 'start menu' going to 'Device Manager' then finding the MultJVS under 'Ports'
  8. Once the firmware is updated, disconnect your MultiJVS and mount your MicroSD card.
  9. On the root of your SD card, dump the contents of the folder 'SD Card Contents' to the root of your SD card—this is what you downloaded from @winteriscoming github above.
Big thanks to @Darksoft @winteriscoming @Mitsurugi-w for the great hardware and software and to @hyp36rmax for walking me through the firmware update.

EDIT: Some very helpful notes and clarifications from @clintkolodziej for those folks like me who are more comfortable around hardware as opposed to software 😅
  • Arruino IDE can be downloaded from the Windows Store instead of downloading direct from link above. This ensures the software updates automatically through the store.
  • Bounce2 can be installed from Manage Libraries the same way as U8glib
  • On winteriscoming's github, you can download the respository files by clicking the green "Code" button and choose "Download as ZIP" from the menu
  • Connect the multiJVS to your computer by plugging a MicroUSB cable into the "PROG" port on the board. There is no need to power it separately, it will draw power from the USB connection
  • Open the Device Manager and expand the "Ports" section. The MultiJVS will show up as a "USB Serial Port (COMx)". If you are unsure which port is the correct one then unplug the multiJVS, note which ports are shown, then reconnect it and you can identify which COM port is the new device.
  • During the firmware upload to the MultiJVS COM port an orange LED on the board will flash
  • Eject the SD card from your computer by right clicking on the SD card drive and choosing "Eject" and insert it into the SD card slot on the MultiJVS
 

Attachments

  • Screen Shot 2022-01-14 at 6.19.50 PM.png
    Screen Shot 2022-01-14 at 6.19.50 PM.png
    96.4 KB · Views: 79
  • Screen Shot 2022-01-14 at 6.22.06 PM.png
    Screen Shot 2022-01-14 at 6.22.06 PM.png
    521.5 KB · Views: 79
  • Screen Shot 2022-01-14 at 6.31.45 PM.png
    Screen Shot 2022-01-14 at 6.31.45 PM.png
    239.3 KB · Views: 84
Last edited:
Been doing some testing with power to the MultiJVS and the board doesn’t seem to initiate when fed 12V. The display is blank and buttons are unresponsive but the 12V indicator LED near the JST connector lights. I’m measuring 12V at the MultiJVS.

Any idea as to what I’m missing?
 
Back
Top