18

I'm working with a small public transit agency on a neat open-source project that will help us to offer realtime data to local developers. A key piece of data we need is the current bus route a given vehicle is on. Currently, there is only a single electronic system that knows this information: the vehicle logic unit (VLU) that each vehicle is equipped with.

When a bus driver begins a route, they type its ID number into the keypad on the operator control unit (OCU). This ID number is sent to the VLU, which then displays the appropriate text on the LED signs on the bus.

On the OCU, there are two DB9F ports. In the manual, they are described as "J1708 PORTS". One of them is connected to the VLU, but the other one is available.

If I unplug the VLU, connect to one of the DB9F ports on the OCU with my computer's serial port, and turn on the OCU, the following five bytes (represented in hex) come through almost immediately:

22 00 7E 91 04

After this, the following six (again, represented in hex) comes through, repeating approximately every 10 seconds:

22 00 83 87 80 D1

If a key is pressed on the OCU keypad, the six bytes above aren't sent. Instead, they're replaced with a different set of bytes, according to the following table:

"MENU",             22 00 83 87 3D 09
"ESC",              22 00 83 87 C9 01
"CLK",              22 00 83 87 17 2F
"RTE",              22 00 83 87 5B 1E
"P/R",              22 00 83 87 5F 1D
"DEST A",           22 00 83 87 3B 26
"DEST B",           22 00 83 87 39 (yes, this one is only five bytes)
"PLAY MSG"/"A",     22 00 83 87 7D 05
"REPEAT"/"B",       22 00 83 87 7B 16
"SAFETY MSG"/"C",   22 00 83 87 79 0B
"MIC VOLUME"/"D",   22 00 83 87 77 17
"EXT LOOP"/"E",     22 00 83 87 75 01
"STOP MSG"/"F",     22 00 83 87 73 18
"ENTER",            22 00 83 87 E5 EF

As I mentioned, that all happens if the VLU is unplugged from the OCU before the OCU is turned on. If it's left plugged in to one of the DB9F ports on the OCU (as it will be in normal use), the following comes through over the other one:

22 00 7E 91 04
22 00 83 87 80 D1
22 00 83 87 80 D1
1E 00 06 7D 7A 7F FF FF 1E 00 06 7D BD FF FF FF 1E 00 06 7D 7A BF FF FF 1E 00 06 7D BD BF FF FF 1E 00 06 7D 7A BD FF FF 1E 00 06 BE EF FF FF F5 1E 00 06 BE EF FF FF FF 1E 80 C8 1E 80 C8 1E 80 C8 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 06 BE EF FF FF FF 1E 00 06 78 3E BD BA FD 7E BF BF BF BF BF BF 77 06 7C BE BD 5B FD 9F 9F FD 1E 00 06 78 BE BD 59 FD BF BF BF BF 59 0D 19 17 35 25 59 1E 00 06 7A BE BD 57 FD BF 59 17 3D 1B 17 A5 1E 00 2A 21 1E 1E F6 1D 32 1E 80 C8 1E F6 1D 32 1E 80 C8 B3 1E 80 C8 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E F6 1D 32 1E F6 1D 32 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 06 78 BE BD 5D FD BF BF 77 6D 7D 71 BF 6D 63 BF A3 1E 00 06 79 BE BD 5B FD 5F 5B 61 71 5B 75 59 59 1E 00 06 78 BE BD 59 FD BF BF BF BF 5F 67 75 7D 59 75 C3 1E 00 06 BD BE BD 57 FD BF 51 7D 6D 57 F1 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E F6 1D 32 1E 80 C8 1E 80 C8 B3 1E F6 1D 32 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 BF 1E 00 06 21 7E 1E 56 9F 05 1E 32 9F 0B 1E F6 47 06 1E F6 1D 32 C8 56 21 71 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E F6 1D 32 1E F6 1D 32 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E F6 1D 32 1E F6 1D 32 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E F6 1D 32 1E F6 1D 32 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E F6 1D 32 22 00 83 87 80 D1 1E F6 1D 32 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 06 BE EF FF FF F5 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 06 BE EF FF FF F5 1E 00 06 78 BE BD 5D FD 9D C2 7B 41 65 59 AE 79 41 69 4F 1E 00 06 BC BE 3D 5B F4 67 6D 63 75 53 6D 9C 9D 1E 00 06 78 3E BD 59 FD BF BF 57 1B 3D 23 19 33 1E 00 06 DE EB FF 57 FD BF 79 35 23 17 35 1B 4D 1E 00 05 7D D7 F6 36 E6 36 06 1E 00 05 7D D7 F6 66 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 9F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 66 FB 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 E6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 1F 67 B4 D6 F6 36 02 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 E6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 66 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 F3 D6 F6 36 02 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 74 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 E6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 9D 9F 33 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 9D 9F 33 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 E6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 F3 D6 F6 36 02 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 74 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 22 00 83 87 80 D1 1E 00 05 7D D7 E6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 62 22 00 83 87 80 D1 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 00 05 7D D7 F6 36 76 36 06 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 00 2A 21 1E 1E 00 05 7E 59 7F 0F 1E 00 06 21 7E 1E 56 1A 0F 1E 56 22 0E 22 85 5F 36 FB 1E 00 05 7D D7 F6 36 76 36 06 1E

I know, I know, that's a very large paste of data, but linking to pastebin-type websites is frowned upon here.

Anyway, my first assumption was that, as the manual says, the data is in the J1708 protocol. It seems that this is not the case, though, as I can not find any way to interpret the data as J1708.

We already have a device on board each bus that accepts input over a serial connection and forwards it to our headquarters over a cellular data connection, so figuring out this protocol is one of the final steps in this project.

To me, it looks like 22 and 1E are significant in some way. That's pretty much all I'm mostly sure about at this point, though.

I do have access to the firmware of the VLU. I posted it as a separate question here.

  • 1
    From asciitable, (decimal) 22 is a synchronous idle message and 0x1E is a record seperator. Additionally 0x04 signifies end of transmission. – mdec Apr 3 '13 at 2:00
  • @mdec: but 0x04 doesn't end every message, or even a small subset of messages. It must be hex 0x22 that is being referred to, not decimal 22. – nneonneo Apr 3 '13 at 2:26
  • 1
    @nneonneo Yeah, you're 100% right, 04 is only ever used a single time, and I was referring to hex 22. – drewbug Apr 3 '13 at 2:49
  • 1
    Do you have access to the firmware of either unit? You could disassemble it and see how it decides what data to send or how to interpret received data. – Igor Skochinsky Apr 3 '13 at 11:39
  • 1
    @IgorSkochinsky I posted it as a separate question here. – drewbug Apr 3 '13 at 18:50
7

According to J1708 a message is composed like this:

byte 0  byte 1  byte 2  byte 3 to N           byte N + 1
                        (N not to exceed 20)
MID     PID     Data    Addit. Pids & Data    Checksum

The checksum is calculated by adding all the bytes, invert it and add 1. A message is considerid valid if the message bytes + checksum = 0 (512).

The examples you give don't seem to match this, for example your hex dump for menu: 22 00 83 87 3D 09. If we assume the last byte is the checksum than we add 22 03 83 87 3D which yields to 105. Invert is 150 + 1 is 151 in which case the sequence would be 22 03 83 87 97.

If the checksum is consistently bad it can mean:

  • Another node is behaving poorly
  • An intermittent connection is disrupting communications
  • The baud rate is not very accurate
  • Electrical interference
  • 1
    I had found this problem as well. I believe we can rule out the Another node is behaving poorly option, because it happens whether or not the VLU is connected, and that is the only other connected node. The baud rate is set to 9600 bits per second, as the J1708 standard specifies, but when I next have access to the machine, I will attempt to connect to it with some other baud rates as @nneonneo had suggested as well. – drewbug Apr 3 '13 at 16:26
5

The fact that some messages are different sizes leads me to think you might be using the wrong baud rate. J1708 is specified to be 9600/8-N-1, which means you need to ensure you are connecting at that rate (and not, say, 2400 baud). It is also possible that the OCU is using a non-standard serial port configuration, but a standard J1708-derived protocol format.

So, the first thing I'd try is to debug the serial connection itself to make sure you're really receiving the bytes that the OCU intended to send.

  • I did not use anything other than cat /dev/ttyS0 > dump.bin and then a hex editor on dump.bin. I will use stty -F /dev/ttyS0 speed 9600 cs8 -parenb -cstopb and see if the results change at all. If not, what do you think is the next step? – drewbug Apr 3 '13 at 1:12
  • Your "try some inputs to see outputs" is a good first step. When faced with inconsistent outputs, try to debug. If you can get consistent output, then your job is much easier. If you cannot get consistent output, then you have to figure out a logical pattern. (This is very generic advice, but right now it's not clear exactly what's going on). – nneonneo Apr 3 '13 at 1:34
  • Is there some way I can make it more clear what's going on? – drewbug Apr 3 '13 at 2:51
  • Well, did using the new parameters help? Did any parameters help? – nneonneo Apr 3 '13 at 3:03
  • 1
    @cb88: necropost, but I do want to point out that 8N1 is 8 bits and no parity. – nneonneo Mar 8 '15 at 4:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.