Recent Posts
SAE J1939 Development And Prototyping With The Raspberry Pi
Posted by
onThe Raspberry Pi is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and in developing countries. The original model became far more popular than anticipated, selling outside of its target market for uses such as robotics. Peripherals, such as a CAN Bus interface, are not included with the Raspberry Pi. Some accessories however have been included in several official and unofficial bundles.
SAE J1939 and its companion documents have quickly become the accepted industry standard and the vehicle network of choice for off-highway machines in applications such as construction, material handling, mass transportation, forestry machines, agricultural machinery, maritime and military applications. J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy-duty vehicles.
The Raspberry Pi is a great choice when it comes to rapid prototyping, due to its powerful processor combined with a popular operating system. However, in order to develop J1939 applications with the Raspberry Pi, you will need a CAN Bus interface (as I mentioned before, SAE J1939 uses CAN - Controller Area Network - as its physical layer).
While there are RPi CAN Bus interfaces available in the marketplace, they are designed for basic CAN (e.g. for OBD-2 applications), and implementing J1939 means implementing additional software. Source code for SAE J1939 protocols are available in the market as well, but they are expensive (think several thousands of dollars). Object code or libraries simply do not exist, the reason being that they can be easily copied and re-distributed.
Another caveat is that any code would require extensive tweaking to meet the strict timing requirements of the SAE J1939 Standard, and that timing may suffer when, for instance, the occurrence of a J1939 PGN requires videoing an event (think of a "Door Opened" event in a bus or train).
SAE J1939 Turbo Interface for Raspberry Pi
We at Copperhill Technologies have developed a concept that addresses all those considerations and still provides the ease of programming an SAE J1939 application. Our jCOM.J1939.RPi, an SAE J1939 interface for the Raspberry Pi, incorporates an ARM Cortex-M3 processor with CAN transceiver for use on the Raspberry Pi while allowing the operation with any other RPi-compatible board.
By combining the J1939 port interface, the Raspberry Pi, an SAE J1939 cable, and open-source software libraries, you are ready to go with a powerful turn-key RPi-based J1939 bus solution.
In order to more efficiently serve automotive applications, the jCOM.J1939.RPi board supports an optional extended input power range of 7 to 36 VDC to power the entire system, i.e. including the RPi itself.
General features:
- CAN port with three-pin terminal connector
- Extended input power range of 7 VDC to 36 VDC (optional)
- 2 LEDS (Power, CAN Activity)
- Termination resistor switchable per jumper
- Full on-chip SAE J1939 Protocol Stack according to SAE J1939/21 and SAE J1939/81
- Automatic CAN baud rate detection according to SAE J1939/16
- Well documented library and sample code
Supported SAE J1939 features include:
- Hardware is fully SAE J1939/1x compliant
- Switchable termination resistor
- SAE J1939/21 - Data Link Layer
- SAE J1939/81 - Network Management
- Setup of Preferred Node Address
- Adjustable Node Address Negotiation Range
- Message Filters
- Full Network Communication incl. Transport Protocol
- Design Tx Messages Incl. Transmission Rate
- Configuration of Request Responses
- Configuration of Request Messages
- Network Scanner (Creates a list of all nodes in the network)
Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux
Exploring Raspberry Pi is an innovators guide to bringing your Raspberry Pi to life. The book favors engineering principles over a 'recipe' approach to give you the skills you need to design and build your own projects. You will understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external peripherals, using a "learning by doing" approach that caters to both beginners and experts.
The book begins with basic Linux and programming skills, and helps you stock your inventory with common parts and supplies. Next, you will learn how to make parts work together to achieve the goals of your project, no matter what type of components you use.
The companion website provides a full repository that structures all of the code and scripts, along with links to video tutorials and supplementary content that takes you deeper into your project.
The Raspberry Pi's most famous feature is its adaptability. It can be used for thousands of electronic applications, and using the Linux OS expands the functionality even more. This book helps you get the most from your Raspberry Pi, but it also gives you the fundamental engineering skills you need to incorporate any electronics into any project.
- Develop the Linux and programming skills you need to build basic applications
- Build your inventory of parts so you can always "make it work"
- Understand interfacing, controlling, and communicating with almost any component
- Explore advanced applications with video, audio, real-world interactions, and more
- More Information...