VESC CAN Frame Builder

Generate a hex CAN frame for this firmware and see an annotated breakdown.

Annotated CAN Frame

Hex Output



      

Notes

Extended ID Format: (CAN_PACKET_ID << 8) | ControllerID

Data encoding: Follows firmware buffer scales (see comm_can.c)

RX Buffer Multi-frame: FILL_RX_BUFFER commands split large payloads across multiple frames. Use PROCESS_RX_BUFFER to execute the assembled command with CRC validation.

UART Command Builder

The new UART Command Builder allows you to send any COMM_PACKET_ID command over CAN using the RX buffer protocol. This enables complex operations like configuration changes, motor detection, and terminal commands.

How it works:

  1. Select a UART command (e.g., COMM_GET_VALUES, COMM_SET_DUTY)
  2. Fill in the command-specific parameters (automatically generated UI)
  3. The tool builds a complete UART packet with proper payload encoding and CRC16
  4. Generates the CAN frame sequence to send it via RX buffer

Automatic Buffer Optimization:

Example Usage:

Response Modes (commands_send parameter):

Smart Parameter Generation:

Traditional RX Buffer sequence:

  1. FILL_RX_BUFFER (offset=0, data=first chunk)
  2. FILL_RX_BUFFER (offset=7, data=second chunk)
  3. PROCESS_RX_BUFFER (lastID, cmdSend, totalLen, CRC16)