站内搜索
发作品签到
标准版

3D打印CAN工具头-stm32f446小螃蟹满配工具头

工程标签

1.6k
0
0
14

简介

首款使用stm32f446的工具头,小螃蟹工具头, 端子拉满, 并且全部都是xh2.54的端子, 支持usb/串口/can通信切换, 集成ldc1612支持涡流扫床, 集成MAX31865芯片

简介:首款使用stm32f446的工具头,小螃蟹工具头, 端子拉满, 并且全部都是xh2.54的端子, 支持usb/串口/can通信切换, 集成ldc1612支持涡流扫床, 集成MAX31865芯片
复刻成本:50

开源协议

GPL 3.0

创建时间:2025-10-09 13:45:06更新时间:2025-12-17 16:45:58

描述

3D打印工具头用于klipper固件, stm32f446小螃蟹满配工具头, 采用stm32f446rct6作为主控, 资源多, 性能强, 支持usb/串口/can通信切换, 想用啥通信就用啥通信, 接线端子全部为XH2.54端子, 端子大好接线

 

1. 3个限位端口, 2个5V供电, 1个5V/24V供电切换, 其中STOP2有二极管隔离支持高压输入,  可以接入其他三线的设备

2. 2个温控端子, 一个用于热端, 另外一个可以作为扫床线圈的温度补偿使用,  1个板载温控用于测量仓温

3. 3个可控风扇, 1个热床级大功率加热棒

4. 1个4PIN I2C端子引出, 1个4PIN扩展端子, 5V供电输出

5. 1个4PIN CAN端子引出, 可以刷入普通的CAN固件, 当然也可以刷入UTOC固件

6. 集成TMC2226步进电机驱动, 散热好, 容易焊接

7. 集成LDC1612芯片, 直接支持扫床, 配套线圈, 体积小巧, 也可以使用idm的线圈

8. 集成MAX31865芯片, 支持PT100/PT1000温度传感器, 支持两线和三线制

9. 集成ADXL345加速度传感器

10. spi焊盘引出, 共5个IO可用, 扩展性强

 

期间can芯片TJA1051T/3买到的不是那么好, 导致带电插拔工具头把mcu搞的不正常,无法进入dfu下载程序了, 电路经过改造, 即使can芯片是假的, 也不会影响到mcu, can芯片的第8引脚既可以支持是REF功能如TJA1050T,也能支持是第8引脚是VIO功能的芯片如TJA1051T/3 SIT1051T/3,  如果使用1050系列的旁边的二极管就不要焊接了

可以刷入USB固件, CAN固件, 串口固件, 还可以刷入UTOC固件, 跟上位机或主板通信时接口必须相同

板子只焊接完成正面就可以使用usb转串口下载固件

端子大部分都没有保护, 接线之前看清楚, 尤其是机械的限位开关, 只接IO和GND, 不要接三条线!

关联的高性能全IO保护主板:  https://oshwhub.com/cxg01/3d-da-yin-zhu-ban-stm32-gao-xing-neng-mi-ni-8-zhou-zhu-ban-si-ceng-ban

关于涡流线圈看我另外的项目:  https://oshwhub.com/cxg01/3d-da-yin-wo-liu-diao-ping

 

工具头mcu配置

 

[mcu toolhead]
#usb/串口通信
# serial: /dev/serial/by-path/platform-xhci-hcd.0.auto-usb-0:1.1:1.0-port0
# baud: 500000   # 串口通信波特率
# restart_method: command
#can通信
canbus_uuid: 6cb6cbf28f16

 

mcu引脚定义

[board_pins toolhead_pins_f446]
mcu: toolhead # stm32f446工具头
aliases:
    H1=PB2,                                                 # 加热
    FAN1=PB3,FAN2=PB4,FAN3=PC2,                             # 风扇
    STOP1=PD2,STOP2=PB5,STOP3=PA2,                          # 限位 STOP2有二极管隔离
    T1=PB0,T2=PC4,T3=PC5,                                   # 温控 T3为仓温检测
  EN1=PC12,DIR1=PC10,STEP1=PA15,UART1=PA14,    # tmc2226步进电机驱动
    ADXL_CS=PC6,ADXL_MOSI=PC9,ADXL_MISO=PC8,ADXL_SCK=PC7, ADXL_INT1=PC3, # ADXL345 软件spi接口
    MAX_DYDY=PA3, MAX_CS=PA4,              # MAX31865 硬件spi spi_bus: spi1
    LDC_SDA=PC0,LDC_SCL=PC1,LDC_INTB=PC13,     # LDC1612, 晶振频率40M
    WS2812=PA8,  # WS2812
  LED=PB1,     # klipper运行指示灯 高电平亮灯

 

pt100配置

[temperature_sensor PT100]
sensor_type: MAX31865
sensor_pin: toolhead:MAX_CS
min_temp: -200
max_temp: 300
spi_bus: spi1
# spi_software_sclk_pin: toolhead:PA5
# spi_software_mosi_pin: toolhead:PA6
# spi_software_miso_pin: toolhead:PA7
rtd_nominal_r: 100
rtd_reference_r: 427.27  #  ref电阻
rtd_num_of_wires: 3

 

ADXL345配置

# ADXL345加速度计
[adxl345]
cs_pin: toolhead:ADXL_CS
spi_software_sclk_pin: toolhead:ADXL_SCK
spi_software_mosi_pin: toolhead:ADXL_MOSI
spi_software_miso_pin: toolhead:ADXL_MISO
 
[resonance_tester]
accel_chip: adxl345
accel_per_hz: 50
probe_points: 100, 100, 20

 

WS2812配置
[neopixel my_neopixel]
pin: toolhead:WS2812
#   连接到neopixel的引脚。
#   必须提供此参数。
chain_count: 1
#   菊链中 neopixel 芯片的数量。
#   默认为1(代表有一个neopixel芯片连接到了这个引脚)。
color_order: GRB

 

klipper自带eddy涡流配置

[probe_eddy_current eddy_probe]
sensor_type: ldc1612
i2c_address: 42
i2c_mcu: toolhead
frequency: 40000000
i2c_speed: 400000
intb_pin: toolhead:LDC_INTB
i2c_software_scl_pin: toolhead:LDC_SCL
i2c_software_sda_pin: toolhead:LDC_SDA
x_offset: 0                  #记得设置x偏移
y_offset: -15                #记得设置y偏移
z_offset: 3                  #记得设置z偏移, 不可过低
speed: 5                     #探测速度
samples: 3                   #采样次数
sample_retract_dist: 5.0     #采样时喷嘴抬升距离
samples_tolerance: 0.05
samples_tolerance_retries: 2

[temperature_probe eddy_probe]
sensor_type: Generic 3950
sensor_pin: toolhead:T2
horizontal_move_z: 3
 
# 具体使用参考fly-eddy  https://mellow.klipper.cn/docs/ProductDoc/ToolBoard/fly-sht36/sht36_v3/1612
# eddy 快速Z调平
[gcode_macro Z_TILT_ADJUST]
rename_existing: _Z_TILT_ADJUST
gcode:
    {% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current eddy_probe'].z_offset|float %}
    # ========== State Save ==========
    SAVE_GCODE_STATE NAME=STATE_Z_TILT
   
    # ========== Environment Preparation ==========
    BED_MESH_CLEAR                       # Clear existing bed mesh data
   
    # ========== Main Leveling Process ==========
    {% if not printer.z_tilt.applied %}
        # Initial coarse adjustment
        _Z_TILT_ADJUST horizontal_move_z=10 retry_tolerance=1
    {% endif %}
   
    # Fine secondary leveling
    _Z_TILT_ADJUST horizontal_move_z={PROBE_Z_OFFSET} retry_tolerance=0.075 retries=20 METHOD=rapid_scan ADAPTIVE=1
        G0 Z10 F6000                     # Use standard G-code commands instead of HORIZONTAL_MOVE_Z

    # ========== Post-Processing ==========
    G90                                 # Force absolute coordinate mode
    G0 Z10 F6000                        # Raise Z axis to safe height
    M117 Z_tilt Completed               # Display completion status
    #G28                                 # Return to origin
    # ========== State Restore ==========
    RESTORE_GCODE_STATE NAME=STATE_Z_TILT
    M400

# eddy 快速网床扫床
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
    {% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current eddy_probe'].z_offset|float %}
    {% set TARGET_TEMP = printer.heater_bed.target %}
    M140 S0
    _BED_MESH_CALIBRATE horizontal_move_z={PROBE_Z_OFFSET} METHOD=rapid_scan {rawparams}
    M140 S{TARGET_TEMP}

 

焊接完成验证:

 

焊接完成之后先不要焊接插件端子, 先用usb转串口下载固件,

当然你也可以正反两面焊接完成后, 使用usb下载固件,

如果总是无法使用stm32cubeprograme总是无法连接上, 说明mcu焊接有问题, 

这些芯片验证都不用接24V供电, 直接用5V供电即可

1. ADXL345芯片

直接输入 ACCELEROMETER_QUERY 命令 , 在控制台上会出现获取到的加速度数据, // accelerometer values (x, y, z): 9400.615463, 74.020594, -766.095498

2. MAX31865芯片

准备一个pt100传感器,  添加pt100的配置,  出现pt100的温度值即可, 如果有问题, klipper会直接报错

3.LDC1612芯片

接入线圈, 输入 LDC_CALIBRATE_DRIVE_CURRENT chip=eddy_probe 会返回: // probe_eddy_current eddy_probe: reg_drive_current: 19

4.TMC2226芯片

把挤出机[extruder]配置下的,  最小挤出温度设置为 min_temp: -200,不用接挤出机, 也不用24V供电 ,在页面上直接点挤出, 不报错即可

5.热端加热MOS

直接输入温度加热, 加热指示灯亮即可

6.WS2812B灯

添加相关配置, 直接在页面上设置颜色, 能亮就行

 

LDC1612芯片报错问题:

这个是用klipper自带的涡流, 不是第三方插件, 感觉不是很完善, 刚开始搞不好可能会撞机

当然也可以用第三方插件, 如eddy-ng:  https://github.com/vvuk/eddy-ng ,这个我还没用起来, 附件里编译的固件带有这个插件

1. Unable to obtain 'i2c_read_response' response

发送命令LDC_CALIBRATE_DRIVE_CURRENT chip=eddy_probe 就报这个, 说明芯片虚焊

2.  Failed calibration - incomplete sensor data

上机测试时, 发送自动校准命令PROBE_EDDY_CURRENT_CALIBRATE CHIP=eddy_probe, 发现也能正常校准, 但是最后保存时提示这个问题, 也是芯片虚焊导致的

3. Failed calibration - frequency not increasing each step

发送自动校准命令PROBE_EDDY_CURRENT_CALIBRATE CHIP=eddy_probe,  前边正常校准, 但是在最后保存配置时提示这个, 说明芯片焊接是没问题的, 是探测到的最前边几个数据有问题, 出现了距离越远频率越高的情况, 可能是热床太重导致距离喷嘴很近时发生了震动所致, 这种需要抬高喷嘴

4.  Error during homing z: Eddy current sensor error

这个错误具体解决以及新版的涡流线圈看我另外一个涡流线圈项目:  https://oshwhub.com/cxg01/3d-da-yin-wo-liu-diao-ping

 

 

 

 

 

 

 

 

 

 

 

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
3D打印stm32f446小螃蟹满配工具头.zip
63
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航