Thomson Electrak Linear Actuator with SAE J1939 Interface for Railway and Industrial Applications
For many years I maintained the view that the SAE J1939 protocol, specifically its advanced network management capabilities, provides many great features to support any industrial application. SAE J1939 is an ingeniously designed protocol with very little protocol overhead, requiring only a minimal memory footprint that benefits the use of small embedded systems.
I am now in a situation where I can prove my point by working on two industrial applications that involve the SAE J1939 protocol. The first project involves controlling two Thomson Electrak linear actuators utilizing a small embedded system. That system consists of our Arduino-Based ECU Development Board with Dual CAN Bus Interface plus the Arduino 4 Relays Shield. The task includes:
- Reading digital inputs (Forward, Reverse, Actuator Start, Error Reset)
- Reading a potentiometer analog input
- Reporting error condition per digital output (relay)
The potentiometer determines the speed of the actuator's movement, which is converted into an SAE J1939 data frame. This requires the use of an SAE J1939 protocol stack, which we have developed for the Arduino Due.
The SAE J1939 data frame (PGN) controls:
- Position Command
- Current Limit
- Speed Command
- Motion Enable Signal
In turn, the actuator provides feedback per PGN, such as:
- Measured Position
- Measured Current
- Running Speed
- Voltage Error
- Temperature Error
I can't go into more details of the application, but due to the SAE J1939 protocol's small overhead, the requirements mentioned above are easily met by the Arduino Due system, making programming a breeze.
The above image demonstrates my hardware and programming setup. The Arduino system is embedded in a plastic enclosure. A DSB15 connector is used for IO control, while the two DSUB9 connectors provide the communication with the linear actuators.
If you need further information about programming SAE J1939 applications with the Arduino platform, please see:
ARD1939 - SAE J1939 Protocol Stack for Aduino Uno, Mega2560, Due, Teensy, ESP32 (copperhilltech.com)
I am in the process of writing a detailed application note, describing my experience with the Thomson Electrac Actuator, and providing more insights plus a working code sample for the Arduino Due. I will update this page as soon as it is ready for publication, so please come back frequently to check the current status.
Thomson Electrak Linear Actuator
The Thomson Electrak is an intelligent electromechanical linear actuator that eliminates the need for standalone controls.
As a result, it supports higher power and a broader application range than conventional hydraulic actuators.
In addition, it meets the most extreme OEM environmental acceptance tests, including IP69K.
The Electrak LL was designed with the railway market in mind. Railway equipment standards and safety regulations can be very demanding and require rigorous testing to ensure compliance. In fact, railroad equipment is exposed to some of the most demanding conditions. The Electrak LL actuator performs effectively despite harsh weather, heavy vibrations or high-pressure washing, making it ideal for opening and closing gravity bins or controlling a pantograph.
There are many industrial applications for which Electrak LL provides an ideal solution, but where it really excels are in applications in which mediumfrequency work is done on a daily basis. Examples include lifting, tilting, and grabbing operations in AGVs, logistic trains and lift trucks, or material handling machines operating a valve, hatch, or cutter back and forth during a production cycle. These types of operations often require multiple actuators sharing the load, which can be a challenge due to uneven loads and resulting binding effects. Electrak LL supports a more manageable task since its speed is load-independent and constant.
A Comprehensible Guide to J1939
SAE J1939 has become the accepted industry standard and the vehicle network technology of choice for off-highway machines in applications such as construction, material handling, and forestry machines. J1939 is a higher-layer protocol based on Controller Area Network (CAN Bus).
It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy duty vehicles. The messages exchanged between these units can be data such as vehicle road speed, torque control message from the transmission to the engine, oil temperature, and many more.
The information in this book is based on two documents of the SAE J1939 Standards Collection: J1939/21 - Data Link Layer J1939/81 - Network Management A Comprehensible Guide to J1939 is the first work on J1939 besides the SAE J1939 standards collection.
It provides profound information on the J1939 message format and network management combined with a high level of readability.
Application Note: Transmitting Analog Signals Using the SAE J1939 Protocol
This post is part of our series on Utilizing SAE J1939 as a Higher-Layer Protocol for Industrial Automation. In short, the application I had in mind was to read an analog signal per one SAE J1939 node and transmit the data to another J1939 node where it controls the blinking frequency of an LED. This project is based [...]
Arduino-Due-Based SAE J1939 Programming Kit - Quick Start Reference
Unleash the power of the Arduino Due with ARM Cortex-M3 processor to develop and test your SAE J1939 application, may it be an SAE J1939 to USB protocol converter, an SAE J1939 Bridge, an SAE J1939 data monitor, and many more. The SAE J1939 Programming Kit comes with many programming samples, including a full-blown SAE J1939 [...]
A Simple SAE J1939 to USB Gateway with the Arduino Uno, Mega 2560, Due, Teensy, ESP32
The following is an excerpt from SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino by Wilfried VossI deem it necessary to clarify the definition of “SAE J1939 to USB Gateway” because there are several variants of gateway applications.If you browse through the Internet in search for SAE J1939 gateways, you will primarily find CAN [...]
CAN Bus And SAE J1939 Prototyping With The Arduino Due ARM Cortex M3 Processor
Whenever it comes to building rapid prototypes for new CAN Bus or SAE J1939 applications, my first choice is regularly the Arduino Due, a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU.In general, the Arduino platform couples an easy-to-use programming environment (IDE) with a vast number of hardware extensions (shields). While I do appreciate programming [...]
CAN Bus Prototyping With Arduino Uno - Prototyping Hardware
This post is part of a series about Controller Area Network (CAN Bus) Prototyping With the Arduino Uno. As I had mentioned earlier, it is assumed that you have some basic knowledge of the Arduino, Arduino Sketches, and Arduino Shields. I will nevertheless take the opportunity of mentioning the prototyping hardware and its variants. It is important to know that the [...]
Arduino Due - Programming And Debugging Using JTAG ICE And Atmel Studio
Atmel’s SAM3X series MCUs are great for users who want to move further from the world of 8bit/16bit microcontrollers to 32bit ARM Cortex core MCUs. One of the most famous device in this series is SAM3X8E, Atmel’s Smart ARM microcontroller. The development platform of choice for getting started with the SAM3X8E is the Arduino Due board. The SAM3X8E [...]
Arduino Due Firmware Flaw: Problem With Using The USB Programming Port At 230400 Baud And Beyond
One of the improvements that came with the Arduino IDE's updates was an increased baud rate for the Serial Monitor. Well, there are many time-sensitive applications that will benefit from the speed gain, specifically when using one of the fastest Arduinos around, the Arduino Due with its ARM Cortex M3 processor. However, when you set the Serial [...]
ARM Cortex Processors – UART Programming Problem At Baud Rates Higher Than 115200
To say it upfront, I cannot confirm with 100% certainty that all ARM Cortex microcontrollers are affected by the UART programming problem as described in the following, but there are indications that make my assumption very probable. The outcome depends primarily on thorough testing of serial communication applications, but there is evidence to the contrary [...]
Programmable, Arduino-Due-Based USB Gateway With Two CAN Bus Ports
As part of our business strategy of providing prototyping solutions for the CAN Bus (including SAE J1939, ISOBUS, NMEA 2000) we have decided to focus more on the Arduino platform, specifically the Arduino Due. The Due, while providing the power of an ARM Cortex M3 processor, comes with two CAN Bus ports per default, however, lacking the [...]