Blog
Recent Posts
Developing SAE J1939 Applications with ARD1939 and Copperhill Technologies Hardware
Posted by on
One of the challenges of developing SAE J1939 applications is finding a protocol stack that is both affordable and flexible enough for prototyping, education, and custom embedded projects.
To address this need, we developed ARD1939, a portable C++ SAE J1939 protocol stack that serves as the software foundation for many of our development projects and examples.
Originally created for the Arduino Uno, ARD1939 has evolved into a portable implementation that supports Arduino, ESP32, and other embedded platforms. The software provides the core functionality required for building real-world SAE J1939 applications, including Network Management, Address Claiming, Transport Protocol (BAM and RTS/CTS), Request Messages, and PGN transmission and reception.
Unlike many protocol implementations that focus solely on demonstrating a few messages, ARD1939 was designed as a complete software framework for embedded development.
The protocol stack is currently available as a precompiled library, allowing developers to begin building and testing applications immediately. With the release of the upcoming book, “J1939 Development for Embedded Systems,” the complete C++ source code will also be released under an open-source license.
At Copperhill Technologies, we use ARD1939 together with many of our CAN Bus and SAE J1939 development products, including Arduino, ESP32, and Teensy-based hardware platforms. This combination allows engineers to move quickly from evaluating the protocol to developing fully functional embedded applications.
For complete information about the ARD1939 protocol stack, including its architecture, programming interface, supported hardware, and ongoing documentation, visit:
If you’re interested in learning the implementation details behind SAE J1939, be sure to read the complete article:
Questions, suggestions, or feedback? Join the growing J1939 engineering community at:
Whether you’re developing a prototype, building an ECU, or simply learning the SAE J1939 protocol, ARD1939 and the accompanying educational resources provide a practical starting point for your next embedded systems project.
ESP32-S3 MicroPython Programming for CAN Bus and NMEA 2000
The embedded systems world has traditionally been dominated by C and C++, but over the past several years another language has been gaining remarkable momentum: Python. More specifically, MicroPython has become one of the most attractive development environments for engineers who want to prototype and deploy embedded applications quickly without sacrificing access to the underlying [...]
MicroPython Meets CAN Bus: The Fastest Way to Build Industrial IoT and Embedded CAN Applications
If you’ve ever programmed a CAN Bus application in C or C++, you already know the learning curve. Before sending the first CAN message, you typically need to configure a compiler, install SDKs, understand build systems, and write dozens of lines of initialization code. But what if you could start communicating over a CAN network with [...]
CANPico V2 with Raspberry Pi Pico WH: Build Connected CAN Bus Applications with MicroPython and Wi-Fi
Have you ever wanted to build a smart system that sends data to the cloud, responds to remote commands, or monitors equipment in real time? With the CANPico V2 featuring a pre-installed Raspberry Pi Pico WH, those ideas can become working prototypes in hours instead of weeks. Combining industrial-grade CAN Bus hardware, integrated Wi-Fi, and the [...]
Teensy 4.1 Triple CAN Bus Board with Ethernet and LCD – The Ultimate Platform for High-Performance CAN Network Development
When developing modern embedded systems, one challenge appears repeatedly: How do you connect multiple CAN networks, process large amounts of real-time data, provide a local user interface, and communicate with Ethernet or cloud services—all without running out of processor performance? The answer is the Teensy 4.1 Triple CAN Bus Board with 240×240 IPS LCD and Ethernet [...]
Why Would You Need Two CAN Ports on a Raspberry Pi?
When developers first start working with CAN bus networks, a single CAN interface is usually sufficient. It allows them to monitor traffic, transmit messages, and develop applications for automotive, industrial, marine, or agricultural systems. However, as projects become more sophisticated, the limitations of a single CAN port quickly become apparent. This is where dual-channel CAN interfaces [...]
Why CAN Bus Is One of the Most Reliable Communication Systems Ever Created
When engineers design communication systems for vehicles, industrial machinery, agricultural equipment, marine electronics, and embedded control systems, reliability is often more important than raw speed. A lost message in a music streaming application may go unnoticed. A lost message containing engine speed, brake status, steering angle, or hydraulic pressure can lead to equipment malfunction, downtime, or [...]
Free SAE J1939 Protocol Stack for ESP32 — Open New Paths for CAN Bus Innovation
We at Copperhill Technologies are excited to announce that we are releasing a fully functional SAE J1939 protocol stack for the ESP32 — and best of all, it’s completely free to use. Whether you’re an engineer, a student, or a maker, this opens up serious possibilities for CAN-bus projects and vehicle network applications — without [...]
OBD-II CAN Bus ECU Simulator: Learn Vehicle Diagnostics, Protocols, and Software Development
The Teensy 4.0 OBD-II CAN-Bus ECU Simulator offered by Copperhill Technologies is a powerful and versatile tool for developers, engineers, educators, and hobbyists working with automotive networks. By emulating an engine control unit (ECU) through a standard OBD-II interface, this compact platform allows safe testing, prototyping, and diagnostic training—without requiring direct access to a vehicle. Key [...]
CAN Bus Development for Embedded Systems: With and Without an Operating System
The Controller Area Network (CAN) Bus has become an essential communication protocol in automotive, industrial, marine, and robotics applications due to its robustness, efficiency, and real-time capabilities. When it comes to embedded systems, developers have multiple hardware and software platforms to choose from—some with full operating systems (OS), others running bare-metal (without OS). At Copperhill Technologies, [...]
Loading... Please wait...
