-
Système à jour, Klipper à jour et dfu-util installé ( sudo apt-get install dfu-util )
-
Installation de CanBoot
git clone https://github.com/Arksine/CanBoot
cd CanBoot
make menuconfig
make
- Passer en DFU-mode (JUMPER; Reset + Boot; Relâcher Reset; Relâcher Boot)
lsusb
pour récupérer id de la cartedfu-util --list
pour vérifier que l'appareil est accessiblesudo dfu-util -a 0 -d 0483:df11 --dfuse-address 0x08000000:force:mass-erase -D ~/CanBoot/out/canboot.bin
- Créer fichier
/etc/network/interfaces.d/can0
avec le contenu suivant :
auto can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
sudo wget https://upyun.pan.zxkxz.cn/shell/can-enable -O /usr/bin/can-enable > /dev/null 2>&1 && sudo chmod +x /usr/bin/can-enable || echo "The operation failed"
sudo cat /etc/rc.local | grep "exit 0" > /dev/null || sudo sed -i '$a\exit 0' /etc/rc.local
sudo sed -i '/^exit\ 0$/i \can-enable -d can0 -b 1000000 -t 1024' /etc/rc.local
-
Reboot
-
Placer jumpers 120R sur la board
-
Config Klipper pour canboard
-
make clean && make
-
sudo service klipper stop
-
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
-
~/klippy-env/bin/python ~/klipper/lib/canboot/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u 5b06f23bc9ca
-
sudo service klipper start
Ca ne marche plus.
Le site de https://upyun.pan.zxkxz.cn/shell/can-enable est down. Je propose une alternative qui n'utilise pas de script tout fait, mais qui fait la meme chose, faut juste mettre a peine plus les mains dans le cambouis :
Suivre ton tuto jusquà l'étape 6
Remplacer la configuration CAN au fichier :
sudo nano /etc/network/interfaces.d/can0
Contenu :
auto can0
iface can0 inet manual
pre-up /sbin/ip link set can0 type can bitrate 1000000
up /sbin/ip link set can0 up
down /sbin/ip link set can0 down
Sauvegarder le fichier (Ctrl+O, Enter, Ctrl+X)
sudo nano /etc/module
Ajouter à la fin du fichier :
can
can_raw
can_dev
Sauvegarder le fichier (Ctrl+O, Enter, Ctrl+X)
sudo apt install can-utils
sudo nano /boot/config.txt
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
Sauvegarder le fichier (Ctrl+O, Enter, Ctrl+X)
(moi j'utilise un bigtreetech U2C V2.1 et un ebb42, donc je n'ai pas besoin de l'étape 4.)
sudo nano /etc/udev/rules.d/80-can-u2c.rules
Contenu :
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="606f", MODE="0666", TAG+="systemd", ENV{SYSTEMD_WANTS}="slcan.service"
Sauvegarder le fichier (Ctrl+O, Enter, Ctrl+X)
Ensuite, créer un service systemd qui s'occupera de configurer l'interface CAN :
sudo nano /etc/systemd/system/slcan.service
Contenu :
[Unit]
Description=CAN interface setup for U2C
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'modprobe can && modprobe can_raw && modprobe gs_usb && ip link set can0 type can bitrate 1000000 && ip link set can0 up'
ExecStop=/bin/bash -c 'ip link set can0 down'
[Install]
WantedBy=multi-user.target
Sauvegarder le fichier.
Enfin, activons et démarrons le service :
sudo systemctl daemon-reload
sudo systemctl enable slcan.service
sudo udevadm control --reload-rules
Sauvegarder le fichier (Ctrl+O, Enter, Ctrl+X)
Maintenant, en débranchant/rebranchant le U2C :
udev détectera automatiquement l'appareil
Le service systemd configurera l'interface CAN avec les bons paramètres
Enfin, voilà la commande pour vérifier l'état suite au débranchement/rebranchement de la carte controle CAN ou redémarrage du systeme :
ip -details link show can0
et celle permettant d'afficher le trafic can (nécessite can-utils) :
candump can0