CAN 2.0A/B Debugger

This device is meant to help hackers without specialized tools to develop and communicate with CAN networks.

Similar projects worth following
CAN is my favorite communication protocol. It's elegant, efficient and reliable, but it's not without its own flaws. Implementing CAN for beginners is hard, tools may be expensive or hard to access, not many MCU support CAN. That's why I want to share with you this project.

CAN 2.0A/B Debugger is supposed to allow you communicate with CAN bus, sending / receiving CAN frames using PC based application. Device will be connected using USB, and seen by the system as CDC device (COM).

Additional functionality may cover monitoring CAN voltage levels, small power source with current measurement, controlling using additional UART port.

I'm developing a tool that I need myself, I hope that you will find this useful as well.

This project will consist of three main parts: PCB project and schematics, MCU software and PC application. I will publish all source code and designs when ready and tested. I mostly use free software so you shouldn't have any problems recreating my project.
I'm new to open source / hardware, so I will welcome any help and tips.

  • Working on Application

    Tomasz Targiel08/21/2014 at 06:53 0 comments


  • Prototype

    Tomasz Targiel08/10/2014 at 11:04 0 comments

    Prototype board is ready, now is time for software ;)

    I modified design a little, updated schematics will be uploaded later.

  • Design decisions and CAN basics.

    Tomasz Targiel07/30/2014 at 09:38 0 comments

    The very first question that more experienced developers may ask, is why did I choose Freescale MK40 microcontroller for this project. The answer is simple, it has CAN and USB peripherals and... I have already couple of them in my possession ;) . Generally Freescale MCUs thanks to CodeWarrior and Processor Expert, are easy to use for beginners, and speedup development of my projects quite nicely.

    Voltage dividers and resistor on +5V line.
    Because other function of this device is to be mini power supply for my other projects, I added 1R resistor on output +5V line to measure output current. Max current supplied by USB (2.0) is 500mA, so maximal voltage drop on 1R resistor is 0.5V. Usually my projects use 3V3 linear regulator so 4.5V is more than enough. I use 3V voltage reference so all analog signals have to be reduced bellow this value. Thats why I used voltage dividers.


    MCUs that have CAN controller are not common, but even if you have state of the art device, you need  external CAN transceiver to control voltage levels of CAN bus. Logical signals are represented by difference in voltage levels between CAN high an low lines. Voltage on those lines are different than voltages representing logic signals on MCUs. That's why we need external device to communicate with CAN bus.

  • Schematics and PCB design ready!

    Tomasz Targiel07/30/2014 at 08:34 0 comments

    I finished design of my first prototype. I managed to fit everything on one side of PCB, thanks to this it will by easy to make PCB.  I can create two-sided PCBs, but its always a pain to connect two sides using vias.  Later, after the software will be completed,  I will design "production friendly" PCB: smaller, two-sided, with gerber files.

    First prototype PCB should be ready during this week. 

    Project files (eagle)

    Project files (PDF)

View all 4 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates