CAN, or Controller Area Network, was originally developed as a resilient differential bus for controlling various systems inside automobiles. From the throttle to the spark timing, to the air/fuel mix, pretty much everything inside a car is controlled by the ECU (engine control unit), a small embedded computer that’s usually very proprietary and potted with resin. If you’ve ever wanted to log data for your automobile, or any other device using CAN (there are quite a few these days!) then the CANarchy is a great choice.
With a small OLED display and an ESP32 running the show, you have a lot of flexibility. The firmware is based on CircuitPython so modifying it for a particular use shouldn’t be difficult. One of the features that really stood out to me is the ability to take 12-72V input voltage! In North America, almost all vehicles use a 12V system, but in Europe and other places, it’s not uncommon to come across 24V trucks, and various other systems often use 48V (telecom, for example). Being able to run off of almost any available voltage is a really nice touch.
But how do you access the CANbus to begin with? Well, by law, automobiles made since 1996 in the US and since 2001 in the EU must have an ODB-II port, which allows you to connect directly to the main CAN bus inside the vehicle. This is how those diagnostic dongles can tell exactly what’s going on. But those dongles rarely let you send commands or log data, whereas the CANarchy can do both. You can send any arbitrary CAN message, log data to an SD card, or send pre-recorded data. Plus, with Wi-Fi on board, you can easily create a web portal to monitor and/or send packets in real time or send them to a logging system like Adafruit IO with MQTT.
Just a word of caution: only hack things you have permission to hack! Make sure you have the consent of a vehicle owner and don’t experiment with new commands on public roads. Test things out in an empty lot and see what you can do.