I am a old 'newbie' and hope I am not providing too much info so apologies in advance.
I have a motor control PCB for a 12vdc 8A antenna rotor. Two momentary switches control motor power and direction, clockwise (+12vdc) and counterclockwise (-12vdc) switching via two HEXFET Power MOSFET's. I dont know the details but the control PCB has a PIC18F and is designed to also sense motor current draw and if it exceeds a certain threshold (like motor lockup) it shuts off power to motor.
There is a hardwired hand remote on 20' unshielded cable (4 wire: 5v, GND, A, B) which has the two momentary switches. It also has a PIC18F and MAX483 on a small PCB. The main control PCB also uses a MAX483 to communicate with the hand remote. My goal is to replace the hardwired hand remote with a Moteino (Arduino + RF xcvr) wireless transceiver being controlled from a distant site. I need to understand the RS485 packet and handshaking protocol being used in order to replicate it with my Moteino hardware.
I have scoped and decoded (with a borrowed differential probe) the packets between the remote and the control PCB. My key findings are:
1) control PCB unattached from remote sends out a 'heartbeat' packet to the RS485 bus every 4.8msec (4800 baud), 8 bit, No parity, no XON/OFF code found
2) the packet (hex) is: 02 88 31 00 04
3) the remote alone (powered by 5vdc) will not put anything on the RS485 unless the control PCB heartbeat is on the bus
4) when control PCB and remote are both on bus and no switches being pressed, the control packet (decode same) transmission rate appears to jump to 9600 and following each heartbeat packet it seems the remote replies with the same packet about 16 msecs after control packet. With both on the bus they are both sending packets at 9600 (screen shots attached below).
5) When the motor switches are pressed on the remote the packets remain identical except the 00 is replaced by either 06 (clockwise switch) or 08 (counterclockwise switch). BOTH control packet and remote packet now have either the 06 or 08 until switch is released and then it goes back to 00
My take on this is the handshaking protocol is the packet content itself. The control PCB listens for short time after it sends heartbeat. If remote is on line the remote sends back same packet unless one of switches is pressed in which case it changes one of the packet bytes to send. The control PCB accepts that one of these two new bytes is acceptable and sends that new packet back to the remote. The remote double checks to verify that the control PCB received it's last packet correctly.
My skepticism is that this seems like a lot of overdesign for a simple two switch motor hand remote controller.
Nevertheless, does this seem like the most reasonable interpretation of my findings? Should I be checking anything else out or should I go straight to trying to replicate the remote with my own Arduino/MAX483. Can I do any harm to the control PCB if my assumptions are wrong?