What's new
winteriscoming, MetalliC, huge thanks for all your work on this. I just recently got ID3 running at home so I'm building the serial adapter as soon as the USB > serial adapter arrives.

I'll be trying the script in linux, I don't see any reason why it won't work.

I may have parts to build a couple extra NAOMI2>SERIAL adapters. If mine works I'll offer them up to good members.

I find it really interesting regarding CN8 working differently on N1/N2 boards, especially the N2 having RS232 there. I guess there would have been no point in sega making a different filter board part no. just to relabel that port since it is labelled rs422.

Anyway thanks again and I look forward to testing this out once the rest of my parts arrive.
 
Gave it a good effort but not quite there. I tried using both linux and windows, with both a built in com port and a USB->Serial adapter.

I installed python3 and pyserial (via pip) and the script starts up fine. I know it's connecting at least somewhat because if I use the wrong com port it errors out right away.

I get as far as the script giving me CTS=true (or cts=false if I disconnect the cable) and it seems to be listening since I get the message about the file having data. I just can't get past initialization without a r/w error.

Any ideas? I try initialize in the test menu but it fails pretty quickly with Communication error. I've double-checked my wiring about 4 times already. Not sure if there's an easy way to debug or see any communications to troubleshoot.
 
Gave it a good effort but not quite there. I tried using both linux and windows, with both a built in com port and a USB->Serial adapter.

I installed python3 and pyserial (via pip) and the script starts up fine. I know it's connecting at least somewhat because if I use the wrong com port it errors out right away.

I get as far as the script giving me CTS=true (or cts=false if I disconnect the cable) and it seems to be listening since I get the message about the file having data. I just can't get past initialization without a r/w error.

Any ideas? I try initialize in the test menu but it fails pretty quickly with Communication error. I've double-checked my wiring about 4 times already. Not sure if there's an easy way to debug or see any communications to troubleshoot.
Everything the emulator does, it outputs to the console. It displays everything it receives from the NAOMI and everything it sends in reply. If it's not displaying any commands from the game, it's not receiving any, and I suspect a wiring issue.

2 potential wiring issues that could lead to this scenario: 1. The game isn't seeing RTS from the emulator on its CTS line and therefore doesn't attempt to send any commands. 2. The emulator isn't receiving TXD from the game on its RXD line.
 
Glad it writes to console, that saves a lot of headaches with sniffing the data myself.

I know the wiring is correct according to your instructions:
Pin 1: RXD to Pin 3: TXD
Pin 2: TXD to Pin 2: RXD
Pin 3: GND to Pin 5: GND
Pin 4: RTS to Pin 8: CTS (This may actually not be needed)
Pin 5: CTS to Pin 7: RTS

I just used a 5 pin and cut off the block so it slides past pin6. I'm sure this is right. I guess I can try the exact same USB>Serial device you tried, but everything I can see shows the com port works with the correct settings (both my built in one and my USB>serial adapter)

20160429_205442.jpg

Is there a way I can check voltage between other pins and GND or something? At this point I'm not sure what to try other than another filter board or another serial adapter. I guess I won't sweat it too much until I get in the same serial adapter that you know works.
 
Last edited:
Glad it writes to console, that saves a lot of headaches with sniffing the data myself.

I know the wiring is correct according to your instructions:
Pin 1: RXD to Pin 3: TXD
Pin 2: TXD to Pin 2: RXD
Pin 3: GND to Pin 5: GND
Pin 4: RTS to Pin 8: CTS (This may actually not be needed)
Pin 5: CTS to Pin 7: RTS

I just used a 5 pin and cut off the block so it slides past pin6. I'm sure this is right. I guess I can try the exact same USB>Serial device you tried, but everything I can see shows the com port works with the correct settings (both my built in one and my USB>serial adapteryo
Is there a way I can check voltage between other pins and GND or something? At this point I'm not sure what to try other than another filter board or another serial adapter. I guess I won't sweat it too much until I get in the same serial adapter that you know works.
Your wiring looks OK. Are you using a serial cable to this adapter? If so, check that all of these positions are populated and straight through, end to end.
 
Thanks for having a look. This is going straight from the N2 to the serial port, no additional cable at all.
 
Thanks for having a look. This is going straight from the N2 to the serial port, no additional cable at all.
What's the USB adapter you have?

I would think you could use a DMM to measure voltage from a pin to ground, but if there's any quick changes happening, you're not likely to get a good reading. I'm not sure about what they'd show when idle.

I've only ever tried to the TU-S9, so not sure about other options that would/wouldn't work.
 
I'm not sure off hand what bios I'm on. It's not a multibios. I believe my NAOMI 2 came from an ID3 cab, so whatever was on it is what I've kept.

I wonder if you're encountering voltage incompatibility, but I see the adapter you have is well reviewed, so not sure why it wouldn't be compatible. You might see if you can do some kind of loop back test to make sure your adapter is both sending and receiving.
 
good idea. I have some extra dsubs so I'll try a loopback test next.

Edit: loopback tests run fine both on built in port and usb adapter. I'll still humor myself and wait on the TU-S9 before I lose any sleep troubleshooting the NAOMI2 board.
 
Last edited:
Not to make you lose sleep, but TU-S9 might be the same chipset as your adapter. A quick search made me think it is. Can you do a loopback with RTS to CTS to make sure that's working? If you install the trial 232analyzer software, it lets you toggle RTS on/off and shows CTS status.
 
Any info helps :) On my loopback I just made, RTS is wired to CTS and RXD to TXD.

I can redirect data from stdin to the port on linux, and with the loopback, the emulator receives the data.

Code:
root@wiki:/mnt/win/id3# ./ID3CARDEMU.py -cp /dev/ttyS0 -f NEWCARD1.HEX 
COM port opened and named: NAOMI2
CTS: True
Read in Card Data from NEWCARD1.HEX
NEWCARD1.HEX appears to contain data.  This card data will be loaded when a game is started.
2016-05-01 01:08:59.042049: NAOMI2
74 65 73 74 0A
ERROR: Emulator does not know how to respond to:  74 65 73 74 0A
I have windows installed, let me reboot into it and see what 232analyzer has to say

edit: looks good as far as toggling RTS. CTS also turns off and on. Let me know if any settings look off to you.

232analyzer.png
 
Last edited:
Hmm, since the emulator shows CTS as true, that makes me think RTS is fine. There's a line in the script that sets RTS on. You could comment it out with # and run it again to see if CTS shows as false.

It might also be worth checking continuity on all the wires in your DIY adapter to rule out a bad connection.
 
Hmm, since the emulator shows CTS as true, that makes me think RTS is fine. There's a line in the script that sets RTS on. You could comment it out with # and run it again to see if CTS shows as false.

It might also be worth checking continuity on all the wires in your DIY adapter to rule out a bad connection.
I can give that a shot. If the adapter isn't connected to the NAOMI it returns CTS as false anyway. It only shows true if the NAOMI is connected.

I'm pretty confident in the wiring... I made 2 identical adapters, and everything is freshly soldered to brand new dsub connections. I can get out the multimeter but I'm fairly confident that's not my problem at the moment.

I'm using ID3 export with a multibios set to US. I'm going to try to rule some stuff out by burning a legit export BIOS real quick. I might also try a JPN copy of ID2 with a JPN bios if ID2 supported card readers. Thankfully I have plenty of m27c160 chips laying around.
 
I'm pretty sure I gave the right wiring in my instructions, but another test would be to swap RXD and TXD wires at the CN8 connector just to rule that out. I've had mine swapped before without breaking anything, so I don't think there would be any harm in swapping them to the incorrect positions if they are currently correct.
 
I'm also pretty sure your wiring is right, I checked the sega diagram as well.

Does not appear to be a region or bios issue either. I tried a legit exp bios with ID3 as well as a jp bios with jp initial D 2.

Swapping rxd/txd didn't help but it was worth a shot. At this point I'm trying a new filter bd, and calling it quits for the night after that. Regardless thanks for all the help.

Edit, filter bd made no difference. I did previously have to replace the filter bd on this particular motherboard to fix an audio issue, so I'm beginning to think it's my motherboard. I don't have another one to test, unfortunately. I could send you one of my adapters if you want to humor yourself and test it.

If anyone else wants to try this with ubuntu, it's pretty simple. Pop up a terminal and:
sudo su - # put in your password to get root
apt-get install python3 #python 2 will remain system default, don't worry
apt-get install python3-pip #need pip to install the serial package
pip3 install pyserial #only dependency you should need.

At that point edit the #! in ID3CARDEMU.py from #!/usr/bin/env python to #!/usr/bin/env python3 and you should be good to go

Built in serial ports should start with /dev/ttyS0 and your USB adapter should show up at /dev/ttyUSB0 when you plug it in, so just use that path/device as your arg for -cp
 
Last edited:
Maybe try the loopback test through your wiring adapter by bridging pins at the CN8 connector (unplugged from NAOMI 2). To me that would rule out issues there.

Maybe a test for the NAOMI would be, while it's not connected to the PC, connect its RTS to its CTS and use a DMM and compare its TXD to ground both when idle and during initialization. Leave RXD alone. See if TXD looks alive at least. In that scenario the game would send out the initialization command several times over a few seconds before failing. It shouldn't be instant failure. If I get a chance I can do the same with my NAOMI and we can compare.
 
@skate323k137
sorry for dumb question, but have you set NAOMI2 mobo jumper to 'serial enabled' position ?

speaking of this
I find it really interesting regarding CN8 working differently on N1/N2 boards, especially the N2 having RS232 there. I guess there would have been no point in sega making a different filter board part no. just to relabel that port since it is labelled rs422.
I'm tend to think N2 have both - RS422 (like NAOMI1, wired to Z80-based MCU with a lot of IO - IC a bit left to battery) and RS232 (wired to SH4 SCIF port), so CN8 function can be swithed via jumper(s)
It'll be nice if someone check this assumptions.
 
@skate323k137
sorry for dumb question, but have you set NAOMI2 mobo jumper to 'serial enabled' position ?

speaking of this
I find it really interesting regarding CN8 working differently on N1/N2 boards, especially the N2 having RS232 there. I guess there would have been no point in sega making a different filter board part no. just to relabel that port since it is labelled rs422.
I'm tend to think N2 have both - RS422 (like NAOMI1, wired to Z80-based MCU with a lot of IO - IC a bit left to battery) and RS232 (wired to SH4 SCIF port), so CN8 function can be swithed via jumper(s)It'll be nice if someone check this assumptions.
There are jumpers for serial!? Interesting. Since my board came from ID3, everything was probably set correctly by default. I can take a picture of mine if that helps. Where are the jumpers?
 
Back
Top