This article is part of CAN Bus Embedded Development, my growing online book about practical CAN Bus hardware, software, and embedded system development.
View the complete Table of Contents →
Introduction
I have been involved with CAN Bus technology and embedded systems for many years. During that time, I have worked with different microcontrollers, CAN controllers, development environments, higher-layer protocols, and countless combinations of hardware and software. Like most engineers who have worked with CAN for any length of time, I have also spent my share of hours trying to understand why something that should have worked didn’t.
Much of what I know today came not only from specifications and technical documentation, but from actually building systems, writing software, testing hardware, analyzing network traffic, and solving problems. Over the years, some of that experience has found its way into books, technical articles, software, and products. With CAN Bus Embedded Development, I want to bring much of that experience together and share it in one place.
This is intended to be a practical publication. I will cover the fundamentals of CAN Bus technology, but only to the extent necessary to establish a common foundation. There is already a substantial amount of excellent literature available that explains CAN in great technical depth. I see little value in repeating material that is readily available elsewhere simply to make this publication longer.
Instead, I want to concentrate on what happens when we actually start working with CAN Bus in an embedded system: selecting hardware, connecting a CAN controller and transceiver, configuring the software, transmitting and receiving messages, understanding what we see on the network, and dealing with the problems that inevitably appear along the way.
We will work with different hardware platforms and development approaches. Some subjects will be relatively simple; others will take us considerably deeper. Where necessary, I will return to CAN fundamentals and explain the underlying technology, but always with an emphasis on why it matters to the application we are developing.
This is also a growing online publication rather than a conventional book that is written in its entirety and released only when it is finished. I will add material regularly, expand existing topics when appropriate, and follow subjects that deserve a closer look. That format allows me to share useful material as it is developed rather than keeping it on my computer until some distant publication date.
I also use AI as part of the writing process. I consider AI a writing and editorial tool, not the source of the technical expertise presented here. It helps me organize thoughts, refine language, and turn years of accumulated notes and experience into material that is hopefully easier to read. The technical direction, practical experience, examples, and conclusions remain my responsibility.
My goal is fairly simple: to share what I have learned about CAN Bus embedded development in a way that is useful to someone who wants to build something.
If you are such a person, I hope you will follow along.
Follow CAN Bus Embedded Development
New chapters and technical material are added regularly. Subscribe to receive new additions as the online book continues to grow.



