Coder Social home page Coder Social logo

robotell-usb-can-python's Introduction

Robotell-USB-CAN-Python

Python program for Robotell USB-CAN Adapter

Background

I've bought a Robotell USB-CAN Adapter from AliExpress.
USB-CAN Adapter

The Windows application is published here.
The link described as "ourdev_627692IXWNNX.rar" in the page is the Windows application.
But I can't understand Chinese.

So, I analyzed the communication message that flows through USB and created a new application with Python.

Software Requiment

  • pyserial
$ sudo apt install python3-pip python3-setuptools
$ python3 -m pip install pyserial   
  • socat
$ sudo apt install socat   

How to use

$ git clone https://github.com/nopnop2002/Robotell-USB-CAN-Python
$ cd Robotell-USB-CAN-Python
$ python ./usb-can.py --help
usage: usb-can.py [-h] [-p PORT] [-s SPEED] [-u UDP]
                  [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}]

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  open port
  -s SPEED, --speed SPEED
                        can bit rate
  -u UDP, --udp UDP     UDP receive port
  -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Set the logging level
  • port
    Communication port.
    Default is /dev/ttyUSB0.
    Be sure to specify the correct port in Windows 10.

  • speed
    CAN bit rate.
    Default is 500Kbps.
    Supporting speed is 1M/800K/500K/400K/250K/125K/100K.

  • udp
    UDP port number for receiving commands from the outside.
    Default is 8200

  • log
    Log level.
    Default is WARNING.

Information of the USB-CAN Adapter

These displays are internal information of the USB-CAN Adapter, not CAN FRAME.

  • BAUDRATE is the current speed.
    0x20-0xA1-0x07-0x00 is 0x0007A120(=500,000)

  • VERSION is firmware version.

  • FILTERxx is the current receive filter setting.
    The initial value enables reception of all CAN FRAMEs.

BAUDRATE ID: 0x01FFFED0  DLC: 4  Data: 0x20 0xA1 0x07 0x00
VERSION  ID: 0x01FFFFE0  DLC: 8  Data: 0x01 0x00 0x00 0x00 0xC5 0x24 0x00 0x08
CPUINFO0 ID: 0x01FFFFF0  DLC: 8  Data: 0x57 0xFF 0x73 0x06 0x67 0x75 0x54 0x55
CPUINFO1 ID: 0x01FFFFF1  DLC: 8  Data: 0x11 0x30 0x17 0x67 0x00 0x00 0x00 0x00
ABOM     ID: 0x01FFFEB0  DLC: 8  Data: 0x00 0x00 0x00 0x00 0xC5 0x24 0x00 0x08
ART      ID: 0x01FFFEA0  DLC: 8  Data: 0x00 0x00 0x00 0x00 0xC5 0x24 0x00 0x08
FILTER00 ID: 0x01FFFEE0  DLC: 8  Data: 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00
FILTER01 ID: 0x01FFFEE1  DLC: 8  Data: 0x00 0x00 0x00 0xC0 0x00 0x00 0x00 0x00
FILTER02 ID: 0x01FFFEE2  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER03 ID: 0x01FFFEE3  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER04 ID: 0x01FFFEE4  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER05 ID: 0x01FFFEE5  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER06 ID: 0x01FFFEE6  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER07 ID: 0x01FFFEE7  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER08 ID: 0x01FFFEE8  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER09 ID: 0x01FFFEE9  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER10 ID: 0x01FFFEEA  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER11 ID: 0x01FFFEEB  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER12 ID: 0x01FFFEEC  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER13 ID: 0x01FFFEED  DLC: 8  Data: 0xFF 0xFF 0xFF 0x5F 0xFF 0xFF 0xFF 0x1F
FILTER14 ID: 0x01FFFEEE  DLC: 8  Data: 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00
FILTER15 ID: 0x01FFFEEF  DLC: 8  Data: 0xFF 0xFF 0xFF 0xBF 0xFF 0xFF 0xFF 0xFF

CAN transmission data

This tool accepts data to send via UDP Broadcast.
Open a new terminal and execute the following command:

$ chmod 777 transmit.sh
$ vi transmit.sh

Please change if necessary.

$ ./transmit.sh

CAN receive filter settings(Standard Frame)

This tool accepts filter to set via UDP Broadcast.
Open a new terminal and execute the following command:

$ chmod 777 stdmask.sh
$ vi stdmask.sh

Please change if necessary.

$ ./stdmask.sh

CAN receive filter settings(Extended Frame)

This tool accepts filter to set via UDP Broadcast.
Open a new terminal and execute the following command:

$ chmod 777 extmask.sh
$ vi extmask.sh

Please change if necessary.

$ ./extmask.sh

Running on Ubuntu 18.04.4

USBCAN-python-1

Running on Windows10

USBCAN-python-Windows

Trouble shooting

Change the log level when the program starts.
You can see receive & transmit packet.
USB-CAN -python-LogLevel

Using ESP32

The ESP32 includes a CAN controller that supports the CAN 2.0B specification standard frame format (11-bit ID) and extended frame format (29-bit ID).
With the ESP32, you can use Windows applications.
https://github.com/nopnop2002/esp-idf-CANBus-Monitor

robotell-usb-can-python's People

Contributors

nopnop2002 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

robotell-usb-can-python's Issues

Contact me

Hello,

Can you write me fhartavi @gmail.com , i need talk with you 1to1 sir.

Regards,

Transmit and Receive

Is there any video tutorial how to use this on windows 10? I still can't use this

Exe file

Is it posdiple to compile the pytuon version to an executable win10 file?

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.