A DIY CanZE dongle

The KonnWEI dongles are, though the most stable in terms of what you get when you buy, not the best to run CanZE with, especially when fast performance is required. Think like the Driving, Braking and Consumption screens. For the technically inclined: this is because these type of dongles are designed to query, in their own pace, car computers using the ISO-TP protocol, where we had to misuse them to also intercept the raw, operational data. Most of that data can also be obtained through ISO-TP, but again, it would have been slow and we would have to do a lot of reverse engineering to make that work.

And then of course there are a ton of dongles that don’t work at all as they have severely stripped functionality.

With the availability of cheap ESP32 micro-controllers, that can do CAN, WiFi and Bluetooth, time had come to finally build our own hardware. In the next posts, I will describe the hardware, the software and the testing. For now suffice to say that we have something working over Bluetooth, with an unmodified CanZE instance on Android, for under 20 euros hardware, and it is blazing fast.

For those who want to follow in our footsteps and want to build their own dongle, let me start with a shopping list. Especially useful if you order on AliExpress!

  • ESP-32 development board. Maybe something like this.
  • CANbus transceiver board. Needs to be 3.3 volt, so for instance this.
  • Some sort of housing / SAE J1962 (“OBD2”) connector. My advice would be to buy the cheapest dongle you can get and gut it. You should be able to do that for under 3 euros.
  • A small 12 to 5 volt converter. While the ESP development board can take 12 volt, that is a maximum and I wouldn’t advice to run it on the car’s 13.5 volt. Example.
  • Some veroboard, wire, and other generic craft and soldering stuff.

Stay tuned!

9 Comments on “A DIY CanZE dongle

  1. Wooow…
    Great idea!!!
    I definitely need one!
    It would be a very very nice thing, if it could send the Zoe data to home automation systems directly over HTTP. Like OpenHAB, EmonCMS, Node-Red etc.
    An OpenEVSE integration where the charge-end battery percentage limit would be able to set… hmmm…

    • Thank you! It is not doing any http now, just accepting commands over serial-over-bluetooth. But if course we will open-source the code when it is somewhat stable. Once telnet-over-WiFi is in there (also needed for iOS), you can start thinking about querying the car over WiFi, or even pushing data. But for that, code contributors are needed 😉

    • I was already thinking about building an ESP32-based dongle and doing something like that, though probably via MQTT. Once the code is available and I have the dongle up and running, I might take a stab at it.
      That OpenEVSE use case is also something I was thinking of. Additionally you could emulate plug-and-charge as supported in CCS: Disable the EVSE by default, enable it when the dongle shows up on the network and starts sending updates. And of course making nice graphs is also a good reason.

  2. Has anyone trief to make a CanZE dongle using a ESP-8266. Since its the ESP-32 predecessor and i have a couple of 8266’s lying around i was hoping they might work too.

    • ESP32 has built-in CAN support, but ESP8266 does not. So you will need some additional hardware …
      Next you could use the CanSee code, but probably you will need to adjust the CAN related code …