Giter Site home page Giter Site logo

canchovy's Introduction

CANchovy USB-CAN Interface

This repository contains the design file for an isolated USB-CAN interface PCB. It is based upon the MKS CANable V2.0 and is compatible with the CANable V2.0 firmware. It connects to the CAN bus via RJ45 connectors which can be configured with whatever pinout you require!

PCB-Top

PCB-Top

Features

  • Firmware compatible with CANable V2.0 firmware - can be flashed & updated with the CANable 2.0 web updater.
  • RJ45 pinout configured via solder-able jumpers.
  • Galvanic isolation between CAN port and USB.
  • Two RJ45 connector in parallel allows for inserting inline on bus - all eight signal are passed through.
  • DIP switch to enable or disable CAN termination.
  • DIP switch to enable silent mode, preventing the CANchovy from transmitting on the bus in hardware.
  • JLCPCB basic parts used where possible and all parts available for JLCPCB assembly service. Five CANchovies fully assembled with postage costs around $20 per CANchovy.
  • 3D printed case design files.

Status

Assembled CANchovies from JLCPCB of both revision A & B have been tested and work correctly. The only issues with these version were silkscreen issues.

Revision C has the silkscreen fixed and is ready to manufacture and use.

Firmware

As the CANchovy is based upon the MKS CANable V2.0, it is compatible with firmware which is compatible with the MKS CANable V2.0.

There area couple of suitable firmware options - which firmware you will want to use really depends on your use case.

gs_usb

Using a firmware version which uses the gs_usb protocol will mostly be useful for SocketCAN on Linux, but python-can does support the gs_usb protocol on all platforms. (Note: The Linux kernel only supports CAN FD with the gs_usb driver after version 5.18.)

SLCAN

SLCAN is a protocol which operates over a serial port. Nearly all OS's have support for serial ports and so is very cross-platform. However, support for SLCAN is not very widespread.

You can also mount the serial port as a SocketCAN port on Linux (E.g. as described here.), however, it does not support FD CAN at this time.

FD CAN is possible with the SLCAN firmware, but even fewer programs support FD with SLCAN (if any?). It may be a viable for custom applications where non-Linux is a requirement and Python is not an option.

Configuring RJ45 Connections

As mentioned above, a feature of this board is that the RJ45's pinout is user configurable. By soldering one jumper for each of the three connections (0V, CAN_H, CAN_L) on the rear of the board, your custom CAN pinout over RJ45 can be supported!

Simply bridge one of the solder jumpers in each of the silkscreen boxes (labelled: 0V, CAN_H & CAN_L) to connect each signal to the corresponding pin number of the RJ45 connectors.

⚠⚠⚠ Care must be taken to ensure no two signals are connected to the same RJ45 pin! ⚠⚠⚠

PCB-Top

Ordering

Gerbers, BOM, etc. can all be found in the releases area.

When ordering from JLCPCB, is is suggested to select "JLC04161H-7628" under the controlled impedance option, although the USB run is so short that even non-controlled impedance stack-ups will likely work too.

canchovy's People

Contributors

fred314159265 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.