RejsaCAN: a palm-sized ESP32 CAN board for car projects
ESP32 and ESP32-S3 board with CAN interface, runs on 12V power (with auto shutdown)
At a glance
- What is it?
- RejsaCAN is a three by five centimetre board built around an ESP32 or ESP32-S3 with a CAN interface, powered straight from a car and able to shut itself down when the engine is off so it does not drain the battery. The interesting design decision is the power logic, which is a voltage threshold, a digital sense input and an analog sense input, rather than the CAN side.
- Who is it for?
- Adopt RejsaCAN if you build electronics that talk to a car bus and want the board to disappear into the vehicle without eating the battery, because the power management is the part that took real thought and the CAN side is a commodity transceiver. Do not adopt it if you need a product with a declared licence or a supported manufacturing package, because the repository is a personal project with an unreleased licence and hand-assembled hardware rather than a certified design.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 90 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A board the size of a matchbox, built for a car's power
RejsaCAN is a small board, three by five centimetres, based on an ESP32 or an ESP32-S3, made for use in a car. The README says plainly that it was put together for the author's own assorted car projects, and that there is no bespoke code for the board beyond the pin definitions. It is universal hardware, and it becomes useful through the open source Arduino libraries used on top of it.
The electrical idea is simple and correct for the use case. The board has an onboard CAN interface and is powered directly from the car, across a five to twenty-four volt range, and it offers an automatic shutdown option so it does not drain the car battery.
The shutdown option matters more than it sounds, and the README explains why. An OBD2 connector always supplies constant twelve volt power, even when the car is parked and turned off. A board that draws from that socket will sit there for weeks and flatten the battery, which is the single most common way a diagnostic gadget damages a vehicle.
So the board is designed to be left plugged in. That also explains the physical package in the repository, which includes three-dimensional printable housings and a picture of one of them fitted to an OBD2 connector, plus a variant with screw terminals for anyone who would rather wire the board into something other than a socket.
The project is a personal one rather than a product, and the readme points to an independent review and getting started guide on a well known embedded news site from May 2023. The last push was on 2026-07-26 and the repository records no releases.
Auto shutdown is the feature that makes it safe to leave plugged in
The auto shutdown section is the most interesting part of the readme, because it is a small piece of engineering that solves a specific problem.
The observation is that when the engine is running and charging the car battery, the incoming voltage is a little higher than when the engine is stopped. That difference can be used to automate the shutdown so the board does not drain the battery. By default the onboard DC-DC power circuit shuts the whole board down when the power voltage falls below the engine-running threshold, and boots the board back up when it rises above it.
The readme is explicit that the default is not the only way to run the board. You can use the sleep mode of the ESP32 instead, waking it and putting it back to sleep depending on CAN traffic, on the voltage level from the car, on delays, and so on.
Three signals make this work, and the readme names the pins.
There is an output, on GPIO 17, that can be pulled high to keep the board running even when the car voltage drops below the threshold, which is an alternative to disabling the auto shutdown entirely on the circuit board by shorting the always-on bridge. The ESP32 can keep that pin high even during sleep, so the board can be held awake deliberately.
There is a digital input, on GPIO 8, that monitors whether the car voltage is above or below the engine-running threshold, and that can be used to wake the board from sleep or simply as a check of whether the engine is charging.
And there is an analog input, on GPIO 9, which reads the car voltage so that you can check not only the charging level but also the discharge level when parked, the health of the charging, the health of the battery, and whether a large load has just been switched on.
The third of those is the one that turns a threshold switch into something more useful, because a continuous measurement can distinguish a flat battery from a big load.
The CAN interface is four wires and a terminator you can cut
The CAN interface section is short and practical.
You hook the board up straight to the car's OBD2 port, or attach it directly to any CAN bus. You need to connect four wires: twelve volt power, ground, CAN high and CAN low.
Then there is the detail that trips people up on CAN. There is a bus termination resistor on the board, and it can be disabled if it is not needed, by cutting a printed circuit board trace, and optionally mounting a pin header and a jumper so the decision is reversible. That is a sensible design, because a CAN bus needs exactly two termination resistors at its two ends, and a board that always has one fitted is a board that will interfere with the bus it is plugged into.
Making the terminator optional by cut rather than by a fitted part keeps the board simple, and the trace plus optional header is the usual way this is done in a small design.
The functionality section frames the whole board. The idea was to make a CAN plus ESP32 board as small as possible, with as many useful extras included as possible, because the moment you start tinkering with a car you immediately need one more feature. That is an honest description of a hobby board, and it explains why the repository is full of projects, ideas and example code rather than a single polished application.
What the ESP32-S3 adds to a car
The chip is the reason the board is more than a CAN adapter, and the readme lists what the ESP32-S3 supports.
There is an SPI bus and an I2C bus, Bluetooth Low Energy version 5, and WiFi in both access point and client mode. The networking side covers everything from plain HTTP, MQTT and Ajax through NTP to running a full web server with a user interface. There is a USB port that handles serial in and out and also OTG, so the board can act as a virtual keyboard or as wireless storage. And there is analog input, and pulse width modulation or analog output.
The readme's summary of the chip is that it supports a mind boggling range of communication standards and hardware auxiliaries, which makes it a very versatile hub for shuffling data between different systems. That is the right way to think about the board. It is not a logger and not a controller, it is a small computer with a CAN port, and the CAN port is the part that makes it interesting inside a vehicle.
The author also notes that the board can be made to interface not only to various CAN buses but to network and WiFi, to Bluetooth, and to numerous sensors and other peripherals through the built-in interfaces, which is the same point stated from the software side.
The examples are the author's own cars
The examples section is the best guide to what the board is actually for, because each one is a project the author has built.
There is reading CAN data and sending CAN packets back to control the car, which the readme says is one of the current projects and mentions setting sport mode as the default and locking the doors when driving away. There is a bridge from CAN to Bluetooth Low Energy or to the network. There is using the board as a CAN interface for sniffing a bus with a tool such as SavvyCAN. There is reading sensor data over I2C, SPI or the analog inputs and writing it to a CAN bus for data loggers. And there is publishing live telemetry from a racing timing service to the internet, which the author says he is starting.
Then the smaller ones, which are the more revealing. A beeper or an LED to show the status of CAN data, for example a shift indicator project and a low oil pressure warning. Driving high power peripherals with a driver board. And translating CAN data between two CAN buses, which is the project behind a gear display the author links to.
There is also a mention of a connector board for attaching the RejsaCAN to the back of a small ILI9341 touch screen, which is a nice illustration of the ecosystem: the board is small enough that the display has to be mounted to it rather than next to it.
The ideas section extends the list further. Infrared camera sensor arrays, in two named parts, to log tyre, brake and drivetrain temperatures over Bluetooth to the timing service or to a CAN based logger. A laser time of flight distance sensor to log suspension travel, which the author says he also did. SPI or I2C colour displays to show CAN data such as intake or oil temperatures or alarms, and to show live telemetry fetched over Bluetooth. A second CAN port. A driver board for high power items. Step motor drivers. And multiple input boards, analogue or digital.
The through-line is telemetry, and the board is a bridge between a car bus and the phone in your pocket.
The repository is hardware, documentation and a pile of side projects
The directory listing tells you how the project is organised, and it is unusual for a hardware repository to have this many separate strands.
There is a Schematics directory, which the readme says holds the schematic files, the Gerber files and the bill of materials, and it is where you go if you want to assemble your own board rather than buy one. There is a three-dimensional printing directory with example housings, and an auxiliary boards directory for the odd extra boards the author made to mount an OBD2 connector, a display and a thermal camera, among other things.
Then there are Code Examples, a Projects and ideas directory, a Symbols directory, and a directory of links to various CAN libraries with tips on setting up the IDE and getting started, which is a directory name that does a lot of work and is worth opening first if you are new to the board.
The licensing situation is one a builder should check rather than assume. The repository listing records no licence for the project, and the readme does not state one either, so for a design you intend to manufacture and sell, the question of what you may do with the schematics and the board files needs an answer from the author.
What the project does well is show a complete small hardware project done properly: the board, the case, the wiring, the power management with the failure modes in mind, and a set of real projects that use it. The automotive use is the reason the shutdown logic exists, and it is the part of the design that transfers to any battery-powered sensor that stays connected to a vehicle.
Editorial conclusion
Adopt RejsaCAN if you build electronics that talk to a car bus and want the board to disappear into the vehicle without eating the battery, because the power management is the part that took real thought and the CAN side is a commodity transceiver. Do not adopt it if you need a product with a declared licence or a supported manufacturing package, because the repository is a personal project with an unreleased licence and hand-assembled hardware rather than a certified design. Before you build one, read the auto shutdown section and decide whether you want the default voltage threshold, the force-on pin or a sleep mode driven by bus traffic, and check the termination resistor arrangement, because a CAN bus needs exactly two terminators and the board's is disabled by cutting a trace.
Frequently asked questions
What is the RejsaCAN board?
It is a three by five centimetre board built around an ESP32 or ESP32-S3 with an onboard CAN interface, made for use in a car and powered directly from the vehicle across a five to twenty-four volt range. The author built it for his own car projects, and there is no bespoke firmware beyond the pin definitions.
How does the RejsaCAN avoid draining the car battery?
Because the voltage from a running engine is higher than the parked voltage, the default is to shut the whole board down below the engine-running threshold and boot it again above it. The readme also describes sleeping and waking on CAN traffic or on voltage, a force-on output on GPIO 17, a digital sense input on GPIO 8 and an analog voltage sense input on GPIO 9.
How do I connect the RejsaCAN to a car?
Either into the OBD2 port or directly onto any CAN bus, using four wires: twelve volt power, ground, CAN high and CAN low. The board carries a bus termination resistor which can be disabled by cutting a printed circuit board trace, and optionally a pin header and jumper can be fitted so the decision is reversible.
What can I build with a RejsaCAN board?
The readme's examples include reading CAN data and sending CAN packets to control the car, bridging CAN to Bluetooth or to the network, sniffing a bus with a tool such as SavvyCAN, logging sensor data to a CAN based data logger, publishing live telemetry from a racing timing service, and translating data between two CAN buses.
What files do I need to build my own RejsaCAN board?
The Schematics directory holds the schematics, the Gerber files and the bill of materials, and the readme says you can assemble the board yourself from those. The repository also carries three-dimensional printable housings, auxiliary mounting boards, code examples, project notes, symbol files and a directory of links to CAN libraries with setup tips.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/magnusthome-rejsacan-esp32)Was this useful?