Convert J1939 data in wide range of software/API tools
The extensive DBC contains 1800+ PGNs and 12000+ SPNs
Use our CAN ID converter to check if your PGNs are covered
Benefit from free corrections based on large user base
Avoid manually constructing the DBC file from scratch
Includes Digital Annex Excel + license (price: 250$)
What is a DBC file?
A DBC file is a standardized method for storing the "rules" on how to interpret raw CAN bus data. In particular, it contains details on what 'signals' (e.g. RPM, Vehicle Speed, …) are contained within which 'messages' (i.e. CAN IDs).
In the J1939 standard, messages are referred to as Parameter Group Numbers (PGN) and signals as Suspect Parameter Numbers (SPN).
Further, a DBC file includes names, descriptions, positions and lengths of the signals - as well as how to offset & scale them.
This DBC file download includes:
- An SAE J1939 DBC file with ~1800+ PGNs and 12000+ SPNs
- The J1939 Digital Annex Excel file (with additional PGNs/SPNs and description details)
- One legal license (1 user, 1 PC) matching the DA license (stand-alone price: 250$)
CSS Electronics acts as a re-seller for the Society of Automotive Engineers (SAE) for the J1939 database file. Terms include the SAE terms related to purchase.
When is the database useful?
The J1939 protocol is used across most heavy-duty vehicles, including commercial trucks, tractors, transit buses etc. Because the protocol is standardized, you can use the J1939 DBC file to decode data across the majority of heavy-duty vehicle brands/models.
For basics on J1939 data logging, see our J1939 telematics intro.
In our experience, the DBC typically lets you decode 60-80% of the J1939 signals (SPN) from a J1939-based heavy duty vehicle, with the rest being proprietary OEM-specific data. In most cases, this lets you extract the most critical signals, e.g. information related to speed, rpm, fuel data, temperatures, pressure data, GPS (if the vehicle supports it) etc. With that said it depends a lot vehicle-by-vehicle, so we always recommend to perform tests for the specific heavy-duty vehicles you need to record J1939 data from.
If you're using our CAN loggers, we can offer to decode a sample log file with the DBC before you decide whether to purchase the J1939 DBC file (this sample conversion is 100% free). This way you can see exactly what data parameters you can extract from a specific vehicle (or multiple vehicles) before deciding. Simply contact us with your data samples.
If you do not have one of our CAN bus data loggers, you can perform an evaluation by parsing the unique CAN IDs from your application (e.g. logged with another logger) into our CAN ID to PGN converter to check which of your CAN IDs are matched by the DBC file.
What PGNs are in the DBC?
If you have a list of CAN IDs from a J1939-based vehicle, you can paste them in our 'CAN ID to J1939 PGN converter':
- Convert raw CAN IDs to PGNs
- Convert PGNs to raw CAN IDs
- Check if the PGNs are in the DBC
See also our FAQ for details on PGN vs. SPN coverage.
Try sample data & DBC
Below you'll find a J1939 data log from a truck recorded with the CANedge2. The sample also contains a demo J1939 DBC with EngineSpeed + WheelBasedVehicleSpeed.
You can load the raw data & DBC in the free asammdf GUI, decode it to human-readable form and plot it.data & DBC sample Download asammdf
Check out the tech specs and FAQ above - or buy now!
Do you have any questions?Contact us
|Standard(s)||J1939 Digital Annex (2023-01) - corresponds mainly to J1939-71|
|Multipacket||Multipacket syntax is used for the multipacket PGNs included in the DBC|
|Multiplex||Some multiplexed messages are included, but with "regular" syntax (not multiplex)|
|Descriptions||Partial SPN descriptions included in DBC (full included in Digital Annex)|
|Attributes||SPN ID, VFrameFormat|
|Value tables||Only partially included|
|Network nodes||Not included|
The SAE j1939 standard is used across most heavy duty vehicles (trucks, buses, tractors, excavators, …) regardless of manufacturer and brand. This means that a large set of standard data parameters will typically be available on any given heavy duty vehicle - and can be converted using the DBC file. With that said, each brand typically also includes a set of proprietary PGNs (which are not covered by the DBC).
If you need to log data from a heavy-duty vehicle, then this DBC file is relevant for you. Most CAN bus software/API tools support decoding of raw CAN bus data from trucks, buses etc if you provide a J1939 DBC file for the tool.
Of course, you can create your own DBC file, though based on our experience this will be many times more expensive in terms of staff hours vs. purchasing this DBC file as your basis. Instead, we recommend that you spend the time to expand and edit this DBC file to implement e.g. specific proprietary PGNs and SPNs relevant to your application.
We've taken the full J1939 PGN list and corresponding SPN list from the SAE J1939 Digital Annex Excel file and added them to the DBC file format. This involves extensive data cleaning and ensuring that the restructuring of the details is done correctly as per the proprietary DBC specification. The resulting DBC file has then been tested versus previous versions and via various CAN bus software tools.
In the most recent version, the DBC file includes 1800+ PGNs and 12000+ SPNs. You can see a full list of the included/excluded PGNs in our "CAN ID to PGN" tool:
The free, open source asammdf GUI/API supports the loading of J1939 DBC files natively. This means that it's easy to decode raw J1939 data from the CANedge series - as well as e.g. exporting/plotting the decoded data.
Examples also include our free CANvas & Wireshark plugin software (excl. Multipacket messages) and the software tools of e.g. Kvaser, Vector, PEAK.
We've excluded some special case PGNs and SPNs, primarily those that require detailed lookups in sub standards incl. J1939-12, J1939-21, J1939-31, J1939-73, J1939-76, J1939-81, ISO 11783 and NMEA 2000. In future launches we may add support for these depending on demand.
Note also that 'value tables' that include descriptions of various states (e.g. trouble codes) have not been included directly in the *.DBC file for now to keep it simple. Similarly, a number of attributes (e.g. SPN signal types) have been excluded for now. However, you can look up this information quickly in the Digital Annex Excel file included in the bundle. Depending on demand for these added data, we may include them in future updates - let us know your thoughts.
Most likely not. As mentioned above, some PGNs are excluded for now. But more importantly, most manufacturers utilize proprietary PGNs for some of their data. In practice this means that you'll typically be able to convert a large set of standard parameters across most heavy duty vehicles - but not necessarily all the data. The coverage is application specific. However, if you are able to record/identify the raw CAN IDs from your application, you can use our above converter to identify which PGNs are supported in the latest DBC.
Not necessarily. A PGN may include e.g. 4 SPNs in the SAE J1939 standard - and hence in our DBC file - yet, in your specific application it could be that e.g. only 1 of these SPNs is used.
When converting the data from such a case using the DBC file, some tools may still return converted data for all 4 SPNs. However, upon inspection you'll find that the data of invalid SPNs is typically outside the valid min/max range and constant.
Multiplexed messages utilize a multiplexer signal to switch the interpretation of subsequent data bytes. In the DBC file, multiplex messages can be integrated using a slightly different notation than regular PGN / SPN combinations.
For now, we've decided to simplify the inclusion of multiplexed messages. This means that we've used the "standard format" for these, without the multiplexer notation. There are pros and cons to this: The DBC file is simplified and can be used in a wider array of CAN bus software tools as some do not support the multiplexed notation. The con is that you'll have to "manually" identify and handle the multiplexed messages. I.e. using our J1939 DBC file, two entries of a multiplexed message may come out with a consistent signal name. You'll then have to look at the value of the multiplexor and ex post adjust your interpretation/mapping of the signal names.
We may update this in the near future, depending on feedback.
Yes, but be aware that the format is proprietary with no open spec. Further, even small errors in spaces etc. will lead to the file not rendering properly. Various DBC editor tools allow editing, e.g. our online DBC editor or Vector's CANDB++ editor. Be aware, however, that simply saving the DBC file via one of these tools may change the format and structure.
We do not recommend editing the DBC file unless you're an advanced user. While we can offer some basic support on your DBC file, we can't help with detailed editing of the file.
We'll inform you if there is an update to a DBC file revision that you've purchased within the same J1939 Digital Annex license. For example, if you've bought a DBC file corresponding to the SAE J1939 Digital Annex 2019 July release, you'll be able to get updates for this version.
However, the legal license for the underlying SAE J1939 details is linked to each publication. As such, you would need to make a separate purchase if you want to get updated to a more recent publication of the SAE J1939 Digital Annex (J1939DA).
The J1939 protocol provides 19 diagnostic messages (DM) that can be used to read and clear diagnostic information in the network ECUs. The diagnostic messages are described in the SAE J1939-73 Application Layer - Diagnostics standard, which also includes a J1939 fault code list.
No, the J1939 diagnostic trouble code information is not contained in the J1939 DA (Digital Annex) and hence not in the J1939 DBC. The J1939 DBC also does not contain a J1939 SPN FMI code list (Failure Mode Indicator), though you can find such online.
If you need to decode J1939 diagnostic messages like DM1, DM2 etc you can purchase the J1939-73 standard from SAE and manually add the relevant decoding information to our J1939 DBC file. We may also later add the J1939-73 standard as a separate J1939 DBC file - you can join our newsletter to be notified.
We are very open to requests for additions - if you're looking for specific aspects of the J1939 standard to be added, let us know and we'll get back to you asap. For any further questions, please contact us - we always aim to get back in < 24 hours.
The construction of the DBC is done based on public information regarding the DBC structure and syntax. Further, it is based on the J1939 Digital Annex, which requires a large number of re-mappings of variables, units etc in order to construct the DBC. As such, errors can potentially exist in the J1939 DBC (similarly to how they might in the underlying J1939 Digital Annex). With that said, the DBC is used by hundreds of end users on a regular basis - and any reported issues are immediately resolved from our end and a patched DBC will be sent out. We believe this is the best approach to ensure any edge cases are discovered quickly. Should you identify any issues, please contact us.