New jlink module replaces ASCII-over-USB-CDC jetson_cmd with a dedicated hardware UART binary protocol at 921600 baud for reliable Jetson comms. - include/jlink.h: JLinkState struct, jlink_tlm_status_t (20-byte packed), command/telemetry IDs (0x01-0x07 cmd, 0x80 status), API declarations - src/jlink.c: USART1 DMA2_Stream2_Channel4 circular RX (128 bytes), IDLE interrupt, CRC16-XModem (poly 0x1021) frame parser state machine, command dispatch (HEARTBEAT/DRIVE/ARM/DISARM/PID_SET/ESTOP), jlink_send_telemetry() blocking TX (≈0.28 ms per frame) - include/config.h: JLINK_BAUD=921600, JLINK_HB_TIMEOUT_MS=1000, JLINK_TLM_HZ=50, FW_MAJOR/MINOR/PATCH version constants - src/main.c: jlink_init(), jlink_process() in main loop, arm/disarm/ estop/PID flag handling, 50 Hz STATUS telemetry TX, jlink takes priority over legacy jetson_cmd for speed/steer injection - test/test_jlink_frames.py: 39 pytest tests (39/39 pass) — CRC16, frame building, parser state machine, drive/PID/status encoding Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%