One of the things I really enjoy is figuring out how things work. A question was asked about the partner joystick communications and so (although I’m sure JVN will give the official answer) here is what I have found after an hour or so of poking around.
The partner joystick connector is a 4 pin RJ-9 (or is it RJ-22, not sure) and uses a 4P4C telephone handset cable to connect to the partner joystick.
Connector pinout
Pin1 GND
Pin2 Tx Data from the joystick
Pin3 Rx Data to the joystick
Pin4 GND
The connection uses RS232 communication at normal RS232 levels rather than the TTL levels used on the programming port.
Communication is 8 bit No Parity (I think) 1 stop bit at 115200 baud.
The Master joystick sends a message to the partner joystick roughly twice per second, the message is 4 bytes (shown below in Hex) and seems to be used to keep communication alive.
AA 55 3B 01 (This is inconsistent with all other VEX messages, should be 1 more byte if it followed the normal format )
The partner joystick responds with a message similar to the following (again in hex) at a much more frequent rate (to lazy to time it).
AA 55 39 0A 7F 7F 7F 7F 00 00 65 7F 7F A1
the breakdown of this is as follows
AA 55 39 - header, nearly all VEX messages start with AA 55
0A - data length, including checksum
7F 7F 7F 7F - the values for the 4 analog joysticks
00 00 - the buttons as bitmapped data. ie. one button per bit
65 7F 7F - accelerometer data
A1 - checksum, the sum of all data bytes and the checksum byte will be 00 (mask sum with 0xFF )
I will leave it to others to add more detail on switch bit positions, I did decode this for one of the other communication protocols but to be honest I’m too lazy to type it out here.
I had the joystick hooked up to a PC through a USB serial adapter, it would be very simple to create a partner joystick simulation if needed.
This is obviously unofficial information so use at your own risk
Enjoy