In the field of automotive electronics and CAN bus development, DBC file (Database Container) is the core file defining the CAN communication protocol. Correctly editing and optimizing the DBC file is crucial for the stability of vehicle network communication and the accuracy of data parsing. For engineers who are new to TSMaster, there is still a certain learning threshold on how to quickly master DBC editing skills and apply them to actual project development. In this article, we will systematically introduce the core operation of TSMaster DBC editor from the basic function analysis to the usage example demonstration.
Keywords:TSMaster, DBC, Database
1. Description of symbols
Some of the styles and symbols used in this article can be found in the following table descriptions.


2. Functional Overview
The DBC Editor can be used to create, modify, and save CAN DBC databases as detailed below:
- Creating a CAN DBC database
- Open the CAN DBC file to view the nodes, messages, signals, attributes, etc. in the database
- Editing the contents of the CAN database
- Export CAN database to DBC file
- Checking database content for consistency
3. DBC Editor Forms
The DBC Editor contains the following five main functional areas:
- Menu bar (1)
- Database overview area (2)
- Attribute configuration area (3)
- Node overview and message layout area (4)
- Log area (5)

3.1 Menu bar
The menu bar includes seven buttons: New, Open, Save, Save As, Consistency Check, Undo, and Redo, with each icon described below.

3.2 Database overview area
The Database Overview area includes the Database Node Search area and the Database Node area.
3.2.1 Database node search area
Enter the node name in the search box to highlight it, as shown below:

The form icons are described below:

3.2.2 Classification of database nodes
The database nodes include the following eight categories:

Area Name | Descriptive |
Networks | Displays DBC database information, with the first child node being the name of the database. |
ECUs | Displays all ECU nodes of the DBC database, and there may be Networks nodes and environment variables underneath the ECU nodes. |
Environment Variables | Displays the environment variables. Right-click the node or its children to create or delete environment variables. |
Network Nodes | Displays the network nodes with corresponding Tx Messages, Rx Messages, Mapped Tx signals and Mapped Rx signals under each node.Right-click on the node or the next level of child nodes under it to create or delete CAN nodes. |
Messages | Displays all messages with the node name Message_name [Message ID] and the child node of each message is the signal_name contained in the current message. right-click on the node or the child nodes under it to create, delete, or remove a message/signal. ▶ Delete: When right-clicking a node for a message under [Messages], selecting Delete deletes the message in the database and all signals under the message. When right-clicking the node is a signal of a message under [Messages], selecting Delete deletes the signal in the message and the signal under [Signals] is also deleted. ▶ Remove: when right-clicking the node for a message under [Messages], selecting Remove will delete the message in the database, and the signals under the message will be transferred to the [Signals] node. When the right-click node is the signal of the message under [Messages], selecting Remove will delete the signal in the message, and the signal will be transferred to the [Signals] node. ▶ New: When right clicking the node as [Messages], a new telegram will be created. When right-clicking the node as a message under [Messages], or a signal under a message, a new signal is created and the signal is bound to the message. |
Signals | Displays all signals, the node name is signal_name [Message_name] if the signal is bound to a message, otherwise it is the signal name. Signals can be created/deleted when right-clicking on the [Signals] node or the signals under that node. |
Value Tables | Displays all packets. When right-clicking the [Value Tables] node or a child node under the node, you can create/delete a value table. |
Attributes | Displays all the attributes. Characteristics can be created/deleted when right-clicking the [Attributes] node or a child node under the node. |
3.2.3 Database node drag-and-drop functionality
Some of the nodes in the database overview area support the drag-and-drop function. The nodes that support the drag-and-drop function are as follows.
▲ Signal Drag and Drop to Message As shown in the following figure, when you drag and drop the signal New_Signal_0 to New_Message_0, it will add the signal New_Signal_0 under New_Message_0.

If the signal is already bound to a message, dragging and dropping the signal to a new message in this case copies a signal with the same name.

▲ The message is dragged and dropped to the node as shown in the figure below. when you drag and drop the signal New_Message_0 to New_Network_0 or [Tx Messages] under it.

▲ Signal Drag and drop the signal to the node, as shown in the following figure, when you drag and drop the signal New_Signal_0 under the signal New_Messages_0 to New_Network_0 or [Mapped Rx Signals] under it, it will add the signal New_Signal_0 under the [Mapped Rx Signals], and the signal New_ Messages_0 is added under [Rx Messages].

▲Environment variables are dragged and dropped to ECUs as shown in the figure below. When the environment variable New_Envar_0 is dragged and dropped to New_Network_0 under ECUs or [Environment Variables] under it, it will be added to [Environment Variables].

3.3 Attribute Configuration Area
The attribute configuration area consists of two parts: the database file information display area and the attribute configuration area.
3.3.1 Database file information display area
When a DBC database is not imported, this area prompts for information about importing or creating a DBC database. When a DBC database is created or imported, this area displays the path to the DBC file. When modifications are made to the DBC database, an additional "*" is added to the DBC file path. The "*" disappears when the modifications are completely withdrawn, or when the file is saved as.

3.3.2 Database properties
You can configure the name of the database, select the database type, and configure the values of the properties.
causality | Descriptive |
Database type | CAN/CAN FD can be selected. |
marginal notes | Explanatory text for the database. |

3.3.3 Node Properties
You can configure the name of the node, its address, and the values of the configuration attributes.
causality | Descriptive |
address | Currently displayed only, the address needs to be modified in the NmStationAddress property. |
marginal notes | Explanatory text for the node. |

3.3.4 Message properties
Configure the attributes of the message, the specific attribute fields and their descriptions are as follows.
causality | Descriptive |
name (of a thing) | The name of the message; renamed message names are not allowed. |
ID | Message ID, in hexadecimal, duplicate IDs are not allowed. |
DLC | The number of bytes in the message, the number of bytes for the J1939 protocol is entered manually and the others are selected. |
cyclicality | The message sending cycle, which is changed by the GenMsgCycleTime property, cannot be modified if this property is not defined. |
typology | The CAN protocols are available as CAN Standard and CAN Extended. The CAN FD protocol is available as CAN FD Standard and CAN FD Extended. The J1939 protocol is available in CAN Standard, CAN Extended and J1939. |
marginal notes | Message annotations. |
sender node | Selects the node that sends the message. |
property table | The value of the configuration property. |
Additional Information | When the protocol is J1939, the information of PGN, Priority, Source, Destination is displayed. |


3.3.5 Signal Properties
Configure the attributes of the signal, the specific attribute fields and their descriptions are listed below.
Properties/Buttons | Descriptive |
name (of a thing) | Signal name, [Signals] / Signals with the same name are not allowed under the same message. |
Unit | Signal unit, as a string. |
magnifying factor | Signal scaling factor, used to calculate physical values. Physical Value = Amplification Factor * Original Signal Value + Offset |
offset | Signal offset for calculating physical values. |
lengths | Signal length, not greater than the number of bytes in the message * 8. |
starting position | The start bit of the signal in the message, not greater than the number of bytes in the message * 8. |
numeric type (math.) | Unsigned, signed, floating-point, double-precision floating-point can be selected. |
marginal notes | Signal Annotation Description. |
Minimum Value | Signal Min. |
Maximum Value | Signal Max. |
Calculate Maximum and Minimum Buttons | Calculates the maximum and minimum values of the signal. Maximum = amplification factor * (2^length-1) - offset Minimum = Offset |
numeric table | Select the table of values used to encode the signal. |
byte sequence | Intel or Motorola, the start bit and length are automatically calculated and changed when switching. |
Multiplexing type | Selects the multiplexing type of the signal. ▶ Signal: Non-multiplexed ▶ Multiplexer: The signal acts as a multiplexer switch at this time ▶ Multiplexed signals: The value or range corresponding to the multiplexer switch of the signal is displayed in this case. |
multiplexed value | The value or range corresponding to the multiplexer switch of the signal. |
property table | Attribute display and editing. |
receiver node | Edit the ECU node that receives this signal, and when it is selected, a tree node for the current signal will be added under [Mapped Rx signals] for the corresponding ECU node. If the message of this signal has not been added before, the corresponding message node will also be added under [Rx Messages]. |


3.3.6 Numeric Table Properties
Numeric tables are used to encode signals or environment variables. The properties of the value table and their descriptions are listed below.
causality | Descriptive |
---|---|
name (of a thing) | Numeric table names that are unique. Two numeric table names with the same name are not allowed in the same DBC database. |
marginal notes | Remarks The signal and its corresponding message name using the current value table cannot be modified. |
numeric code table | Signal coding, right-click to add and delete coded items, click the corresponding cell to modify the content. |

3.3.7 Characteristic properties
Features are used to bind additional properties to signals, messages, nodes, databases, and environment variables, etc. The editable property fields and descriptions are listed below.
causality | Descriptive |
---|---|
name (of a thing) | Feature name. Renamed feature names are not allowed. |
Target type | - Database: for database, selecting this item will bind the property to a database. - Node: for ECU nodes, selecting this item will bind this property to the node. - Message: Used for messages. Selecting this item will bind the attribute to the message. - Signal: Used for signals, selecting this item binds the property to a signal. - Environment Variables: used for environment variables, selecting this item will bind the property to environment variables. - ECU-Environmental Variables: environment variables for the ECU nodes that are bound. - Node-Send Message: the message used to bind the sending node. - Node-Receive Signal: used to bind the signal of the receiving node. |
numeric type (math.) | Selecting Integer, Floating Point, or Hex activates the Minimum and Maximum edit boxes, and selecting Enumeration activates the Enumeration Table edit box. |
Minimum Value | The minimum value of the attribute. |
Maximum Value | The maximum value of the attribute. |
default value | The default value of the attribute, select box when enumeration is selected, input box otherwise. |
enumeration table | Used to display and edit enumeration items. |



3.3.8 Environment variable properties
Configure the properties of the environment variable with the following configurable property fields and descriptions.
causality | Descriptive |
---|---|
name (of a thing) | environment variable names, no renamed environment variable names are allowed. |
numeric type (math.) | Optional integer, floating-point, and string data types. |
Type of access | Read and write permissions for environment variables: ▪ Unlimited ▪ Read-only ▪ Write only reading and writing |
Unit | Environment variable units. |
numeric table | and signal sharing. |
marginal notes | Description of environment variables. |
Minimum Value | Environment variable min. |
Maximum Value | Maximum value of the environment variable. |
starting value | The initial value of the environment variable. |
property table | Attribute display and editing. |

3.4 Node overview and message layout area
3.4.1 Node Overview
Clicking on a different node displays the preview content under the current node in the overview area.

3.4.2 Message layout
The Message Layout area can show the positional arrangement and length of signals in the message. The layout can only be selected when the selected node is a message, at which time the Layout button is in the active state, otherwise it is in the inactive state.

▲ Multiplexer: Select the multiplexer name for the message, is unused/no multiplexer.
▲ Multiplexed Value: Select the multiplexed value under Multiplexer, is unused/no multiplexed value.
By selecting different multiplexers and multiplexing values, the corresponding signal arrangement is displayed in the layout.
3.5 Log area
Displays information about the status of the current operation and the completeness of the database information, including the following 3 types.
▲ General Information: Information used to indicate the current operation status.
▲ Warning message: a message indicating that the current operation or database has an exception but constitutes a serious error.
▲ Error Message: A message indicating that there is a serious error in the current operation or database.

For consistency-checked log messages, when you tap the corresponding row, you will jump to the database node corresponding to that row of information.
4. usage example
4.1 Creating a DBC database
The examples in this section demonstrate the creation of a CAN database, including the creation of CAN nodes, messages, signals, and environment variables, binding signals to messages, adding transmit nodes to messages, adding access nodes to environment variables, and more.
Step 1:To create a CAN DBC database, click the [New] button on the menu bar.
Step 2:Select the database template. In the DBC template selection box that pops up, select the type of DBC data to be created to support CAN, CANFD, J1939, and then click [Confirm].

Step 3:Select/enter the DBC file path. A new DBC file will not be created until the DBC database is saved, or the original DBC file is overwritten.
Step 4:Right-click [Network Nodes] to create the node New_Network_0.

Step 5:Right-click [Messages] to create the message New_Message_0.

Step 6:Right-click [Signals] to create New_Signal_0.

Step 7:Right-click [Environment Variables] and create New_Envar_0

Step 8:In the tree structure on the left, drag and drop New_Signal_0 to New_Message_0, and then drag and drop New_Message_0 to New_Network_0. Add an access node for the environment variable New_Envar_0 by dragging and dropping New_Envar_0 to either the New_Network_0 node under ECUs or to New_Network_0's [ Environment Variables] node to add an access node for the environment variable New_Envar_0.

Step 9:Click the [Save] button.
4.2 Editing the DBC database
The examples in this section demonstrate importing and editing a CAN database and how to create tables of values and characteristics.
Step 1:Import DBC file. Click the [Open] button on the menu bar to import the DBC file saved in chapter 4.1.
Step 2:Modify CAN nodes, messages, signals, and environment variable names.
▲ Modify the CAN node name. Click New_Network_0 under [ECUs]/[Network Nodes], find the [Name] edit box in the attribute editing area on the right side, enter ecu0 and press the Enter key. For other attribute fields in this interface, you can modify them in a similar way.

▲ Modify the CAN message name. Click the message node under [Messages], find the [Name] input box in the attribute editing area, input msg0 and enter. For other attribute fields in this interface, you can modify them in a similar way.

▲ Modify the CAN signal name. Click the signal node under [Signals] / signal node in the message under [Messages], find the [Name] input box in the attribute editing area, input sig0 and enter. For other attribute fields in this interface, you can modify them in a similar way.

▲ Modify the name of the environment variable. Click on the Environment Variables node under [Environment Variables], find the [Name] input box in the property edit area, type env0 and enter. You can also modify the other attribute fields in this interface in a similar way.

Step 3:Create a value table. Right-click [Value Table] and click [New], then click New in the Value-Description table in the property editing interface to create 2 pairs of Value-Description fields.

Step 4:Add a value table for the signal/environment variable. Click on the Signal or Environment Variables node, find the [Table of Values] drop-down box in the Properties edit area, and select New_Vt_0.

Step 5:Create message characteristics. Right-click [Attributes] and click [New] to create the attribute. In the attribute edit area, change the name to msgAttr0, the target type to message, and other fields to default.

At this time, click on the msg0 node under [Messages], you can view the value of msgAttr0 in the attribute editing area, and you can also edit msgAttr0 in this area.

Other targets such as signals, environment variables, and signals, messages, and environment variables of bound nodes can be bound by selecting the [Target Type] drop-down box. Characteristics also support different value types, which are selected via the [Value Type] drop-down box.
Step 6:When editing is complete, save this DBC database to a DBC file.
Which feature of TSMaster are you most interested in? Or what problems have you encountered in practical applications?
Welcome to share your experience or questions in the comment section, any ideas or suggestions can also be comment section message interaction, will have the opportunity to win the TOSUN mystery gift bag Oh ~!
Tip:
1. Software download:
Click on the software download link below to download and install directly, beta version is recommended:
2. Software upgrades:
You can check for upgrades to the latest version within the software, provided that your computer has an Internet connection.
Note: TOSUN Technical Support Email:support@tosunai.cnWe welcome inquiries! (Company and contact information must be indicated)