一:配置can网络。速率我用的是100万
sudo nano /etc/network/interfaces.d/can0
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ip link set $IFACE txqueuelen 1024
按ctrl+x保存,按Y键,保存后再重启。
接下来我们跳过第一步给上位机也就是pi安装klipper,
二:编译主板的canboot固件并刷机。
先进入用户根目录
cd ~
再安装katapult
git clone https://github.com/Arksine/katapult
进入katapult的目录
cd katapult
打开编译菜单
make menuconfig
根据不同处理器,来设置这个菜单。
can bus 速度保持默认就好
设置好按Q键,问是不是要保存,按Y键保存
然后编译
make clear
make
在katapult文件夹的out目录下会生成两个固件文件,katapult.bin和canboot.bin,这两个都可以使用。
我们还是用新版katapult.bin。
接下来,我们要把刚刚编译的katapult.bin刷入3d打印机主板。
我们可以直接使用pi,让主板进入dfu模式来刷。
主板先断电
使用跳线帽开启主板的usb type-c供电以并使用跳线帽开启主板的dfu模式。
使用usb type-c数据线连接上位机和主板。
octopus连接上位机之后只需要按一下reset就可以进入dfu模式。
检查有没有正确进入dfu模式
lsusb
能看到这个dfu mode就表示进入了dfu模式。
这里,我们一定要记下这一段id号。
然后,使用这段命令,把katapult.bin给刷进去,这里最后面的就是刚刚记下来的id号,需要sudo权限,输入密码,回车后开始。替换命令末尾的id号。
sudo dfu-util -a 0 -D ~/katapult/out/katapult.bin --dfuse-address 0x08000000:force:mass-erase:leave -d 0483:df11
这里需要二三十秒,耐心等待一下。
三:给can板编译固件和刷机。
这个步骤需断开上位机和3d打印机主板的连接。也暂时不要连接主板和can。
仅连接上位机和can
can 板进入dfu模式的方式都一样,按住boot按钮不动,再按一下reset按键。
刷机之前还需要启用can板的usb供电以及接上120r终端电阻。不同主板的跳线帽位置不一样。
使用usb type-c数据线连接上位机和can板,进入dfu模式。
检查一下
lsusb
rp2040版本比较特殊,看到的是boot 结尾的,其他stm32版本的会显示为dfu mode
记住这里的设备id。
编译can板的固件
进入klipper 目录
cd ~/klipper
进入klipper编译菜单
make menuconfig
这里也是按照can板处理器来修改编译参数。
canbus 速率保持和前面的一致
q键退出,y键保存
编译
make
烧录
make flash FLASH_DEVICE=2e8a:0003
烧录完成后,全部设备断电,拔掉3d打印机主板以及can板上的usb供电跳线帽和boot0跳线帽。
只使用usbc线连接3d打印机主板和pi,运行一次canbus设备检查。
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
可以看到有一个设备,记下这个id,它就是主板的mcu id
然后全部断电,再完整安装整个系统,主板、can板和上位机。按这个图所示。
开机,再检查一下设备
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
可以看到有两个canbus设备,记下这两个id。前面已经知道了主板的mcu uuid,那另一个就是can板的uuid。
在printer.cfg配置,修改canbus_uuid:
canbus_uuid:
上传can板配置文件,修改canbus_uuid:
canbus_uuid:
每次开机自动开启can
sudo nano /etc/rc.local
ip link set can0 up txqueuelen 1024 type can bitrate 1000000
键盘输入 Ctrl+o,回车保存,输入Ctrol+x 退出编辑,重启
sudo reboot
常用命令
重启
sudo reboot
查看IP地址信息
ip a
查看网络设备的当前状态
ifconfig