This ESP32 CAN!

Since modern cars use the CAN bus for so many of their functions, it’s unsurprising that it’s a frequent object of interest for those in our community. Some people go no further than commercial plug-in analysers, while others build their own CAN devices. This is what [Magnus Thomé] has done, with his RejsaCAN microcontroller board.

It’s a small PCB with an onboard CAN interface from an ESP32-S3 and a car-friendly power supply circuit, and perhaps most importantly, it has an auto-shutdown feature to prevent battery drain. Software-wise it’s a blank piece of paper for the user to roll their own application, but since the ESP32 is supported by the Arduino ecosystem, there are libraries that make talking CAN as easy as it can be.

[Magnus] has a list of potential applications for the board, many of which take advantage of the ESP’s wireless capabilities. So far, [Magnus] has hooked it up to an LCD display, but we can see so many other useful things coming out powered by something like this.

You haven’t tried playing with your car’s CAN bus yet? Maybe you should read this to whet your appetite.

15 thoughts on “This ESP32 CAN!

    1. “like wireshark for CAN bus”

      That would be Wireshark – it has supported CAN for years. I’ve used tcpdump or dumpcap as a CANbus logger at work combined with any SocketCAN capable interface for nearly six years now, and the functionality has been in Wireshark and Linux since LONG before I started doing CANbus stuff.

  1. I built my own module for installing in my LS3 swapped BMW E30 in order to add things like cruise control, ac control, tach, speedo, fuel consumption which are all done over CAN these days instead of done with discrete signals. It also has a automotive friendly power supply as well as automotive friendly inputs and outputs. Everything goes through a proper waterproof automotive connector and the whole assembly will be potted in epoxy. I just uploaded the repo with the KiCAD project and Gerbers as well as some images of one assembled.

    1. Nice board! There’s also this board with an automotive oriented psu made by “Voltlog”
      I focused on a as small size as possible so the board could fit inside an OBD2 dongle. Hence a high frequency DCDC chip for example for smaller auxillary components. And no room for any higher power outputs like on Voltlog’s and your board. Compromises compromises 🙂

      1. Your board is nice as well, I went with the larger supply mostly because it is what i’ve used in a lot of past projects which usually require a couple amps, not completely needed for these ESP designs. I like your supply design on 2.0 and 2.1. However the LMR12010 in your latest designs is only rated at a maximum of 24V vs the LMR14006 of 45V. For ISO16750-2 section the device is required to be powered by 24V continuously for at 60+-6 seconds, this is right at the maximum capability of the LMR12010, while not the end of the world, there are some other tests in both ISO16750-2 and ISO7637-2 that i don’t think your supply will withstand. You need to add some more input protection on the power input, either a MOV or a TVS diode to clamp any ESD spikes coming into the board, and sprinkle in a few smaller value ceramics (They will have lower ESR than the single 22uF you are currently using). You already have a 1uF and 100nF on the design so might as well add them to the input as well. You’ll also want to make sure those caps are rated for the potential high voltages they will see in a transient event. You can simulate your circuit in LTSpice which has both ISO standards already built into a test source.

        1. I really wanted the 06 but it went globally out of stock with stock return estimates at 2024 so I had to swap it out regretfully. Maybe I should check stock again, the very long out of stock estimates one sees are probably wild guesses anyway. Huge thanks for the other pointers. I’ve already added over voltage clamp on the v3.2 but I’ll definitely consider caps 👍

  2. Sorry I am lazy. I think I have seen references that ESP32 has native CAN support, but I don’t quite understand how to interface with it. Do we really need specialized hardware for this? Thanks for your patience with my ignorance.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.