I own an Arachnid electronic dart board from the late 80's, and want to capture the data from the dartboard (and eliminate the manufacturer motherboard) in order to write my own custom games.
There are two components:
1) Motherboard that sends clock signal, +5v and ground to the dartboard Smart Target Interface Board (STIB)
2) Smart Target Interface Board (STIB) that collects the dart hits from a dartboard contact matrix and sends the result as serial data using one wire to motherboard after each dart hit.
The motherboard (schematic attached) is connected to the STIB via RJ11 using a 6 wire flat phone cable and I'm trying to reverse engineer the decoding of the output so I can eventually remove the motherboard and add my own Rasberry PI (or similar) so I can program my own games.
The STIB (schematic attached) uses a 76176 RS422/RS485 chip. BUT, it only uses the "A" with the "B" being NC (not connected). On the motherboard side there is no RS422/RS485 receive chip.
I own a USB to RS422/RS485 adapter, and Arduino Mega 2560 and tried wiring it up as many possible ways I can think of using UART, SPI, I2C, to monitor the serial port. Nothing intelligent / repeatable comes across. I've spent many hours on this already and I'm at a dead end.
I have a lot of programming / logic skills but minimal circuit / schematic skills and I'm willing to try whatever is suggested.
I have some questions:
1. Why no "B" wire on the transmit lines? Is one wire RS422/RS485 possible? Thought 2 wires are necessary for differential.
2. The Driver Enable / Receive Enable on the STIB are hard connected to +5, I'm guessing because they know it's the only node and will always be enabled?
3. Could this be using an RS422/485 on the STIB but reverting to something else since it's only using one wire?
4. What is the 10k resister on the motherboard pin 37 DAT1? Is that possible a terminator to fool the RS422/485 comms to somehow think there is differential?
5. I don't currently own an oscilloscope but thought of buying the Siglent SDS1104X-E 100Mhz digital oscilloscope 4 channels standard decoder. Is that a good one? Should I use an oscilloscope to further reverse engineer and see what is coming across that single data line?
What suggestion do you have for me or thoughts on this design?
Thanks so much. I've done my due diligence but I'm stuck and could use the help - thanks in advance. 😞
I don't have the time to study the pictures yet but did you think of another way to measure voltages on the wires? Any daqboard is probably fast enuogh to measure something. And it is possible to measure signal versus GND to see what levels are present when not active and when active?
Hi, I don't have a daqboard, but I did put a multimeter on the RS422/RS485 chip at the smart target interface board (dartboard) and found there is +5 volt on pins 8 (vcc), 6 (data), 2 (RE), 3 (DE), 4 (D). I also connected pin A to Ground real fast and the dartboard responded with a dart press (which was unintelligible to it) which shows that bringing that data line back to ground does send it data (I just can't do it fast enough to represent real data).
In a very limited scope to limit your time, I'd ask if you could just look at this one small portion of the schematic (attached to this reply) and give me your thoughts regarding a one wire connection on the RS485 chip going from the smart target interface board (the dart board) to the motherboard. I'm guessing I'll need an oscilloscope to see what the data looks like as a dart is registered to figure out what is going on.
I appreciate your time.
Thank you Albert,
I2C would make sense to me based on one wire and your comment got me thinking because I always wondered why they had a 74ls04 hex inverter on the motherboard first thing in line before it hits the D8749H microcontroller (they have it labeled 8049 on the schematic). They must be taking the RS485 signal (the target interface board does indeed have this 75176B chip which it sends from) which is normally 0v for logic 1 and inverting it to +5 for an I2C logic 1 and vice versa.
So maybe if I hook up that dataline to the a hex inverter on the Arduino and then into the I2C bus maybe it will work. I will give that a shot.