- Home
- CAN, SAE J1939, NMEA 2000 Projects with the Arduino Due - Source Code Included
CAN, SAE J1939, NMEA 2000 Projects with the Arduino Due - Source Code Included
Leverage the power of an ARM Cortex M3 32-bit processing capability in combination with a dual CAN Bus interface to create your next CAN Bus or SAE J1939 application or prototype. By combining our dual CAN port interface, the Arduino DUE microcontroller, an OBD2 or SAE J1939 cable, and open-source software libraries you are ready to go with powerful a turn-key Arduino-based dual CAN bus solution.
Use the vast resources of Arduino software (sketches) and hardware components (shields) to create your CAN Bus, OBD2, or SAE J1939 application.
Arduino Due Resources:
- Getting started with the Arduino Due...
- Arduino Due Projects And Sample Code...
- Download the Arduino Software (IDE)...
- Atmel 11057 32-bit Cortex-M3 Microcontroller SAM3X/SAM3A Datasheet (PDF...)
- A Brief Introduction to Controller Area Network...
- Arduino Due Firmware Flaw: Problem With Using The USB Programming Port At 230400 Baud And Beyond...
- ARM Cortex Processors – UART Programming Problem At Baud Rates Higher Than 115200...
- Arduino Due - Programming And Debugging Using JTAG ICE And Atmel Studio...
SAE J1939 250k/500k Baudrate Converter with Arduino Due - Source Code Included
There are scenarios where automatic baud rate detection does not apply, e.g., attempts to connect a 250k supporting device into an existing 500k network or vice versa, assuming that the device does not support baud rate detection. For such cases, one will require a baud rate converter. This post describes the implementation of such a converter using our Arduino-Based ECU Development Board with Dual CAN Interface. Read More...
CAN Bus Bridge (CAN-to-CAN) Application With Arduino Due
Basically, there are two scenarios where a CAN Bridge application is of use: 1. Connecting two separate CAN Bus networks, and 2. Network length extension. While the first scenario is more or less self-explanatory, let's look a little closer into the network length extension: The physical CAN network length depends primarily on the CAN baud rate, i.e. the higher the transmission speed the shorter the usable network length.
Our application using the Arduino Due utilizes this by using a simple CAN message ID mapping table. This method also allows to assign new message IDs when it comes to preventing message ID collisions between two networks. Read More...
Arduino Due: Dual CAN Port Test Sketch With LED CAN Traffic Indicators
The post explains that the two CAN ports on the Arduino Due are practically useless without their respective CAN transceivers. CAN transceivers convert a regular TTL signal from the CAN controller into a differential voltage, which in turn contributes to the vast reliability of a Controller Area Network.
In the following, I used our Dual CAN Bus Interface for Arduino Due (as seen in above image) out of mere convenience, because the board fits directly onto the Arduino Due and does not require as much external wiring than with the breakout boards. Read More...
SAE J1939 Protocol Stack Sketch for Arduino Due
The availability of Controller Area Network (CAN) interfaces in combination with other interface technologies explains the vast popularity of the ARM Cortex-M3 processor in the CAN and SAE J1939 industry. The processor provides the means to easily and quickly create applications like CAN/J1939 gateways, CAN Bridges, J1939 ECUs, J1939 Data Logger, and many more.
Arduino sketches (software projects) include a J1939 network scanner, and a simple SAE J1939 to USB Gateway application with associated Windows GUI (Visual Studio C# project). The collection of sketches is concluded by the ARD1939 project, a fully functional SAE J1939 protocol stack for the Arduino Uno, Mega 2560, and Due. Read More...
CAN Bus Data Traffic Simulation With Arduino Due
When working on a CAN bus or SAE J1939 project, it can be extremely helpful when the expected CAN Bus data traffic can be simulated rather than connecting your system to a running vehicle or automation control. The following project does exactly that with little effort for designing CAN data frames and their frequency.
As a hardware I have been using our Arduino-Based ECU Development Board With Dual Bus Interface. The board is not an Arduino shield in the common sense. It incorporates dual CAN transceivers required by the two integrated CAN ports on the Arduino Due while allowing the operation with any Arduino-compatible shield that supports the necessary 3.3 VDC power requirements. Read More...
SAE J1939 GPS Application With Arduino Due Delivers PGN 65267 (Vehicle Position)
I am repeating myself over and over, but the Arduino Due is my preferred choice when it comes to quick prototyping of SAE J1939 and CAN Bus applications. It is the ease of programming and the great performance that makes it all possible. In fact, I created this application in only a few hours, mostly by copying and pasting existing code.
In order to read GPS information, I added our UART GPS Module and connected it to the Arduino Due's RX1, TX1 (Serial1) port. The GPS sensor provides data according to NMEA 0183 (as does any standard GPS sensor), and decoding the data is fairly easy to accomplish with the appropriate information, the so-called NMEA output sentences, at hand. Read More...
More projects will be added over time...
Arduino-Based ECU Development Board With Dual CAN Bus Interface
Leverage the power of an ARM Cortex M3 32-bit processing capability in combination with a dual CAN Bus interface to create your next CAN Bus or SAE J1939 application or prototype. By combining our dual CAN port interface, the Arduino DUE microcontroller, an OBD2 or SAE J1939 cable, and open-source software libraries you are ready to go with powerful a turn-key Arduino-based dual CAN bus solution.
Use the vast resources of Arduino software (sketches) and hardware components (shields) to create your CAN Bus, OBD2, or SAE J1939 application. More Information...