BTT Pi2 控制3D打印机

此文仅记录使用BTT pi2(上位机)、octopus pro(下位机),TMC5160和TMC2209(电机驱动)、ADXL345(共振补偿)进行双Z轴控制现有的3D打印机前期准备操作步骤,图片一部分为借鉴,如果有疑问或错误敬请指出,共创良好资源共享。

打印机是XYZ+Z1轴进行控制,Z轴是热床移动。

1.准备6GB以上 SD卡

BTT Pi2系统镜像:Releases · bigtreetech/CB2 · GitHub选择klipper版本下载

2.烧录系统镜像到SD卡

下载Raspberry Pi Imager(树莓派的镜像烧录器)

安装完成后,打开文件第一个选项不选择,第二个选项选择(最下边的)Use custom再去选择下载好的.img镜像文件,第三个选项选择需要烧录到的SD卡(烧录时会格式化SD卡)

would you like to apply OS customization settings?   选择NO

删除数据?选是

烧录过程中会自动弹出SD卡,等待烧录完成。

3.配置显示屏

打开SD目录下的armbianEnv.txt文件

配置HDMI屏。自己用的HDMI屏

配置DSI屏

配置SPI屏

4.设置WIFI(网线跳过)

4.1SD卡设置wifi

此处设置的是默认wifi,如果有显示屏可以设置wifi的话这步可以跳过。

烧录完成后,打开SD卡文件夹,有一个system.cfg文件,记事本打开,找到WIFI name将双引号中的字符改为wifi名,其下pswd改为wifi密码,有触摸屏的话也可以在触摸屏上找到网络去连接wifi。

修改完后将SD卡插入PI2的SD卡槽内,USB-typc/24v供电等待系统启动(此时是以SD卡的系统启动,系统镜像并没有烧录到上位机板上,即拔卡后上位机也不能正常使用),大概1-2分钟设备连上wifi会被分配一个ip。

4.2 触摸屏设置wifi

我是用的是HDMI7 V1.2触摸屏。类似手机连接wifi,连接上后会自动分配一个IP。信号不好的话可以增加天线在上位机。如果上位机使用typec供电,接较多外设时可能会因供电不足反复重启,建议使用24V供电使用触摸屏连接wifi总是很慢,还会出现连接不上/没有IP错误,多试试

5.安装SSH软件

 安装SSH软件:mobaXterm:MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition

 将上位机板连接wifi后分配的ip写入ssh的remote host中点击ok,使用ssh时PC需要和上位机板处在同一个wifi环境下。

需要登陆的界面,账号密码都会提供,输入密码时不会显示字符

登录进去后的界面如下

6.以EMMC启动系统

上位机插入SD卡后,将SD卡的系统烧录到其EMMC中。

在SSH中输入nand-sata-install命令,出现的界面后选择2。

回车后出现界面,选择yes

出现如下界面,选择1,并ok

等待烧录完成即可。

7.配置下位机主板


在SSH的命令行里输出cd klipper     回车

make menuconfig  回车  ,进入可视化的菜单界面,这些选项是配置下位机IO晶振等参数的!!

勾选第一个会显示下边的选项,根据商家提供的数据选择(我这里是乱选的),设置完成后按esc,y保存

在klipper目录下输入make 回车进行编译,最后会提醒生成了个bin文件。

找到这个bin文件右键download到桌面上,移到SD卡中,改名为firmware.bin。

7.更新下位机固件

将只含有firmware.bin文件的SD卡插入下位机主板的SD卡槽,单击reset键,固件会自动更新,大概等半分钟左右,拔出SD卡,查看文件是否变成FIRMWARE.CUR,若是则表示烧录固件完成。

在SSH命令行输入,ls(空格)/dev/serial/by-id,查询到的设备号复制下来之后要用

8.配置klipper

 到网页下载开发板对应的generic_xxx.cfgBIGTREETECH-OCTOPUS-V1.0/Firmware/Klipper at master · bigtreetech/BIGTREETECH-OCTOPUS-V1.0 · GitHub

打开浏览器,网址输入上位机的ip地址,自动打开网页版上位机mainsail。

点击左上角三个横线点机器选项,上传下载的generic_xxx.cfg文件

需要修改引脚或者增加电机驱动可在generic_xxx.cfg文件中修改,可以参考概述 - Klipper 文档中的配置参考或者根据docs目录下的CONFIG_Reference.md可查看到配置所有参数,根据需要选用配置参数,在[mcu]栏下将by-id/后的设备号改为自己的下位机主板设备号,表示控制的是该主板(后期使用多主板或者其他含有mcu芯片时可以区分,不会报错)

打开printer.cfg文件,最后一行增加include包含该generic_xxx.cfg文件->保存并重启,

9.驱动配置

9.1增加TMC电机驱动

我使用的是TMC5160控制电机的X,Y,Z,Z1轴;TMC2209控制挤出机电机

打开generic_xxx.cfg文件,编写stepper_x轴驱动,实际参数及IO口根据实际选择,XYZZ1使用的为TMC5160电机驱动,SPI通信,可以支持step/dir驱动模式,接线根据官方提供引脚接线。Y轴ZZ1轴类比配置,双Z轴时有部分参数只需要配置一次。

# Driver0
[stepper_x]
step_pin: PF13  #步进角
dir_pin: PF12    #方向角
enable_pin: !PF14    #使能角
microsteps: 16    #微分
#full_steps_per_rotation: 200
rotation_distance: 40    #步距
endstop_pin: !PG6    #限位
position_endstop: 0    #位置
position_max: 400    #位置
homing_speed: 20    #归0速度
homing_retract_dist: 0    #归0方向

[tmc5160 stepper_x]
cs_pin: PC4
spi_bus: spi1  #硬件SPI
interpolate: True    
run_current: 2    #运行电流
stealthchop_threshold: 10000
#spi_software_mosi_pin: PA7
#spi_software_miso_pin: PA6
#spi_software_sclk_pin: PA5

# Driver3
[stepper_z] 
#z_left
step_pin: PG4
dir_pin: PC1
enable_pin: !PA0
microsteps: 16
rotation_distance: 10
endstop_pin: !PG11
position_endstop: 0
position_min: -1
position_max: 400
homing_speed: 5
homing_retract_dist: 0

# Driver4
[stepper_z1]
#z_right
step_pin: PF9
dir_pin: PF10
enable_pin: !PG2
microsteps: 16
rotation_distance: 10
endstop_pin: !PG12

挤出机配置,使用的是step/dir控制,没有用uart控制。generic_xxx.cfg是默认使用了加热器(挤出机和热床),未插热敏电阻会报ADC相关错误。

# Driver2_1
[extruder]
step_pin: PF11
dir_pin: PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 32
nozzle_diameter: 0.400 #喷嘴孔径
filament_diameter: 1.750  #耗材直径
#pressure_advance : 0.05  #压力提前,改善减速角溢出耗材
heater_pin: PA3 # HE1
sensor_pin:  PF5 # T1
sensor_type: EPCOS 100K B57560G104F    #热敏电阻类型
control: pid    #PID通过触摸屏选择校准
pid_Kp: 28.796
pid_Ki: 1.613
pid_Kd: 128.504
min_temp: -100    #避免未接入热敏电阻时启动klipper报警adc采集超范围
max_temp: 250
min_extrude_temp: 30

#[tmc2209 extruder]
#uart_pin: PC6
#interpolate: False
#diag_pin: PG10
#run_current: 0.8
#sense_resistor: 0.110
#stealthchop_threshold: 10000

配置完成后如果电机异响,转动不流畅等问题,请先检查线序是否正确,供电是否正确,再去检查代码配置!!

热床配置

[heater_bed]
heater_pin: PA2 #HE0
sensor_pin: PF3 # TB
# sensor_type: EPCOS 100K B57560G104F
sensor_type: ATC Semitec 104GT-2
control: pid
pid_Kp: 59.597 
pid_Ki: 1.967 
pid_Kd: 451.444
min_temp: -100
max_temp: 250

9.2.增加ADXL345共振补偿

同下位机固件生成和generic_xxx.cfg配置方法。usb-typec供电。

①上位机ssh:cd klipper回车进入klipper目录->make menuconfig->使用下面的固件配置->保存并退出

输入make编译固件,会生成klipper.uf2文件。输入cd ~回到根目录

按住ADXL345的boot按钮再供电,输入lsusb命令,可以查看到RP2 Boot一行设备信息,如果不是Boot请重复本步。保存好前边的ID号。

③输入cd klipper命令,跳转到klipper目录下,输入make flash FLASH_DEVICE=(保存的ID号),开始使用typec线烧录固件到ADXL345中,固件烧录完成后,输入 ls  /dev/serial/by-id/查询本模块的设备号,需要保存下来

④ADXL345固件:https://github.com/bigtreetech/ADXL345下载后,打开mainsail网页版上位机,将文件上传到机器的config目录下

⑤在printer.cfg中 include该cfg文件,在cfg文件中将ID号改为获得的设备号,定义MCU名,在之后使用时带入mcu名,避免和下位机MCU冲突。保存并重启。不带MCU名可能不知道IO口对应pin会与下位机mcu冲突,会出现SPI报错。

⑥保存后在控制面板找到控制台,分别输入,对X、Y轴共振校准,测试结果写入input_shaper中复制大generic_xxx.cfg中,就可以在printer.cfg中注释掉本模块的include

SHAPER_CALIBRATE AXIS=X
SHAPER_CALIBRATE AXIS=Y

10.PID校准

主要用在挤出机/热床加热PID。通过触摸屏设置温度界面,先输入一个温度值,校准PID才会亮,之后会自动校准。

校准完毕后会在mainsail控制台上发送建议参数,复制下来在generic_xxx.cfg中填入即可。这里的校准的是热床的pid

[heater_bed]
heater_pin: PA2 #HE0
sensor_pin: PF3 # TB
# sensor_type: EPCOS 100K B57560G104F
sensor_type: ATC Semitec 104GT-2
control: pid
pid_Kp: 53.162
pid_Ki: 1.353
pid_Kd: 522.319
min_temp: -100
max_temp: 250

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值