Using CAN in the BalenaOS

1 Test Environment

1.1 Hardware

ED-CM4SEN

1.2 Software

The deivce has installed BalenaOS, you can find it on balena-cloud, and the device status is online. balena-cloud

2 Steps to Use

2.1 Download Repository

Cloning repository

git clone https://github.com/edatec/balena-ubuntu-cantest.git

2.2 Dashboard

2.2.1 Add dtoverlay

Download ed-mcp2515.dtbo and copy it to /mnt/boot/overlays/folder

Download link:dtboopen in new window

2.2.2 Setting

device-configuration

Disable SPI

RESIN_HOST_CONFIG_dtparam

Add dtoverlys:

RESIN_HOST_CONFIG_dtoverlay

Content of the setting:

# CM4 SEN
"vc4-kms-v3d","spi6-1cs,cs0_pin=18,cs0_spidev=disabled","ed-mcp2515,spi6-0,oscillator=16000000,interrupt=7"

# CM4 HMI/IPC263x
"vc4-kms-v3d","spi6-2cs,cs0_spidev=disable,cs1_pin=17,cs1_spidev=disable","ed-mcp2515,spi6-0,oscillator=16000000,interrupt=15",”ed-mcp2515,spi6-1,oscillator=16000000,interrupt=14

2.2.3 Adding release

Log in to balenaCloud,then you can find the 'Release,click' 'Add release'。

releaserelease1

2.2.3.1 With balenaCLI

Download the test repository

git clone https://github.com/edatec/balena-ubuntu-cantest.git

Push the repository to release, replace <> with your username

balena login && balena push <your-username>/test

2.2.3.2 With Git

Download the test repository

git clone https://github.com/edatec/balena-ubuntu-cantest.git

Push the repository to release, replace <> with your username and your fleet

git remote add balena your-username@git.balena-cloud.com:<your-username>/<your-fleet>.git
git push balena master

2.3 Connect to device

Log in to the appliance and run the following command to check the status of docker:

balena ps -a
compose

My container named test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3,please replace it with the name of your real container:

balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "apt update"

# Install can-utils
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "apt install -y iproute2 can-utils"

# Set the bitrate of can0
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "ip link set can0 type can bitrate 500000"

# Enable can0
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "ip link set can0 up"

# Send 1122334455667788 by can0
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "cansend can0 123#1122334455667788"

# Dump data by can0
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "candump can0"