Tooling and findings for running an E8x/E9x electric power steering unit
outside its donor car, e.g. in an EV conversion.
Headline result: the EPS needs only two CAN messages plus a 12V enable
wire, not the 69-message set the car puts on the bus:
0x130 CAS terminal status (100ms) brings the unit up
0x1A0 DSC road speed (20ms) sets the assist level
Total required rate is 60 frames/s. Protocol write-up, including what is
proven vs. inferred and the open questions, is in eps-comms/.
Contents:
adapters/ CANdapter (its SLCAN dialect differs) and generic SLCAN
gateway/ car<->EPS relay, replay, message bench, EPS controller,
4-tab Streamlit UI
decoder/ PT-CAN frame decoding and live/replay sources
can-io/ XIAO ESP32-S3 firmware: CAN IO board + USB-CAN bridge with
a CAN-independent digital IO channel
tools/ capture, bitrate scan, startup-order and session analysis,
checksum solver
captures/ reference working session + the replay set eps_control reads
24 lines
888 B
INI
24 lines
888 B
INI
; ============================================================================
|
|
; CAN IO Board — Seeed Studio XIAO ESP32-S3
|
|
;
|
|
; 4 optocoupler inputs, 2 relay outputs (darlington), SN65HVD230 CAN
|
|
; transceiver on the ESP32-S3's built-in TWAI controller.
|
|
;
|
|
; Build: pio run
|
|
; Upload: pio run -t upload (XIAO connected over USB)
|
|
; Monitor: pio device monitor (log output over native USB CDC)
|
|
; ============================================================================
|
|
|
|
[env:seeed_xiao_esp32s3]
|
|
platform = espressif32
|
|
board = seeed_xiao_esp32s3
|
|
framework = arduino
|
|
|
|
monitor_speed = 115200
|
|
|
|
build_flags =
|
|
; Route Serial to the native USB CDC port. These are already the board
|
|
; defaults for the XIAO ESP32-S3, kept explicit for clarity: it frees
|
|
; UART0's pins (GPIO43/44) for use as Digital out 1/2.
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
|
-DARDUINO_USB_MODE=1
|