Skip to content

CANBUS Configuration

Settings for CANBUS apply only to Controllers with a CANBUS interface installed. Further, the CANBUS Configuration may only be set using the CANBUS interface.

After changing settings, the Controller must be reset (via power cycle or RESET command) before the new settings will take effect.

Note: the examples in this section assume the Controller's CANBUS address is 0x80 while the Host device is 0x90. Different values must be substituted if your CANBUS network is designed differently.

Configuration Commands sent to the Controller should be formatted as follows:

Priority:       Any (0-7)
PGN:            0xEF00
Destination:    (Controller Device ID)
Source:         (Host Device ID)
Payload:
    Byte 0:     Function Code 0x49
    Byte 1:     Op Code
        Read: 0x43
        Write: 0x2B
    Byte 2:     Parameter to be accessed
    Byte 3:     Ignored
    Bytes 4-8:  Data (depends on Op Code)

Responses from the Controller will be formatted as follows:

Priority:       Same as incoming request
PGN:            Same as incoming request
Destination:    (Host Device ID)
Source:         (Controller Device ID)
Payload:
    Byte 0:     Success: Function Code 0x49
                Error: MSB set (0xC9)
    Byte 1:     Op Code: Same as incoming request
    Byte 2:     Parameter accessed
    Byte 3:     Ignored
    Bytes 4-8:  Data
        For Write: zeros
        For Read: contains the requested data

The examples on this page use a Host Device ID of 0x90, and a Controller address of 0x80. These values will vary according to the design of the CANBUS network.

Diagnostic Info

The following Parameters may be read from the controller for diagnostic purposes:

Parameter Description Value
0x01 System ID 2-byte little endian system identifier
0x02 Version 2-byte CAN software version (major.minor)
0x03 CAN Errors 1-byte, nonzero indicates that the Controller has detected multiple communication errors.

Example Read the System ID (0x1234)

Command:    10EF8090 49 43 01 00 00 00
Response:   10EF9080 49 43 01 00 12 34

Available Info and Settings

0x02 Software Version Address

Parameter: 0x02
B0 B1 B2 B3 B4 B5 B6 B7
0x49 {OP} {Parameter} 0 0 0 Minor Version Major Version

Example

Read the version

Command:    10EF8090 49 43 02 
Response:   10EF9080 49 43 05 00 00 00 02 03  Version 3.02

0x06 CANBUS Baud Rate

Parameter: 0x06
B0 B1 B2 B3 B4 B5 B6 B7
0x49 {OP} {Parameter} 0 Rate - - -

The Rate is an enumeration:

Rate Selected Baud Rate
0 125 Kb/s
1 250 Kb/s (default)
2 500 Kb/s
3 1 Mb/s

Example

Read the baud rate (250k)

Command:    10EF8090 49 43 06  
Response:   10EF9080 49 43 06 00 02 00 00 00

Write the baud rate (500K)

Command:    10EF8090 49 2B 06 00 02
Response:   10EF9080 49 2B 06 00 00 00 00 00

0x07 TX Message Priority

Parameter: 0x07
B0 B1 B2 B3 B4 B5 B6 B7
0x49 {OP} {Parameter} 0 Priority - - -

The Priority determines the J1939 priority used by the Controller when sending messages. Messages with higher priority are less likely to be delayed. Adjusting this value allows the system designer to indicate which messages are most important within a given system.

Priority may be set to a value between 0 and 7 inclusive. Zero indicates the highest priority.

0x09 Digital Control Options

Parameter: 0x09
B0 B1 B2 B3 B4 B5
0x49 {OP} {Parameter} 0 Flags Byte 1 Flags Byte 2

Flags is a bitmapped value. The default value is 0x0070.

Byte If set to '1'
B4 Bits 0:3: Reserved (set to 0)
Bit 4: Enable Digital Control functions
Bit 5: Enable Digital Stop (if no Digital Control messages are received, motion is inhibited)
Bit 6: Zero throttle when flow of digital throttle commands stops.
Bit 7: Reserved - Set to 0
B5 Bit 0: Set to 1 to automatically switch between digital and analog control depending on presence or absence of digital control messages.

Examples

Read joystick setting

Command:    10EF8090 49 43 09
Response:   10EF9080 49 43 09 00 70 00 00 00  
Digital commands enabled and auto quick stop and auto throttle to 0 after commands stop.

Set digital throttle to 0 when CAN throttle commands cease. Force controller to enable Digital Throttle when throttle commands start being received.

Command:    10EF8090 49 2B 09 00 05 01
Response:   10EF9080 49 2B 09 00 00 00

0x14 Status Message Configuration

Parameter: 0x14
B0 B1 B2 B3 B4
0x49 {OP} {Parameter} 0 MSG Enable Flags

MSG Enable Flags is a bitmapped value. All messages are enabled by default.

Bit Mask If set to '1'
0x01 Message FF00 Enabled
0x02 Message FF01 Enabled
0x04 Message FF02 Enabled
0x08 Message FF03 Enabled
0x10 Message FF04 Enabled
0x20 Message FF05 Enabled
0x40 Message FF06 Enabled
0x80 Reserved

Example

Enable Messages FF00 and FF05 only

Command:    10EF8090 49 2B 14 00 21 
Response:   10EF9080 49 2B 14 00 00

0x18 Timer Configuration

Parameter: 0x18
Available since Version 3.7
B0 B1 B2 B3 B4 B5 B6
0x49 {OP} {Parameter} 0 Timer Timer Item Value

These timers are 10 millisecond software timers that control status message timing as well as CAN message timeouts. If the "Value" is set to 255 (0xFF), the timeout will be 2.55 seconds until the next power cycle then the value reverts back to the factory default value.

Timer : There are two bundles of timer items. The range is 0-1.

Timer Item : What the timer controls. The range is 0-9.

Value : Is the time in 10 milliseconds units. The range is 5-255 or .05 to 2.55 seconds.

Invalid or restricted values will result in the response to start with 0xC9.

Timer Timer Item Description Default
Value
0 0 FF00 Status Repeat Rate 10
0 1 FF01 Status Repeat Rate 100
0 2 FF02 Status Repeat Rate 50
0 3 FF03 Status Repeat Rate 100
0 4 FF04 Status Repeat Rate 10
0 5 FF05 Status Repeat Rate 25
0 6 FF06 Status Repeat Rate 25
0 7 Reserved 100
0 8 Reserved 100
0 9 Reserved 100
1 0 Joystick timer 100
1 1 Restricted N/A
1 2 Restricted N/A
1 3 Restricted N/A
1 4 Digital Throttle silence timeout 50
1 5 CAN Message Silence timeout 100
1 6 Reserved 100
1 7 Reserved 100
1 8 Reserved 100
1 9 Reserved 100

Example

Change Status Message FF03 repeat rate to 400 milliseconds

Command:    10EF8090 49 2B 18 00 00 03 28 
Response:   10EF9080 49 2B 18 00 00 03 28 00

Change Digital Throttle timeout to 250 milliseconds

Command:    10EF8090 49 2B 18 00 01 04 19 
Response:   10EF9080 49 2B 18 00 01 03 19 00

Reset Status Message FF00 to the factory default value

Command:      10EF8090 49 2B 18 00 00 00 FF 
Response:     10EF9080 49 2B 18 00 00 00 FF 00
Read Timer:   10EF8090 49 43 18 00 00 00 
Response:     10EF9080 49 2B 18 00 00 00 FF 00
Cycle the power
Read Timer:   10EF8090 49 43 18 00 00 00 
Response:     10EF9080 49 2B 18 00 00 00 0A 00