Site Information

 Loading... Please wait...

Blog

CAN Bus (Controller Area Network) Projects with ARM Cortex M3 and Arduino Uno

Posted by Technical Literature on

Controller Area Network Projects with ARM and Arduino by Dogan Ibrahim

This book details the use of the ARM Cortex-M family of processors and the Arduino Uno in practical CAN bus based projects. Inside, it gives a detailed introduction to the architecture of the Cortex-M family whilst providing examples of popular hardware and software development kits. Using these kits helps to simplify the embedded design cycle considerably and makes it easier to develop, debug, and test a CAN bus based project. The architecture of the highly popular ARM Cortex-M processor STM32F407VGT6 is described at a high level by considering its various modules. In addition, the use of the mikroC Pro for ARM and Arduino UNO CAN bus library of functions are described in detail. 

This book is written for students, for practicing engineers, for hobbyists, and for everyone else who may need to learn more about the CAN bus and its applications. The book assumes that the reader has some knowledge of basic electronics. Knowledge of the C programming language will be useful in later chapters of the book, and familiarity with at least one microcontroller will be an advantage, especially if the reader intends to develop microcontroller based projects using CAN bus.

The book should be useful source of reference to anyone interested in finding an answer to one or more of the following questions:

  • What bus systems are available for the automotive industry?
  • What are the principles of the CAN bus?
  • What types of frames (or data packets) are available in a CAN bus system?
  • How can errors be detected in a CAN bus system and how reliable is a CAN bus system?
  • What types of CAN bus controllers are there?
  • What are the advantages of the ARM Cortex-M microcontrollers?
  • How can one create a CAN bus project using an ARM microcontroller?
  • How can one create a CAN bus project using an Arduino microcontroller?
  • How can one monitor data on the CAN bus?

More Information...


Arduino-Based ECU Development Board With Dual CAN Bus Interface

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...

The Car Hacker's Handbook For Deeper Understanding Of Embedded Systems In Modern Vehicles

Modern cars are more computerized than ever. Think infotainment and navigation systems, Wi-Fi, automatic software updates, and other innovations that aim to make driving more safe and convenient. However, vehicle technologies haven not kept pace with today's more hostile security environment, which might leave millions of cars vulnerable to attack. The Car Hacker's Handbook will give [...]

Read More »


Position Control With Embedded J1939-Compliant Linear Actuator Is Superior To Hydraulic Actuator

Manufacturers of agricultural, construction, and other off-highway equipment are increasingly deploying electromechanical actuators instead of hydraulic actuators, the primary reason being their simplicity and environmental benefits. Now, intelligent electromechanical actuators that support the Controller Area Network (CAN) bus networking standard give designers more reasons to choose such a solution. Support for the CAN/J1939 networking protocol [...]

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.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 [...]

Read More »


SAE J1939 Turbo Interface Board for Raspberry Pi

A note upfront: The CAN interface board for the Raspberry Pi as described in the following, specifically the firmware code, is under current development. The hardware is ready for production, and the release is targeted for end of February 2017.This post is a follow-up on a previous post Raspberry Pi With CAN Bus Or SAE J1939 [...]

Read More »


Raspberry Pi With CAN Bus Or SAE J1939 Turbo Interface Board

A note upfront: The CAN interface board for the Raspberry Pi as described in the following, specifically the firmware code, is under current development. The hardware is currently in production, and the release is targeted for the end of February 2017. If you have a special interest in running the SAE J1939 protocol on the Raspberry [...]

Read More »


CAN Bus Interface For the Raspberry Pi 2/3 Comes With Various Options

The PiCAN2 board series by Copperhill Technologies provides CAN Bus capabilities for the Raspberry Pi 2 or 3. The boards (with the exception of the dual isolated interface) use the Microchip MCP2515 CAN controller in combination with the MCP2551 CAN transceiver. There is an easy to install SocketCAN driver, and programming can be accomplished in C [...]

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 [...]

Read More »


SAE J1939 to USB Gateway Allows Easy Communication And Analysis Of Truck, Bus Network

The SAE J1939 ECU Simulator Board With USB Port by Copperhill Technologies provides a powerful, yet easy-to-manage connection to a J1939 network, allowing the reception, monitoring & analysis, and transmission of PGNs (Parameter Group Numbers) as defined by the SAE J1939-71 Standard. The gateway supports the full SAE J1939 Standard, including Network Management (Address Claim, SAE J1939/81) and [...]

Read More »


How To Use The Native USB Of The Arduino Due For High-Speed Communication

It seems to be an obvious statement, but there are many applications for the Arduino Due that require high-speed communication in a range that goes beyond regular UART baud rates, i.e. several Mbits/sec. Naturally, USB comes to mind, but surprisingly there are some obstacles when it comes to accessing the Arduino Due's USB ports. The [...]

Read More »