marlin固件解析

. 关于G代码的学习总结
学习3d打印机的基础就是了解并且掌握g-code文件,实际上g-code指的是3d模型在进入3d打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。这种中间格式文件的内容,实际上就是每一行3d打印机固件所能理解的命令。而这种命令,也被称为g-code命令。是3d打印机与pc之间最重要的命令交互界面。
常见的计算机与3d打印机的连接,不论是usb还是TCP/IP协议或者是SD卡,所有的连接通道中都是g-code命令。

了解marlin固件

对于3d打印机的固件来说一般来说有两种,一种是:Sprinter;另一种就是marlin;
而Sprinter已经没有人维护了。所以一般来说我们选用marlin固件。
而marlin相对于Sprinter的优点:

  1. 预加速功能
    Sprinter在每个角处必须使打印机先停下来再加速继续运行,而预加速只会加速和减速到某一个速度值,从而速度的矢量变化不会超过xy_jerk_velocity。要达到这样的效果必须预先处理下一步的运动。这样一来加快了打印速度,而且在拐角处减少了耗材的堆积,曲线更加平滑。
  2. 支持圆弧
    marlin固件可以自动调整分辨率以接近恒定的速度打印一段圆弧,得到最平滑的弧线。这样做的另一个好处是减少了串口的通行量。因为通过一条G2/G3指令既可以打印圆弧,而不用通过多条G1指令。
  3. 温度多重采样
    为了降低噪声的干扰,使PID温度控制更加有效,marlin采样16次取平均值去计算温度。
  4. 自动调节温度
    当打印任务要求挤出速度有较大的变化的时,或者实时改变打印速度,那么打印速度也需要随之改变。通常情况下,较高的打印速度,也意味着有较高的温度,marlin可以使用M109 S B F指令去自动控制温度。使用不带F参数的M109不会自动调节温度。否则,marlin会计算缓存中所有移动指令中最大的挤出速度单位steps/sec,即所谓的maxerate。然后目标温度值通过公式T = tempmin+factor*maxerate,同时限制在最小温度(tempmin)和最大温度(tempmax)之间。如果目标温度小与最小温度,那么自动调节将不起作用。最理想的情况下,用户不用去控制温度,只需要在开始使用M109 S B,F并在结束时使用M109 S0.
  5. 非易失存储器
    marlin固件将一些常用的参数,比如加速度,最大速度,各轴运动单位等存储在EEPROM中,用户可以在校准打印机的时候调整这些参数,然后存储到EEPORM中,这些改变在打印机重启之后生效 而且永久保存。
  6. 液晶显示器菜单
    如果硬件支持,用户可以构建一个脱机智能控制器(LCD,SD卡槽,编码器,按键)。用户可以通过液晶显示屏实时调整温度,加速度,速度,流量倍率,禁用步进电机…等等其他操作。
  7. SD卡内支持文件夹
    marlin固件可以读取SD卡中子文件夹内的g-code文件,不必是根目录下的文件。
  8. SD卡自动打印
    若SD卡根目录下有文件名为auto【0-9】.g的文件时,打印机会在开机后自动开始打印该文件。
  9. 限位开关触发记录
    如果打印过程中碰到了限位开关,那么marlin会将限位开关的触发位置发送到串口,并给出一个警告。这对于用户分析打印过程中遇到的问题是很有帮助的。
  10. 编码规范
    marlin固件采用模块化编程方式,让用户更加清晰的理解整个程序。为以后将固件升级成arm系统提供了很大的帮助。
  11. 基于中断的温度测量
    一路中断去处理ADC转换和检查温度变化,这样就减少了单片机资源的使用。
  12. 支持多种机械结构
    普通的XYZ正交机械,CoreXY机械,Delta机械,以及SCARA机械。

你可能感兴趣的:(marlin固件解析)