1.3 KiB
Setup
Connect ESP32 TX2 & RX2 to DI & RO of the Max485.
Connect ESP32 D23(or whatever read_line is set to) to RE/DE.
Power Max485 with ESP VIN/GND.
Replace {WIFI_SSID}, {WIFI_PKEY}, {MQTT_HOST}, and {MQTT_PORT} in the code(and SubTopic if you want).
Flash the code onto the ESP32, connect A&B of the smart cable connected to the controller(aka the black and red wires respectively) to the Max485.
Viewing the USB serial of the ESP32, send 0xAB-like hex sequences to update the configured state.
Known States:
- 0xC9 : paused
- 0xE1 : driver competition
- 0xD1 : auton competition
- 0x61 : driver skills
- 0x51 : auton skills
From this the flags are thus: 0: ? - always 1 1: ? - always 0 2: ? - always 0 3: ? - always 0 4-5: mode - 0 for paused, 1 for auton, 2 for driver, 6: ? - always 1 7: 0 for skills - 1 for competition
The field control sequence(aka when the controller sends 0xA7) can be responded to with either a 0x02 ACK packet to acknowledge that the current values are correct, or a 0x53 packet to send new values. However, a 0x02 must be sent at least every 20 packets else the controller will restart the connect sequence.
All of the protocol reversing has been done with 1 brain & 1 controller, so any unique fields are constant and will need to be updated.