Press "Enter" to skip to content

Literature: J1939 Development for Embedded Systems

Literature- J1939 Development for Embedded Systems

J1939 Development for Embedded Systems is a practical guide for engineers and embedded developers who want to build real-world SAE J1939 applications. Covering Arduino, ESP32, Teensy, and other embedded platforms, the book focuses on implementation rather than theory, using the open-source ARD1939 protocol stack and complete programming examples to demonstrate every concept.

Unlike traditional J1939 references, this book approaches the protocol from a programmer’s perspective. Instead of following the structure of the SAE standards, it concentrates on the concepts you actually need to begin developing embedded applications. While a solid understanding of PGNs and message handling is essential, many lower-level protocol details are already managed by a complete J1939 protocol stack. The goal is to help you become productive quickly without requiring you to master every aspect of the protocol before writing your first line of code.

This book was inspired by years of feedback from readers of my Comprehensible Guide to J1939. Many engineers shared the same experience I had when first learning the protocol: spending countless hours navigating multiple standard documents, deciphering abbreviations, and trying to piece together information scattered across the specification. The SAE documents are excellent technical specifications, but they were never intended to serve as a step-by-step programming guide. This book fills that gap by presenting J1939 in a logical, implementation-oriented sequence that mirrors the way embedded software is actually developed.

Another major difference is that this book goes beyond explanation. Every programming example is based on the open-source ARD1939 protocol stack, allowing you to study and modify real source code instead of isolated code snippets. By the time you finish the book, you will not only understand how SAE J1939 works—you will also have a practical software foundation that you can use in your own projects.

This is a work in progress and will continue to evolve as new chapters, code examples, technical articles, and software updates are completed. A preliminary table of contents is already available, and additional resources will be published regularly as development progresses.

Join the J1939 Community

Become part of the J1939 community on our website, where you’ll find project updates, technical discussions, programming tips, code examples, and opportunities to exchange ideas with fellow developers.

Preliminary Table of Contents

Part I A Brief Introduction to J1939

Chapter 1 What Is J1939 and Why Should You Care?

Chapter 2 PGNs: The Language of J1939

Chapter 3 Understanding the 29-Bit Identifier

Chapter 4 Monitoring J1939 Traffic

Chapter 5 Requesting Data

Chapter 6 Transmitting J1939 Messages

Chapter 7 Source Addresses and Address Claiming

Chapter 8 Transport Protocol: When Eight Bytes Are Not Enough

Chapter 9 Diagnostic Messages: Understanding Vehicle Faults

Part II The J1939 Developer’s Toolbox

Chapter 10 Finding Information: J1939 Standards and References

Why You Need a Reference

J1939/71 – Vehicle Application Layer

Digital Annex (DA)

Other Useful Standards

Chapter 11 Monitoring J1939 Data

Why Monitoring Matters

Typical Workflow

Recommended Features

Chapter 12 CAN Analyzers and Bus Monitors

J1939 Runs on CAN

What a CAN Analyzer Shows

When a CAN Analyzer Is Needed

J1939 Monitor vs CAN Analyzer

Chapter 13 Building a Test Network

Why You Need a Network

Minimum Network

Recommended Development Setup

Real Vehicle vs Bench Network

Chapter 14 Your First Development Environment

Part III Getting Ready to Program

Chapter 15 Choosing Your Hardware

Chapter 16 Installing the Arduino IDE

Chapter 17 CAN Hardware Essentials

Chapter 18 Connecting Everything Together

Chapter 19 Exploring Live Network Traffic

Chapter 20 Meet ARD1939

Why Use a Protocol Stack?

What ARD1939 Does

What ARD1939 Does Not Do

Supported Platforms

Installing ARD1939

Your First ARD1939 Program

Part IV – Writing J1939 Software

Chapter 21 Inside a J1939 Application

Chapter 22 Understanding the ARD1939 Architecture

Chapter 23 Receiving Messages

Chapter 24 Transmitting Messages

Chapter 25 Decoding PGNs and SPNs

Chapter 26 Building Your First ECU

Copyright © 2024 Copperhill Technologies Corporation
wpChatIcon
wpChatIcon