i.MX9352 CAN/OBD board 2

This is CAN/OBD development board with the feature of accessing it remotely.

  • Designed to interact with cloud by writing Python, C++ and Rust code.
  • Typical application is to write C++ code to receive CAN signals from vehicle's OBD port and decode/encode CAN signals, write Python code to interface with cloud and upload received CAN signals to cloud.
  • Debian 12 and Python 3.11 running environment.
  • Can be powered via a vehicle's OBD Port.
  • Remote access makes it easier to debug software when it is installed on a vehicle.
  • Our example source code is: https://github.com/usb7/CAN-demo-python

image.png

Hardware specification:

  • NXP i.MX9352 dual-core A55 @ 1.7GHz, 1GiB LPDDR4X RAM and 16GB eMMC.
  • Runs our tinyDebian OS which is Debian 12.
  • CAN/OBD interface
  • Can be powered via a vehicle's OBD Port.
  • 2.4GHz WiFi by ap6212/brcmfmac43430
  • (Tested in China only, may work in EU) 4G CAT1 module by quectel EC800M
  • (Tested in China only, may work in EU) GPS by quectel EC800M
  • 6-axis gyroscope by IM600
  • Extened interfaces:
    • sdcard x1
    • USB Type-A x1
    • USB Micro-B serial debug x1
    • USB Micro-B OTG x1
    • 4G module SIM card x1
    • JTAG x1

Configure WiFi and register CAN board:

Quick test:

sudo apt update
sudo apt install can-utils
sudo ip link set can0 up type can bitrate 500000
sudo ip link set up can0

# send CAN signals to can0 interface, CAN ID is 123, data is DE AD BE EF
cansend can0 123#DEADBEEF
# receive CAN signals from can0 interface
candump can0
# write received CAN signals into log file
candump can0 -l logfile.log

# download file from CAN board
sz logfile.log
# upload file to CAN board
rz

Reference: