Archive of posts with category '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...