CAN

Inferring the sender of a CAN frame

The latest update of the open source can2 protocol decoder is able to automatically infer the sender of a CAN frame. It uses the method of deterministic distortion of CAN...

Get your app to Mars!

This is a blog post about firmware updates, and I was inspired to write it by the news that NASA’s Curiosity rover on Mars has got an OTA update. The...

CAN Injection: keyless car theft

This is a detective story about how a car was stolen - and how it uncovered an epidemic of high-tech car theft. It begins with a tweet. In April 2022,...

CAN Quiz Question #2: Answer

The question: There is a CAN node that’s acting very strangely on a 500kbit/sec CAN bus. What is happening?

Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus

At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!

Running high speed signals through CAN bus wiring

CAN bus wiring has a big effect on how fast data can go on CAN. CAN bits are normally 2000ns (2 microseconds, or 500kbit/sec) or longer for slower buses (a...

The Janus Attack

The Janus Attack is a low-level CAN protocol attack where a single CAN frame contains two different payloads, so that a targeted device sees a different payload to other devices....

Sneak preview of three upcoming Canis CAN boards

Canis Automotive Labs has three CAN boards in the pipeline and with luck we should be announcing availability in a few weeks, so we’ve produced a sneak preview of those...

PulseView and can2 CAN decoder demo

We have published a short video showing the PulseView logic analyzer UI with our can2 protocol decoder. The video shows how to set PulseView up to record CAN traces, how...

CAN protocol decoding via Wireshark

Last year we published a blog post that described the new can2 CAN protocol decoder for many logic analyzers supported by Sigrok we have now updated it to include a...

A CAN protocol decoder

We said in our previous blog post that “Our next goal is to create a GTKWave filter so that an arbitrary waveform can be decoded” and in an early Christmas...

The canframe.py tool

We have developed a simple CAN calculator in Python called canframe.py. It defines a class CANFrame that calculates the bitstream for a CAN frame, and includes a print method that...

CAN, atomic broadcast and Buridan's Ass

Atomic broadcast is a really, really useful thing when building a highly robust distributed real-time control system. The basic idea is that when a message is broadcast, either everyone in...

CAN Priority Inversion

The problem of priority inversion is well-known and.. actually, scratch that: it’s clearly not well known at all because people keep making the same mistake. So we are publishing this...

Three new CAN protocol hacks

The CANHack toolkit includes support for various kinds of attacks on the CAN protocol, including three new unpublished attacks. These new hacks are described in this blog post. There is...

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

CANHack

Defending the CAN bus Part 1: Attacks and intrusion detection

CAN bus is a wildly successful fieldbus protocol that is perfectly designed for vehicle applications (even including spacecraft that have gone to Mars). But that success in handling sensors and...

ASRG webinar on CAN protocol attacks

I recently gave a 45 minute webinar at the ASRG on the topic of CAN protocol attacks, demonstrating five different attacks on the CAN protocol itself. There is also a...

The Janus Attack

The Janus Attack is a low-level CAN protocol attack where a single CAN frame contains two different payloads, so that a targeted device sees a different payload to other devices....

CANPico now available!

The CANPico board is at last available, and ready for order online from SK Pang. It’s been a long time coming, longer than we expected thanks to some major problems...

New documentation for MicroPython CAN

We have recently been developing an API for CAN under MicroPython for the new CANPico board from Canis Automotive Labs. There are some really neat features of the CAN support...

Sneak preview of three upcoming Canis CAN boards

Canis Automotive Labs has three CAN boards in the pipeline and with luck we should be announcing availability in a few weeks, so we’ve produced a sneak preview of those...

CANHack toolkit on the Raspberry Pi Pico

The Raspberry Pi Pico doesn’t have a CAN controller built-in but that’s no barrier: we can send CAN frames in software!

Three new CAN protocol hacks

The CANHack toolkit includes support for various kinds of attacks on the CAN protocol, including three new unpublished attacks. These new hacks are described in this blog post. There is...

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

CAN security

Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus

At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!

Defending the CAN bus Part 4: CAN-HG

Episode 3 of this Defending CAN series discussed security gateways. This fourth episode describes hardware protection of CAN using the new CAN-HG augmentation of the CAN protocol. The episode describes...

Defending the CAN bus Part 3: Security Gateways

Episode 2 of this series covered cryptography on CAN. This third episode describes security gateways, using as a case study the Canis Labs security gateway. Covered are the things that...

Defending the CAN bus Part 2: Cryptography

Each episode in the series covers one technique for defending the CAN bus. Episode 1 introduced CAN attacks and talked about intrusion detection, the CCTV of CAN bus.

Defending the CAN bus Part 1: Attacks and intrusion detection

CAN bus is a wildly successful fieldbus protocol that is perfectly designed for vehicle applications (even including spacecraft that have gone to Mars). But that success in handling sensors and...

A CAN protocol decoder

We said in our previous blog post that “Our next goal is to create a GTKWave filter so that an arbitrary waveform can be decoded” and in an early Christmas...

Three new CAN protocol hacks

The CANHack toolkit includes support for various kinds of attacks on the CAN protocol, including three new unpublished attacks. These new hacks are described in this blog post. There is...

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

CAN decoder

Building PulseView for the Raspberry Pi

PulseView is a pretty neat logic analyzer, especially when paired with our can2 CAN protocol decoder and a low-cost logic analyzer. But what would be even better would be to...

PulseView and can2 CAN decoder demo

We have published a short video showing the PulseView logic analyzer UI with our can2 protocol decoder. The video shows how to set PulseView up to record CAN traces, how...

CAN protocol decoding via Wireshark

Last year we published a blog post that described the new can2 CAN protocol decoder for many logic analyzers supported by Sigrok we have now updated it to include a...

A CAN protocol decoder

We said in our previous blog post that “Our next goal is to create a GTKWave filter so that an arbitrary waveform can be decoded” and in an early Christmas...

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

MicroPython

Using a CANPico as a USB CAN bus adapter for Wireshark

Here I will explain how one of our CANPico boards can be made into a USB CAN adapter firmware to display CAN frames on the bus in Wireshark.

New CANPico firmware released

We’ve pushed a new version of the CANPico firmware that updates it to MicroPython v1.16. The update also fixes some bugs but the biggest change is that the firmware adds...

Video intro to CANPico

Now that the CANPico board is available for order online from SK Pang we thought it would be good to make a short video on getting started with it.

CANPico now available!

The CANPico board is at last available, and ready for order online from SK Pang. It’s been a long time coming, longer than we expected thanks to some major problems...

New documentation for MicroPython CAN

We have recently been developing an API for CAN under MicroPython for the new CANPico board from Canis Automotive Labs. There are some really neat features of the CAN support...

CANHack toolkit on the Raspberry Pi Pico

The Raspberry Pi Pico doesn’t have a CAN controller built-in but that’s no barrier: we can send CAN frames in software!

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

Python

A CAN protocol decoder

We said in our previous blog post that “Our next goal is to create a GTKWave filter so that an arbitrary waveform can be decoded” and in an early Christmas...

The canframe.py tool

We have developed a simple CAN calculator in Python called canframe.py. It defines a class CANFrame that calculates the bitstream for a CAN frame, and includes a print method that...

Introducing the CANHack toolkit

For the last few weeks we’ve been developing the CANHack toolkit for CAN protocol hacking. It’s a portable bit-banging library to emulate the minimal parts of the CAN protocol required...

Silicon design

New CPU architecture for automotive systems

The automotive industry is going through quite a change in the way it designs electronics for in-vehicle systems. The traditional approach has been to procure an Electronic Control Unit (ECU)...

CANPico

CAN Quiz Question #2

This is the second CAN Quiz Question on the CAN protocol. This one is quite hard and not only tests knowledge of the dark corners of the CAN protocol, it...

Getting started with CryptoCAN on the CANPico

CryptoCAN is an encryption scheme for CAN messaging developed by Canis Labs. It’s designed to fit the publish/subscribe method of communication that CAN was designed for, and has a simple...

Debugging C on the CANPico

The Raspberry Pi Pico is an excellent embedded platform, noted for its excellent documentation (and also the RP2040 microcontroller, one of the few that is currently not made from unobtainium)....

ASRG webinar on CAN protocol attacks

I recently gave a 45 minute webinar at the ASRG on the topic of CAN protocol attacks, demonstrating five different attacks on the CAN protocol itself. There is also a...

Using a CANPico as a USB CAN bus adapter for Wireshark

Here I will explain how one of our CANPico boards can be made into a USB CAN adapter firmware to display CAN frames on the bus in Wireshark.

New CANPico firmware released

We’ve pushed a new version of the CANPico firmware that updates it to MicroPython v1.16. The update also fixes some bugs but the biggest change is that the firmware adds...

Video intro to CANPico

Now that the CANPico board is available for order online from SK Pang we thought it would be good to make a short video on getting started with it.

CANPico now available!

The CANPico board is at last available, and ready for order online from SK Pang. It’s been a long time coming, longer than we expected thanks to some major problems...

New documentation for MicroPython CAN

We have recently been developing an API for CAN under MicroPython for the new CANPico board from Canis Automotive Labs. There are some really neat features of the CAN support...

Sneak preview of three upcoming Canis CAN boards

Canis Automotive Labs has three CAN boards in the pipeline and with luck we should be announcing availability in a few weeks, so we’ve produced a sneak preview of those...

CANHack toolkit on the Raspberry Pi Pico

The Raspberry Pi Pico doesn’t have a CAN controller built-in but that’s no barrier: we can send CAN frames in software!

CANProbe

Sneak preview of three upcoming Canis CAN boards

Canis Automotive Labs has three CAN boards in the pipeline and with luck we should be announcing availability in a few weeks, so we’ve produced a sneak preview of those...

Raspberry Pi Pico

Raspberry Pi Pico Priority Inversion

We have written before about priority inversion, how it happened on Mars, and how it happens on CAN bus if the CAN controller and drivers aren’t designed carefully. But we...

Raspberry Pi 4

Building PulseView for the Raspberry Pi

PulseView is a pretty neat logic analyzer, especially when paired with our can2 CAN protocol decoder and a low-cost logic analyzer. But what would be even better would be to...

Wireshark

Using a CANPico as a USB CAN bus adapter for Wireshark

Here I will explain how one of our CANPico boards can be made into a USB CAN adapter firmware to display CAN frames on the bus in Wireshark.

MIN

Using a CANPico as a USB CAN bus adapter for Wireshark

Here I will explain how one of our CANPico boards can be made into a USB CAN adapter firmware to display CAN frames on the bus in Wireshark.

CryptoCAN

Defending the CAN bus Part 3: Security Gateways

Episode 2 of this series covered cryptography on CAN. This third episode describes security gateways, using as a case study the Canis Labs security gateway. Covered are the things that...

Defending the CAN bus Part 2: Cryptography

Each episode in the series covers one technique for defending the CAN bus. Episode 1 introduced CAN attacks and talked about intrusion detection, the CCTV of CAN bus.

HSM

Defending the CAN bus Part 2: Cryptography

Each episode in the series covers one technique for defending the CAN bus. Episode 1 introduced CAN attacks and talked about intrusion detection, the CCTV of CAN bus.

Security gateway

Defending the CAN bus Part 3: Security Gateways

Episode 2 of this series covered cryptography on CAN. This third episode describes security gateways, using as a case study the Canis Labs security gateway. Covered are the things that...

CAN-HG

Defending the CAN bus Part 4: CAN-HG

Episode 3 of this Defending CAN series discussed security gateways. This fourth episode describes hardware protection of CAN using the new CAN-HG augmentation of the CAN protocol. The episode describes...

MQTT

Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus

At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!

MQTT-SN

Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus

At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!

MQTT-SN/CAN

Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus

At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!

firmware

Get your app to Mars!

This is a blog post about firmware updates, and I was inspired to write it by the news that NASA’s Curiosity rover on Mars has got an OTA update. The...

can2

Inferring the sender of a CAN frame

The latest update of the open source can2 protocol decoder is able to automatically infer the sender of a CAN frame. It uses the method of deterministic distortion of CAN...

CVE-2023-29389

Inferring the sender of a CAN frame

The latest update of the open source can2 protocol decoder is able to automatically infer the sender of a CAN frame. It uses the method of deterministic distortion of CAN...