v5_field_control/README.md

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.