重新校准起始位置

3D打印 马林鱼 创造者-3 归巢
2021-05-24 03:51:44

我给自己买了 Ender 3。 Home 位置在左前角约 1 mm 和前面 2 mm 处。现在,热端中心轴距承载板 11 毫米,“Mk 10”冷却器安装在作为板一部分的一对 5 毫米钉子上。由于我想更改为直径为 22 毫米的 e3D v6,我将不得不向当前 Z 轴移动一段距离(约 13 毫米)。这意味着,任何 Y 命令都将关闭此距离。

我如何重新配置​​起始位置以偏移从限位开关获得的 0 位置?

根据 Repetier Host 的说法,它在Marlin 1.0上运行Creality 在其网站上以.hex文件的形式提供固件- 很难编辑。

3个回答

将打印机归位时,将指示热端托架撞击(机械或光学)末端挡块。从这一点来看,配置良好的固件知道在哪里可以找到热床的起源。

为了让打印机知道床的原点,固件中定义了从末端停止位置到热床实际原点的偏移量。

例如,在 Marlin 固件中,这是由

 #define X_MIN_POS -35 ; move the head 35 mm to the right to place the 
                       ; nozzle at X = 0
 #define Y_MIN_POS -8  ; move the head 8 mm to the back (or the plate
                       ; forward) to place the nozzle at Y = 0

当您更换硬件(例如托架)时,您需要重新校准从终点止动位置到床身原点的运动。请注意,热床上的任何任意点都可用于重新校准。例如,也可以使用床的中心,并且通常更容易重新校准,因为加热床通常有圆角或比实际打印区域略大(例如,我有一个 300 x 300 毫米的加热床)实际尺寸为 315 x 315 毫米)。因此,由于您的新滑架设计,在热床上打印一个大正方形将使您对喷嘴的偏移有一个很好的印象。

请注意,如果您不能或不会刷新新固件,如果您当前的固件支持,则存在使用M206命令设置新的增量偏移值的替代解决方案

重新校准的详细说明可在答案中找到如何将我的打印件置于构建平台上?或在外部链接床中心校准

继 0scar 的回答之后


要更改或获取您的 EEPROM 设置,您需要打开 Repetier Host(对于 Linux 或 Windows,v2.1.3 - 我尝试过的 OSX 版本 v1.1.0,似乎没有此功能)。

更改现有设置

如何更改 EEPROM 数据显然有一个可用的 EEPROM 编辑器(在 Repetier Host 中)。这篇文章

如果您在 eeprom 编辑器中看到它,只需更改它们。如果它是基于 repetier 固件的,它会在按下“确定”时将更改存储在 eeprom 中。

检索现有设置

这篇来自检索现有设置...的帖子展示了如何:

复制 eeprom 数据:

  • 与主机连接
  • 打开eeprom设置
  • 选择导出 eeprom 设置。这会将所有数据保存在一个 epr 文件中,您以后可以使用导入 eepsom 设置来重写它。

结果文件的示例显示在问题中,帮助 Repetier 固件变量(Dimension Dual Delta - J Group Robotics),我在下面包含了其中的一个示例:

<Repetier-Firmware-EEPROM>
<epr pos="1028" type="0" value="0">Language</epr>
<epr pos="75" type="2" value="115200">Baudrate</epr>
<epr pos="129" type="3" value="32.752">Filament printed [m]</epr>
<epr pos="125" type="2" value="21644">Printer active [s]</epr>
<epr pos="79" type="2" value="0">Max. inactive time [ms,0=off]</epr>

但是,您似乎必须运行 Repetier 固件才能使这两个解决方案正常工作,而不是 Marlin(但我可能错了)。

Greenonline和我在今晚对 Ender3 进行了黑客攻击/逆向工程来解决这个问题。Greenonline 在他的博客中也写到了这一点

步骤 1 - 获取固件

要做到这一点,基本上有两种方法:

  1. 找到一个随时可用的固件
  2. 自己做

变体 1 将使用来自 Creality 或其他一些制造商的预先提供的 .hex 文件。变体 2 意味着您自己编写设置或使用Repetier 固件为您编写文件。在 Ender 3 的情况下,芯片使用了不合格的 Repetier 固件,所以自己编写是唯一的选择。

要自己编写固件或使用 Repetier 固件,您需要旧设置。要获得这些,请通过 USB 连接打印机,将其与Repetier 主机软件连接并发送M503以获取所有设置。

现在,要么将它们破解为 Repetier 固件,要么使用空白Marlin.ino和 Arduino IDE 对其进行自定义。在后一种情况下,您需要将文件夹Marlin-?.?.X.ZIP/Marlin-?.?.X/Marlin放入ArduinoDocuments (Windows) 或 Home (Mac) 中文件夹中。现在Marlin.inoArduino IDE 中打开使用这些基本设置设置新固件或根据需要进行调整。

第 2 步 - 调整

现在我们有了我们的配置文件(最后我们几乎跳过了第 1 步,Christian那里拿了一个合适的(德语!)一个,德国制造商也被称为“Chaos-Drucker”),我们需要首先根据需要调整它们以满足我们的需要,然后正确编译它们(下一步!)。作为替代(英语!)基础,TH3D 固件也可用,由 Hooglands 和 TH3D 团队提供。

所以,让我们打开你Marlin.ino的Arduino并找到X_MIN_POSCTRL+ F> X_MIN_POS>搜寻所有草图)。

在我们抓取的配置文件Configuration.h,草图文件包含第 786-789 行(可能不同)

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -10
#define Y_MIN_POS -15
#define Z_MIN_POS 0

调整这些直到达到想要的位置 - Repetier Host 可以在这里帮助确定正确的位置。

第 3 步 - 编译

Ender3 最难的一步是让代码进行实际编译,因为它使用了Arduino 本身不支持ATmega1284P 16Bit虽然MightyCore支持该芯片,但它不使用该硬件库进行编译。但是,Christian 确实发现将Sanguino设置为 ATmega 1284P 16 位确实有效。这些属于作为提取文件夹Arduino/hardware文件夹,通常是在你的文件(如果你使用的是Windows)或家庭(在Mac)。现在,我们确实设置Tools>Board:> SanguinoTools>Processor:>ATmega1284 or ATmega1284P (16 MHz)

还必须安装用于 ArduinoU8glib.h为此,请从 github 下载 zip,然后在 Arduino 软件中Sketch>Include Library>Add .ZIP Library...选择整个 zip 存储库进行自动安装。

通过这些设置,我们能够编译设置。

第 4 步 - 在机器上安装

大多数人现在都希望阅读有关引导加载程序和闪存的信息,这确实是一种选择。但是因为我刚刚想出如何从 .hex 安装固件,所以我想知道:我们不能从我们的设置中制作 .hex 文件吗?是的,Arduino 支持这个

因此,在 Arduino IDE 中按Ctrl+ Alt+ S(或Sketch > Export Compiled Binary)。这将产生两个文件:

  • Marlin.ino.sanguino.hex
  • Marlin.ino.with_bootloader.sanguino.hex

在这两者中,最Marlin.ino.sanguino.hex有趣是通过 CURA 进行“直接闪烁”。将此文件与此处的第 2 步开始的过程一起使用,或使用Greenonline 的解决方案之一来刷新固件 - 无需引导加载程序!