The CANable: a small USB to CAN adapter


The CANable is now available for purchase on the Protofusion store!

The CANable is a hardware clone of Eric Evenchick’s CANtact project, an open-hardware USB to CAN adapter compatible with socketcan. I took his design and reworked the hardware to be a bit more suitable for my personal needs, with a screw terminal instead of a DB9 connector and a much smaller PCB.

The design is open-source hardware and the schematic is nearly identical to CANtact except CANable uses the STM32L042’s onboard high speed oscillator, has a micro-USB connector, and has a smaller 3.3v regulator. Feel free to pull down the hardware source and the firmware (a forked version of the CANtact firmware that uses the internal oscillator instead of an external crystal).

Update: CANable support has been merged into the CANtact firmware. Just change the define in main.c for CANable and you should be good to go!

I’m currently not producing these boards, but you may fabricate your own from the source files linked above. If there’s enough interest I may consider fabricating and selling some boards. Drop a comment if you’re interested!

Ethan is a computer engineer and open source hardware/software developer from Michigan. He enjoys AVR and linux development, photography, mountain biking, and drinking significant amounts of home-roasted coffee. Find out more at

Tagged with: , , ,
Posted in Projects
15 comments on “The CANable: a small USB to CAN adapter
  1. cbjamo says:

    Nice board! I’d be interested in some, depending on the price each 5-10 units. Has the switch to the internal oscillator caused any problems? or is it stable enough to not matter?

    • It hasn’t caused me any issues so far. I plan on testing at 1M next week and I’ll see how it holds up. The internal 48MHz PLL is trimmed from the USB module so I don’t anticipate having any issues (and, for what it’s worth, USB is more timing-sensitive than CAN). I’ll post something here if I encounter any issues!

  2. Fredrik says:


  3. yue says:

    Could I ask you use which software layout?

    • Yup, the design is in Eagle. CANtact is actually in KiCad and I wanted to fork it using the same cad software, but I haven’t had time to become familiar with KiCad yet!

  4. Hey, i’ve made a mod of you module. I hope this is ok?

    At the FabLab Karlsruhe (Germany) we build an Automation System based on CAN. We use RJ45 for 2 CAN busses and 24V.

    The Mod:

    In the repo are also our CAN Nodes with the same STM M0.

    • David,
      Awesome work! Glad you were able to easily mod my design to meet your needs. What are you controlling with your automation system?

    • Our HW is nearly ready, but the Firmwares are in an early stage.

      The main plan was a Sensor Net. But now it will make much more. Sensors all over the Lab, outside and in all Maschines, Maschine Hour Counter, Maschine Access Control and the Access Control for our Rooms.

      We hope in 1 Year we have reached a Productive Stage 😀

  5. Robert Bahn says:

    Hey Ethan!
    i´m very excited in building my own CANable… I alredy bought the things i have to buy. Have you planned to produce some PCB´s for building it? It would be very find if i could get one. That would be great!
    Kindly regards from Germany
    Robert Bahn

  6. Povilas says:

    How not to burn it. Is there relevant resistors ? Is it Possible to connect RS232 to usb cable to read cars CAN messages. in example light sensor from Mercedes EIS. If I am correct.

  7. Dave says:

    Hi Ethan! Great board, just built my own and works great!
    However, I found an issue running my sw on a tablet.
    First I built my sw, on VS, running on Windows10 i3, all good here.
    I run same sw, on a W10 tablet (Atom) and it gets really laggy and slow.
    Could it be a problem related to the usb, driver? Buffers? The computer performance vs tablet’s? I have to say that processor load is not that high, just banging serial port with data both ways in/out.
    Any suggestions here are more than welcome!

  8. Excelent item. I am evaluating this as a substitute for Peak Systems PCAN-USB (at 1/0 the unit cost).
    Your product is a real winner.

    My test program is a Python 2.7 application.

    For others, a ‘small’ system configuration issue it took a whole day to track down. On an Lubuntu system running on an old Dell D610 I am setting up as a test bed system, the test program would appear to send severeal messages, then just stop. I tracked this to Pyserial write fail. I found a fourm,, where someone had a similar problem with other hardware in the generic CDC-ACM class. Turns out modemmanager was attaching (CDC-ACM communications interface) to the hardware and interfering. Solution, toss modemmanager:

    sudo apt-get –purge remove modemmanager

    Works like a charm.

  9. Dario says:

    Great project, i’m forking it and changing it to a mpci express board, i will share my experience, i like the crystal less design, would you please confirm that you had no issues with 1Mbit networks ? I will swap the transciver to a 3.3v (TI SN65HVD230

  10. liviu says:

    Hi, does this or the original cantact supports can packets with ID of 29bits?

1 Pings/Trackbacks for "The CANable: a small USB to CAN adapter"
  1. […] For more Details: The CANable: a small USB to CAN adapter […]

Leave a Reply

Your email address will not be published. Required fields are marked *