CANdo App User Guide
CANdo App User Guide
The 'CAN View' mode, 'CAN Transmit' list, 'CAN Transmit Editor', & 'CAN Setup' are all cleared to the
default configuration. The configuration file name in the title bar is cleared & the user is prompted to
check the 'CAN Setup' for the new configuration.
The 'CAN View' mode, 'CAN Transmit' list, 'CAN Transmit Editor' & 'CAN Setup' are all retrieved from
the selected configuration file.
'Save', saves the current configuration to a user specified file on the PC.
In the file dialog box that appears on pressing 'Save', type a file name for the current configuration to
be saved (the file extension is automatically added). The file name of the saved configuration appears
in the title bar. Pressing 'Save' again saves any changes to the specified file without bringing up the
file dialog box again.
Pressing 'Save As' allows a new configuration file name to be specified for the current configuration.
If changes have been made to the 'CAN Transmit' list, 'CAN Transmit Editor' or 'CAN Setup', then the
user is prompted to save the configuration before exiting.
'Copy To Tx', copies the currently selected receive message in the 'CAN View' window to the
'CAN Transmit Editor'. If no message is currently selected, then this menu item is disabled.
Transmit & error messages in the 'CAN View' window cannot be copied.
'Filter On ID', uses the currently selected message ID in the 'CAN View' window to configure the
'CAN Receive Filters', so that only messages with that ID are received & displayed. If no message is
currently selected, then this menu item is disabled.
The receive filters cannot be changed while CANdo is running. After selecting a CAN message within
the 'CAN View' window, press the 'Stop CANdo' button & then press the 'Filter On ID' button.
The 'Snapshot' feature captures the current contents of the 'CAN View' window & saves a
formatted version to the specified text file.
The format of the file is illustrated below. The ID & data are saved in either decimal or hexadecimal
format, depending on the 'Numeric Base' selected in the 'Display Options'. The 'ASCII' decode,
receive message 'Count' & 'Period' columns are included within the snapshot, if selected within the
'Display Options'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Snapshot Example - 12:43:58 16/11/2015 - Hexadecimal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Key
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RD = Receive Data
RR = Receive Request
TD = Transmit Data
TR = Transmit Request
EF = Error Frame
RE = Receive Error Count
TE = Transmit Error Count
BA = Bus Active
BP = Bus Passive
BO = Bus Off
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CAN Baud Rate = 250.00k
CAN Bit Sample Point = 70.00%
Netronics CANdo S/N 0006 H/W v6.0 S/W v3.0 Status OK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For best results, view the file using a monospaced font, such as Courier New or Lucida Console, so
that the columns are correctly aligned, as displayed above.
'Font +/-' adjusts the size of the font used in the 'CAN View' & 'CAN Transmit' windows, which is
sometimes useful with high DPI monitors.
In 'Fixed' view mode, the received & transmitted CAN messages are listed in the 'CAN View'
window in fixed positions. Any message with the same 'Type' & 'ID' as one already displayed
automatically overwrites the currently displayed message. A new message with no equivalent 'Type'
& 'ID' as one already in the list is appended to the end.
A context sensitive menu appears if the right mouse button is clicked while hovering over the 'CAN
View' list. This menu replicates the 'View' menu & allows either 'Fixed' or 'Cyclic' view mode to be
selected.
When the number of messages added to the list equals the size of the cyclic buffer, the list cycles
back to the start, with the newest message replacing the oldest one. The size of the cyclic buffer
maybe specified in the 'Display Options'.
A context sensitive menu appears if the right mouse button is clicked while hovering over the 'CAN
View' list. This menu replicates the 'View' menu & allows either 'Fixed' or 'Cyclic' view mode to be
selected.
The 'Numeric Base' option allows the ID & Data on both the 'CAN View' & the 'CAN Transmit' pages
to be displayed in either decimal or hexadecimal format. This selection also affects the format of the
log & snapshot files.
The 'CAN Transmit' option allows the location of the 'CAN Transmit' list & editor to be specified as
either on a separate page, or on the 'CAN View' page.
The 'Display ASCII Decoded Data' option adds a column to the 'CAN View' window & displays the
CAN data D1-D8 in ASCII decoded form. Only data values within the printable character range 20
(hex.) to 7E (hex.) are decoded. Data values outside of this range are replaced with the 20 (hex.)
'SPACE' character.
The 'Display Message Count' option adds a column to the 'CAN View' window & displays the number
of occurrences of a receive message with matching 'Type' & 'ID'. In 'Cyclic' view mode, the message
count is displayed only for the first 20 unique received messages, as defined by 'Type' & 'ID'.
The 'Display Message Period' option adds a column to the 'CAN View' window & displays the period
message period is displayed only for the first 20 unique received messages, as defined by 'Type' &
'ID'.
The 'CAN Error Counters' option displays the CAN receive & transmit error counters in the 'CAN
View' window, if a receive or transmit error is detected on the CAN bus.
The 'Update Interval' option specifies the periodic update rate of the 'CAN View' window. This affects
the update rate of the display only, the rate at which receive & transmit messages are processed in
the background is unaffected.
The 'Cyclic Buffer Size' option allows the size of the 'CAN View' list in cyclic view mode to be
specified. This size is the length of the list before the messages wrap back to the start & overwrite old
messages.
Before starting the log, the file name & type must be specified via the 'Log Options' dialog. The type
may be specified as either a standard text file, a comma delimited data file, or as an ASCII file.
An example of a text log file is shown below. The ID & data are saved in either decimal or
hexadecimal format, depending on the 'Numeric Base' selected in the 'Display Options'. Additional
'ASCII', 'Count' & 'Period' columns are also included, if selected within the 'Display Options'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Log Example - 12:08:48 17/11/2015 - Decimal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE ___TIME____ ___ID____ D1 D2 D3 D4 D5 D6 D7 D8
RD11 40.1857 1000 0 0 45 70 255 255 255 255
RR11 40.1859 505 ? ? ? ? ? ? ? ?
TD11 40.9996 2000 2 4 120 0 0 0 0 0
TD29 40.9996 419418112 0 0 25 40 0 0 0 0
TR11 40.9996 125 ? ? ? ? ?
RD11 41.1857 1000 0 0 45 70 255 255 255 255
RR11 41.1859 505 ? ? ? ? ? ? ? ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Key
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RD = Receive Data
RR = Receive Request
TD = Transmit Data
TR = Transmit Request
EF = Error Frame
RE = Receive Error Count
TE = Transmit Error Count
BA = Bus Active
BP = Bus Passive
BO = Bus Off
BL = Bus Load
ST = CANdo Status
! = CANdo Error {Messages may be missing from log}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CAN Baud Rate = 1.00M
CAN Bit Sample Point = 70.00%
Netronics CANdoISO S/N 0005 H/W v2.0 S/W v3.0 Status OK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For best results, view a text format log file using a monospaced font, such as Courier New or Lucida
Console, so that the columns are correctly aligned, as displayed above.
The log file size is limited by the CANdo Application to 2 million messages. Once this limit is reached,
the log is automatically stopped & the log file closed.
Before starting the log replay, a previously recorded log file must be selected within the 'Log Options'
dialog. The message types to replay may also be specified. Status & error messages that appear
within the log file are ignored during replay.
'Single Step Log Replay', starts the single step log message replay mode, which replays
messages from a previously recorded log file, one at a time, onto the CAN bus. Each press of the
'Single Step Replay Button' replays the next message, as it appears in the log file.
Before starting the log replay, a previously recorded log file must be selected within the 'Log Options'
dialog. The message types to replay may also be specified. Status & error messages that appear
within the log file are ignored during replay.
'Pause Log Replay', pauses a running log replay. The log replay may be restarted by pressing
either 'Start Log Replay' or 'Single Step Log Replay'.
'Stop Log', stops the message recording/replay mode & closes the log file.
The log must be stopped before any attempt is made to move or view the log file.
Note : The file name box must contain a valid directory path & file name, for example
'C:\CANdo\Log.txt'. Use the 'Browse...' button to select a directory & enter a file name.
The format of the log file may be specified as either plain text (Text option), comma separated
variables (CSV option), or as ASCII text (ASC option). Text & CSV files may optionally include status
& error messages, ASC files are limited to receive & transmit messages only. The ASC format is
included to provide compatibility with some 3rd party programs.
The numeric format of the ID & data within the log file follows the format specified in the 'Display
Options'.
The 'Overwrite' option, specifies the action to be taken when the log file specified already exists & a
new recording is started. The default action is to display a warning box confirming that the file is about
to be overwritten. Selecting 'Automatically Overwrite' removes this warning box. Selecting
The 'Replay Type' option, allows log files to be replayed in a continuous loop.
'Start CANdo Rx', allows the CANdo to be started just for CAN message reception, the
messages in the CAN Transmit list are ignored until the 'Start CANdo Tx' is pressed. This allows
the CANdo to become an active node on the CAN bus without generating transmit errors. This is
useful, if there are messages specified in the CAN Transmit list, but there is no other active node
present on the CAN bus.
After 30hrs run time, CANdo is automatically stopped, to prevent the display of ambiguous 'Time' &
'Period' values due to overflow of the CAN message timestamp.
The 'Esc' key is a short cut that toggles between 'Start CANdo' & 'Stop CANdo'.
The 'Esc' key is a short cut that toggles between 'Start CANdo' & 'Stop CANdo'.
The 'Device Options' box allows a particular CANdo device or type of device to be preferentially
selected on starting the program. This allows a particular device to be selected when there are
multiple CANdo devices connected to the same PC. Any selections made in the 'Device Options' box
take effect next time the program is started.
The 'Hardware Type', allows a particular type of CANdo device, eg. CANdoISO, to be selected
preferentially on startup.
The 'Serial Number', allows a specific CANdo device to be selected based on the serial number of the
device.
If the 'Prompt' option is selected, then a drop down box listing all the available CANdo devices
connected to the PC appears on startup.
© 2006-24 Netronics Ltd. January 2024 NET50003/3
v5.5
Select a device from the list & then click on 'OK' to continue.
'About CANdo', brings up a dialog box displaying the name & version number of the CANdo
Application.
The ID & data maybe displayed in either decimal (see above) or hexadecimal (see below) format. The
number format maybe selected in the 'Display Options'.
Icon Type
Receive message with 11 bit arbitrator
Receive message with 29 bit arbitrator
Remote receive message with 11 bit arbitrator
Remote receive message with 29 bit arbitrator
Transmit message with 11 bit arbitrator
Transmit message with 29 bit arbitrator
Remote transmit message with 11 bit arbitrator
Remote transmit message with 29 bit arbitrator
Less than 128 receive/transmit errors
More than 128 receive/transmit errors
More than 255 transmit errors
Error frame detected
Receive Error Counter (CANdoISO & CANdo AUTO only)
Transmit Error Counter (CANdoISO & CANdo AUTO only)
The 'Receive\Transmit Error Counters' are only displayed if enabled in the 'Display Options' & only
when an error on the CAN bus is detected. The count value indicates the number of errors detected
on the CAN bus in the range 0 - 255 (decimal) or 00 - FF (hex.).
The timestamp is displayed to a resolution of 0.1ms & is accurate to within +/- (20ms + 100ppm). The
timestamp ranges in value from 0.0000s to 108000.0000s. When the maximum value is reached,
CANdo is stopped.
The 'ID' column in the 'CAN View' window displays the 11 or 29 bit message arbitrator in either
decimal or hexadecimal format.
11 bit arbitrators (CAN 2.0A) lie in the range 0 - 2047 (decimal) or 000 - 7FF (hex.) & 29 bit arbitrators
(CAN 2.0B) in the range 0 - 536870911 (decimal) or 00000000 - 1FFFFFFF (hex.).
Remote receive/transmit messages are requests for data & so the data fields are blank. The
requested number of data bytes is indicated by the corresponding number of '?'s in the D1 to D8
columns.
The 'ASCII' column in the 'CAN View' window displays the data in the D1 to D8 data columns in ASCII
(American Standard Code for Information Interchange) decoded form . Only data values within the
printable character range 20 (hex.) to 7E (hex.) are decoded & displayed. Data values outside of this
range are replaced & displayed as the 'SPACE' 20 (hex.) character.
The 'ASCII' column is an optional column that may be selected within the 'Display Options'.
In 'Cyclic' view mode, the receive message count is displayed only for the first 20 unique received
messages, as defined by 'Type' & 'ID'.
The 'Count' column is an optional column that may be selected within the 'Display Options'.
The 'Period' column in the 'CAN View' window displays the inter-message period for received
messages of matching 'Type' & 'ID'. This is calculated by subtracting the timestamps of the last two
received messages.
In 'Cyclic' view mode, the message period is displayed only for the first 20 unique received
The 'Period' column is an optional column that may be selected within the 'Display Options'.
Transmit messages are created & modified using the 'CAN Transmit Editor'.
The ratio of the height of the 'CAN Transmit' list compared to the height of the 'CAN View' list maybe
adjusted, by dragging the splitter bar at the top of the 'CAN Transmit' list.
When CANdo is stopped, clicking on the 'Tx' column header enables/disables all messages.
The 'Bit' value in the 'CAN Transmit' list identifies the number of bits in the arbitrator of the message,
either 11 or 29.
The 'ID' is the message arbitrator, displayed in either decimal or hexadecimal format.
11 bit arbitrators (CAN 2.0A) lie in the range 0 - 2047 (decimal) or 000 - 7FF (hex.) & 29 bit arbitrators
The 'Frame' is displayed as either 'Data' for a standard frame containing data or 'Remote' for a
remote frame requesting data.
The 'DLC' or Data Length Code, is the length of the data field in the message in bytes, ranging from 0
to 8.
The 'Data' field contains from 0 to 8 bytes of data for a data frame message. For a remote frame
message, the 'Data' field bytes are padded with a '?' to indicate the number of bytes requested by the
message.
Transmit messages in the 'CAN Transmit' list with an entry in the 'OnTime' column are cyclic
messages that repeat continuously (when enabled in the 'Tx' column), at the rate specified by the
'OnTime' parameter.
Transmit messages in the 'CAN Transmit' list with an entry in the 'OnKey' column are transmitted
(when enabled in the 'Tx' column) in response to pressing the indicated function key.
Transmit messages are either triggered 'OnTime' or 'OnKey', but not both.
11 bit arbitrators (CAN 2.0A) lie in the range 0 - 2047 (decimal) or 000 - 7FF (hex.) & 29 bit arbitrators
(CAN 2.0B) in the range 0 - 536870911 (decimal) or 00000000 - 1FFFFFFF (hex.).
The 'Frame' box in the 'CAN Transmit Editor' is used to specify the transmit message as either a
'Data' frame or a 'Remote' frame.
'Remote' frames are a request for data & therefore do not contain any data fields, but the DLC value
specifies the number of bytes requested.
'Remote' frames do not contain a data field, but do contain a DLC. For 'Remote' frames the DLC
specifies the number of bytes of data requested by the message.
The 'Trigger' box in the 'CAN Transmit Editor' is used to specify the trigger method used to send the
message. The message may either be triggered on a periodic basis ('On Time') or in response to a
key press ('On Key').
While CANdo is running, the current message displayed in the 'CAN Transmit Editor' may be sent
immediately by clicking the 'Now' button.
A context sensitive menu appears if the right mouse button is clicked while hovering over the 'CAN
Transmit' list. This menu allows a message selected from the list to be sent immediately by clicking
on the 'Now' menu item.
The 'Add' button appends the message in the 'CAN Transmit Editor' to the end of the 'CAN Transmit'
list. If any of the values are out of range then a warning is given & the message is not added. A
maximum of 50 transmit messages may be added.
The 'Modify' & 'Delete' buttons modify & delete respectively the message selected in the 'CAN
Transmit' list. If no message is selected then a warning is given.
The keyboard 'Del' key may also be used to delete the selected message in the 'CAN Transmit' list.
The 'Add' & 'Delete' buttons are disabled while CANdo is running.
The 'CAN Baud Rate' specifies the bit rate on the CAN bus. All nodes connected to a CAN bus must
operate at the same baud rate to within +/- 1.7%. The CANdo\CANdoISO\CANdo AUTO baud rate
may be set to any value in the range 12.5k to 1M baud. The currently specified baud rate is
automatically calculated & displayed in the status bar.
For example -
40000000 / 2 * 4 * (1 + 5 + 8 + 6) = 250k baud
Some baud rates such as 12.5k, 20k, 50k, 100k, 125k, 250k, 500k, 800k & 1M are predefined, other
baud rates are custom programmable.
The CANdo system clock is divided down by the BRP value to produce the CAN sub-system clock. A
single bit on the CAN bus is made up of a number of these CAN clock cycles. The cycles are grouped
into the segments SYNCSEG, PROPSEG, PHSEG1 & PHSEG2, as displayed in the diagram above.
The SYNCSEG is always 1 & is shown as a white clock space in the diagram. The PROPSEG &
PHSEG1 values define the number of CAN clocks before the receive bit sample point & the PHSEG2
The sampling point of a bit on the bus is defined by the following equation -
(1 + PROPSEG + PHSEG1) * 100 / (1 + PROPSEG + PHSEG1 + PHSEG2)
For example -
(1 + 5 + 8) * 100 / (1 + 5 + 8 + 6) = 70.0%
The SJW (Synchronisation Jump Width) specifies the extent to which the PHSEG1 & 2 times may be
adjusted by CANdo in order to synchronise the bit sampling to the received signal edges on the bus.
The SAM (SAMple) value specifies the number of times each bit is sampled. This is usually set to 1,
except in noisy environments.
There are some rules that apply to setting the above values as they are to some extent
interdependent -
• Normal
• Listen Only
• Loopback
'Normal' mode, allows full transmission & reception of CAN messages & is the normal mode of
operation. In this mode, the CANdo device operates as an active CAN node on the CAN bus,
meaning that it responds to valid messages with an acknowledgment, as per the CAN bus standard.
'Listen Only' mode, only allows messages to be received by CANdo. No low level acknowledgments
are transmitted in this mode. This mode may be used to determine the baud rate of a CAN bus in a
non-intrusive way. At least two other active CAN nodes must be present on the CAN bus for correct
operation in this mode.
'Loopback' mode, is for testing purposes only & allows transmissions from CANdo to be received &
checked without any other CAN nodes present. In this mode CANdo does not transmit on the CAN
bus.
Each receive buffer contains a mask & a number of filters, two for 'Receive Buffer 1' & four for
'Receive Buffer 2'.
The mask identifies which bits within the ID are relevant for filtering. If the mask bit is set to a logic '1',
then this bit is used to match the corresponding bit in the received message ID with each of the filters
in turn. If there is a match between the relevant bits of the message & the relevant bits of at least one
of the filters, then the message is accepted by the receive buffer.
Bits within the mask that are set to a logic '0' are ignored for filtering purposes. Hence, if the mask is
all zeroes, '000' for an 11 bit mask or '00000000' for a 29 bit mask, then the receive buffer accepts all
messages.
Note : The receive filters are always specified in hexadecimal format, regardless of the 'Numeric
Base' selected in the 'Display Options'.
11100000000 - Mask
00100000000 - Filter
01000000000 - Filter
Hence, only 11 bit messages in the range 100 to 2FF (hexadecimal) are accepted.
If a CANdo device is connected (H/W v6.0 or less), then the status bar displays five panels -
Run State
Log Status
Numeric Base
Baud Rate
CANdo Status
If a CANdo (H/W v7.0 or greater), CANdoISO or CANdo AUTO device is connected, then the
status bar displays six panels -
Run State
Log Status
Numeric Base
Baud Rate
Bus Load
CANdoISO\CANdo AUTO Status
The first panel of the status bar displays the CANdo run state. While running, the elapsed time since
starting CANdo is displayed in hours, minutes & seconds.
The numeric base is the number base used to display all the information on the 'CAN View' & 'CAN
Transmit' pages, as well as the snapshot & log files.
The numeric base may be selected as either decimal or hexadecimal via the 'Display Options'.
The fourth panel of the status bar displays the configured baud rate (B/R) & bit sample point (S/P),
based on the settings on the 'CAN Setup' page.
If a CANdo (H/W v7.0 or greater), CANdoISO or CANdo AUTO device is connected, the fifth panel in
the status bar displays the CAN bus load, as a percentage.
If there is an error, either on the CAN bus or within the CANdo device, then the 'Bus Load ?.?%' text
turns red to indicate that the value displayed may not be accurate.
• Product description
• Serial number
• Hardware version
• Software version
• Status description or code
The status is displayed in descriptive text if there is no fault or a single fault present. If there is more
than one fault present, then a 2 digit hexadecimal code is displayed which represents a bit OR
combination of the fault codes shown in the table below.
Code Fault
01 USB port receive message overrun
02 USB port receive message invalid
04 USB port receive message CRC error
08 CAN receive message no data
10 CAN receive message overrun
20 CAN receive message invalid
40 CAN transmit message overrun
80 CAN bus error
Note : The fault codes are always displayed in hexadecimal format, regardless of the 'Numeric Base'
selected in the 'Display Options'.
For example, 'Status 44' indicates both 'CAN transmit message overrun' & 'USB port receive
message CRC error' faults present.