Welcome to the blog of Dr. Ken Tindell, CTO of Canis Automotive Labs. This blog is focused on the work
Canis is doing on CAN bus and CAN security, but also covers the design of
embedded software and hardware for automotive systems and the Yes We Can project at Canis that
develops hardware, software and tools for CAN bus: the CANHack toolkit
for injecting faults into the CAN protocol, CANPico and CANHack hardware boards for
the Raspberry Pi Pico, and the can2
logic analyzer CAN protocol decoder.
Archive of posts with category 'CAN'
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...
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...
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,...
The question: There is a CAN node that’s acting very strangely on a 500kbit/sec CAN bus. What is happening?
At first glance, an innocent little project for the Festive Season - Cheerlights on a Pico. Big Deal?!
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 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....
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...
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...
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...
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...
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...
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...
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...
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...
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...