USB-CAN Bus

The purpose of this project is a simple and easy to use USB <> CAN bus interface. Heart of the circuit is an Atmel AVR ATmega162 microcontroller which controls the Communication between FTDI FT245BM USB to parallel converter and Philips SJA1000 Stand-alone CAN bus controller.
The SJA1000 is memory mapped into memory space of the AVR, which reduces data and address line handling and increases data transfer speed.
An FT245BM handles all USB communication and provides data transfer from and to PC application. An extra EEPROM can store the multi device template for the FT245BM.
A Philips PCA82C250/251 works as CAN controller interface.

Firmware is written in C, compatible to latest compiler version WinAVR.

The firmware is now compatible to run on a CANDIP module. The download include a pre-compiled firmware file to flash into a CANDIP module. Both pins for LED connection remaining the same.

See the CANDIP homepage for detail of the required hardware CANDIP/M162 .

Documentation and Source code

CAN-Control
CAN-Control
CAN-Control_v1.0b8.zip
Version: 1.08b
22.9 KB
10221 Downloads
Details
CAN-Control Source Code
CAN-Control Source Code
can_control.7z
5.2 MB
11748 Downloads
Details
CAN-USB Target files
CAN-USB Target files
CAN_BUS_Interface_v2_Target.zip
215.4 KB
6540 Downloads
Details
CANHacker
CANHacker
CANHackerV2.00.01.zip
Version: v2.00.01
1.8 MB
8205 Downloads
Details
EEPROM Template
EEPROM Template
Eeprom_Template.zip
550.0 B
5130 Downloads
Details
PCB in Gerber Format
PCB in Gerber Format
CAN_BUS_Interface_v2_Gerber.zip
262.4 KB
5110 Downloads
Details
Sourcecode
Sourcecode
Firmware_v1.09.zip
Version: 1.09
27.9 KB
6729 Downloads
Details
USB-CAN Bus Interface - Documentation
USB-CAN Bus Interface - Documentation
Documentation_Iss.F.pdf
Version: F
82.7 KB
15732 Downloads
Details
USB-CAN Bus Interface - Schematic & Board in Eagle
46.1 KB
9561 Downloads
Details
USB-CAN Bus Interface schematic
148.3 KB
19718 Downloads
Details
USB-CAN Bus PCB in PDF Format
223.7 KB
10357 Downloads
Details

CAN Hacker v2.00.01

Link

Homepage/Forum: www.canhack.net (German language only)

129 thoughts on “USB-CAN Bus

  1. I´ve got a problem with the CAN of the System. The SJA1000 doesn´t send an ACK to messages on the bus. Its possible to listen transmissions between other nodes though.

    Some idea what could cause this problem?

    thanks Aigna

  2. Hi Michael,

    I am wondering what is required to burn the firmware onto this board?
    (i am buying one from ebay ready fabricated and was thinking about possible firmware changes or updates)

    thanks

  3. Hello

    Thanks for a cool project ( usb-can ) and even better since you use an AVR !!!

    Cheers

  4. CAN_FD with USBCAN. Making and adaptor PCB with a TJA1145 tranceiver IC in place of the PCA82C250. Writing a patch for the firmware and changing the software. Will this work?

  5. Can this be used as J2534 (pass through) device? I read about this project on the Sardine CAN page / (hacking volvo) blog. Sardine CAN is a J2534 capable device and windows dll also support usage of your Can-Usb device.
    Unfortunately i couldn´t find schematics for Sardine CAN yet. Only read something about it´s arduino based but nothing more specific. 🙁
    By the way… your captcha is crap. It doesn´t work well! All adjusted right but says: wrong captcha answered.

      • Again? This has never been asked before here nor you mentioned it somewhere on this page.
        Can you describe the difference between a normal USB-CAN interface and a J2534 interface?
        According to wikipedia and other sources J2534 is just a CAN standard.

        • About pass thru was asked for one of my other interfaces, I mixed that.

          The difference between my interface and a J2534 is the fact, that mine uses a protocol (on PC side via USB) that is based on lawicel and doesn´t comply with any standard. For a J2534 interface the protocol must be compliant to the J2534 API, so any OBD software that is J2534 compliant can use such interface to talk to the vehicle.

          My interface is open source and hardware, feel free to implement J2535 API layer. On the other hand, I got a J2534 interface for my Prius from eBay, as cheap as 35€. So it it worth the efforts to make your own?

          • I thought the windows dll from Sardine CAN would already do this job. But i am not sure. I asked the owner of the hacking volvo blog some questions but didn´t get any reply yet.
            If you mean the Mini VCI device as J2534 device… the cheap ones base on a leaked alpha firmware from the manufacturer xhorse. These devices work but as far as i have heard speed and liability are not near any of the commercial devices (that cost about 100€ up two thousands of €s) like original xhorse mini vci, lawicel CAN-USB device, Cardaq Plus, Mongoose and all the other devices i forgot.

          • Finally found the schematics. They are well hidden. There is a text file on github that tells you to buy a arduno uno r3 and a can shield from sparkfun.
            Maybe i´ll buy such an arduino but never the shield. It is way too expensive for that few components on it. You can easily get those components for less than $10, the shield costs about $40!!!

        • You can´t make J2534 device from CANHacker firmware. I tried to do this. To make it, you should fully rewrite source code of them. Protocol of CANHacker is too slowly for true J2534 device. If you would like to to that, i´s better to use another CPU, such as ARM.

  6. hallo,

    i would like to know whether the CAN usb can be used to monitor data in the can bus through an Embedded PC of Beckhoff? it runs win CE os

    • The interface itself will work with any PC either through legacy serial port or USB-Serial converter. See the documentation for the control protocol.

  7. Hi Does this code work on a standard candip module via the rs232 port. i.e. no ftdi chip circuit added?

  8. Could you please tell me what the maximum data throughput rate that it can log at without missing messages? Can it log a nearly fully loaded 1Mbit/s can bus using Can Hacker or similar?

    • 1Mbit is possible with the FTDI D2XX driver, tested that. But not sure about the VCP driver and CAN hacker.

  9. Nice project !
    Red Led: Continuous light if a bus error was detected.
    Ok, is there any way I can reset it and switch off Red led until next Bus error is detected ?
    (other than power cycle off and on)
    Thanks

  10. hello great project, can an arduino type board do the job ?? like a mega 2560, and a due in a drawer, or the memory mapping will be a problem ?

    I need to sniff the protocol for a discontinued trimble can bus accessories called lb25, its a row of 27 leds used to know visually a level height.

    thks

    • ATmega2560? It has an external memory interface so could work. Code needs to be adapted though.

  11. Good day! I´m sorry for my bad english. He does not want to work Vindovs 7-32 san control 1.0v8. Error “program has stopped working” .Not know why?
    Ceases to work when connected to the bus at a rate of CAN 500 kbit/s

  12. Hi Michael

    The documentation and source code are no longer accessible. I’m looking for the latest firmware and Eagle files

    Many thanks

    • That was a site wide fuck-up of all downloads caused by a broken database restore. I missed that.

      All fixed thanks for spotting and reporting.

Leave a Reply

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

Comments will be moderated! Spam deleted immediately!
Before you submit form:
Human test by Not Captcha