在固件中设置 Junction Deviation 无效

3D打印 马林鱼 DIY-3d-打印机 skr-v1.3
2021-05-02 22:20:45

我用从 github 分叉的 Marlin bugfix-2.0.x 构建了一个 3D 打印机。

我正在尝试设置结点偏差的默认值,这样我就不必在每次重新启动打印机时通过打印机的屏幕/界面更改它,但我认为正确设置它并不能解决问题。

我的想法是在 Configuration_adv.h 中取消注释会起作用:

#define JUNCTION_DEVIATION_MM 0.02

我尝试if在它出现的默认块的内部和外部设置此定义,只是为了确保问题不是因为我没有设置其他内容,并且当此define语句受保护时,我会得到相同的行为或不受保护if

此外,默认if块是这样的:

#if ENABLED( JUNCTION_DEVIATION )
    #define JUNCTION_DEVIATION_MM 0.02
#endif

取消注释会给#define JUNCTION_DEVIATION我留下一个编译器错误,告诉我我不需要这样做,所以我没有看到任何我应该启用以使其使用 JUNCTION_DEVIATION_MM 设置的内容。换句话说,我实际上不能再启用“JUNCTION_DEVIATION”,所以我必须打破 JUNCTION_DEVIATION_MM 设置,if但它仍然没有效果。

设置好这个参数后,当我给打印机重新上电时,结点偏差被设置为0(虽然调整旋钮一触使其跳到0.010,所以我认为显示为“0”实际上可能意味着“未设置” ),这会导致每次角度变化时出现明显的停止/启动急动,直到我手动设置结点偏差。

我当前的Configuration.hConfiguration_adv.h取自这个 Marlin fork

以防万一,我在带有 TMC2208 驱动程序的 SKR V1.3 上以 24V 运行它。

任何想法我错过了什么?我确定这很简单,只是我还没有找到。

更新: 10 天后仍然没有解决方案。以下是我发布此请求的另一个论坛的其他信息:

你有没有运行M502M500更新固件后?

我深入研究了一点,我要么遇到了一个错误,要么就是我根本不明白我应该看到什么。

我发送这个命令:

M205 J0.020

然后验证是否正确设置了结点偏差(它是) 然后:

M500

回应如下:

Settings Stored (616 bytes; crc 51371)

然后我发送这个:

M503

而 M205 的报告缺少我刚刚确认已更改并正在工作的设置:

... M205 B20000.00 S0.00 T0.00 ...

并且重新上电或重置控制器会导致相同的结果:结点偏差重置为 0。

更改设置并验证它是否有效后,我不应该立即在 M205 行中看到“J0.020”吗?

2个回答

我买了一个 SKR Pro V1.1,它遇到了同样的问题。它实际上与Marlin的缺陷或设计缺陷(SPI设备的“HAL”或“硬件抽象层”寻址)和对SD卡的访问有关;引用

问题:无法使用 SKR-PRO 1.1 上的板载 SD 卡。

插入 SD 卡后,固件二进制文件被加载到内存中,对 SD 卡的所有访问都消失了。初始连接是通过 SKR 板的硬件设计进行的。

基本上,Marlin 代码/SKR 板中存在一个错误,阻止在加载固件后存储(到 SD 卡)任何更改。Marlin 上有一个PR修复了它,但它尚未合并到 Marlin 中。

有2个选项,

  1. 固件的每次更改都必须通过在 SD 卡上放置一个十六进制 (firmware.bin) 来编译并上传到开发板;
  2. 从上述 PR 的来源编译固件版本。

对于 SKR,要存储新的 Marlin 定义,需要发送命令M502恢复出厂设置(将使用 SD 卡上的配置)并发送命令M500保存配置。