Susi Server

Automotive Vehicle Source

Node ID: vehicle · Role: Source · Realtime config: no

Description

High-level vehicle CAN source with built-in DBC-based presets for specific car models. Decodes wheel speeds, steering angle, and other signals into VehicleSpeed and VehicleState data.

Inputs / Outputs

Config aliases

AutomotiveVehicleSource, vehicle

Properties

The following fields are exposed in the node’s Properties panel in the UI. Types map to UI widgets (e.g. string → text input, number → numeric, boolean → toggle, select → dropdown, json → JSON editor).

KeyLabelTypeDefaultOptionsDescription / Notes
canInterfaceCAN InterfaceselectPeakCANPeakCAN, Vector, InternalCAN adapter family: PeakCAN (PCAN), Vector (CANalyzer / XL), or Internal (built-in CAN).
baudrateBaudratenumber500000CAN bus speed in bits per second (500000 = 500 kbit/s, standard for most passenger cars).
channelChannelnumber0Hardware channel index on the selected adapter (0 = first channel).
debugDebug OutputbooleanfalseEnable verbose logging of decoded CAN frames and derived vehicle state.

Subtypes

ValueDisplay nameExtra properties
MinimalMinimal7 field(s)
ExternalExternal (with Steering)13 field(s)
CitroenPreset: Citroen1 field(s)
CupraPreset: Cupra1 field(s)
Honda EnvixPreset: Honda Envix1 field(s)
HyundaiPreset: Hyundai1 field(s)
PicassoPreset: Picasso1 field(s)
R56Preset: R561 field(s)
SubaruPreset: Subaru1 field(s)
Tesla Model 3Preset: Tesla Model 3none

Subtype: Minimal — Minimal

KeyLabelTypeDefaultDescription / Notes
speedCanIdSpeed CAN IDnumber0CAN ID (decimal) of the frame carrying vehicle speed (e.g. 599 for Tesla Model 3 DI_speed).
speedStartBitSpeed Start Bitnumber0Bit position where the speed signal starts (LSB-first numbering, as per DBC). Bit 0 = LSB of byte 0.
speedBitsLengthSpeed Length (bits)number8Length of the speed signal in bits. May cross byte boundaries.
speedScaleSpeed Scale (kph per bit)number1.0Scale factor applied to the raw value, in kph per bit. Output is converted to m/s internally.
speedOffsetSpeed Offset (kph)number0.0Offset added to the scaled raw value, in kph.
speedIsBigEndianSpeed Big EndianbooleanfalseByte order. Motorola DBC signals = big endian; Intel DBC signals = little endian.
speedIsSignedSpeed SignedbooleanfalseTreat the bit field as a signed two’s-complement integer (e.g. for signals that can go negative).

Subtype: External — External (with Steering)

KeyLabelTypeDefaultDescription / Notes
speedCanIdSpeed CAN IDnumber0CAN ID (decimal) carrying vehicle speed.
speedStartByteSpeed Start Bytenumber0Byte offset of the speed field in the payload.
speedLengthSpeed Length (bytes)number1Length of the speed field in bytes (1, 2, or 4).
speedScaleSpeed Scalenumber1.0Scale factor applied to the raw speed value.
speedOffsetSpeed Offsetnumber0.0Offset added to the scaled speed value.
speedIsBigEndianSpeed Big EndianbooleanfalseByte order of the multi-byte speed value.
steeringCanIdSteering CAN IDnumber0CAN ID (decimal) carrying the steering angle.
steeringStartByteSteering Start Bytenumber0Byte offset of the steering field in the payload.
steeringLengthSteering Length (bytes)number1Length of the steering field in bytes.
steeringScaleSteering Scalenumber1.0Scale factor applied to the raw steering value to obtain radians.
steeringOffsetSteering Offsetnumber0.0Offset added to the scaled steering value (radians).
wheelBaseWheel Base (m)number2.9Vehicle wheelbase in meters. Used by the bicycle / Ackermann vehicle model.
trackWidthTrack Width (m)number1.6Vehicle track width in meters. Used by the vehicle model.

Subtype: Citroen — Preset: Citroen

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: Cupra — Preset: Cupra

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: Honda Envix — Preset: Honda Envix

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: Hyundai — Preset: Hyundai

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: Picasso — Preset: Picasso

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: R56 — Preset: R56

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Subtype: Subaru — Preset: Subaru

KeyLabelTypeDefaultOptionsDescription / Notes
driveModelDrive ModelselectDifferentialDifferential, Ackermann, SimpleAckermann

Example node definition

A full node definition in config.json looks like the block below. Paste it under the sources key of your config, keyed by the node’s instance name (any identifier; it doesn’t have to match the node ID).

{
  "sources": {
    "vehicle": {
      "outEndpoint": "inproc://vehicle_data",
      "type": "Minimal",
      "settings": {
        "baudrate": 500000,
        "canInterface": "PeakCAN",
        "channel": 0,
        "debug": false,
        "speedCanId": 0,
        "speedStartBit": 0,
        "speedBitsLength": 8,
        "speedScale": 1.0,
        "speedOffset": 0.0,
        "speedIsBigEndian": false,
        "speedIsSigned": false
      }
    }
  }
}

Field reference

FieldPurpose
outEndpointZMQ / inproc endpoint this source binds to publish its output. The runtime auto-generates one if omitted.
typeSubtype / backend selector. See the Subtypes section above for valid values.
settingsAll user-configurable fields — see the Properties table above.

Connections can also be declared at the top-level connections array when settings.explicitConnections is true, as an alternative to filling inputEndpoints on each node.

Loading documentation…