开源改变世界

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

推推 grbl 3年前 (2023-02-08) 257次浏览
关闭
olivierOT 打开了这个问题 2021 年 11 月 26 日 · 50条评论
关闭

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方#46

olivierOT 打开了这个问题 2021 年 11 月 26 日 · 50条评论

评论

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

你好,

我有一个在 SKR pro 1.2 上运行的 MPCN,电机在 UART 中的 5 TMC2209 上运行。CNC 使用安装在其上的 Neje PWM 二极管激光器

我的机器在 X 和 Y 上有双轴,分别使用 E0 和 E1,并且在 X 上有 2 个止动器,在 Y 上有 2 个止动器用于自动平整归位。

我目前正在使用 Marlin 2,但我想迁移到 grblHAL。
问题是我完全迷路了,我不知道在编译之前从哪里开始在配置文件中进行相应的设置。

这里有好心人可以帮助我吗?

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

驱动的配置在my_machine.h中,SKR1.2 可以使用与 SKR 1.1 相同的映射文件吗?

目前此板不支持 Trinamic 驱动程序,但代码可用于 SKR 2.0 板特定代码中的软 UART。如果你稍等一下,我会将它添加到 SKR 1.1 中,并进行所需的更改。请注意,我无法对此进行测试,因此我不能保证它会起作用。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

你好,谢谢你的回复。
理论上是的 SKR pro 1.2 具有与 1.1 相同的规格和引出线。

我查看了 my_machine.h,但我没有发现任何关于双轴 X->X/反向 E0 和 Y->Y/反向 E1 的信息。

我可以等待!我也很乐意对其进行测试并向您提供反馈。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

我查看了 my_machine.h,但我没有发现任何关于双轴 X->X/反向 E0 和 Y->Y/反向 E1 的信息。

这里

最近增加了 8 美元用于通过设置而不是通过交换电机电线来反转第二个电机。

我也很乐意对其进行测试并向您提供反馈。

听起来不错。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

新版本现已推出。如果你想测试,从没有联动电机开始。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

谢谢,我尝试构建它,但我遇到了错误:

`

编译 .pio/build/btt_skr_pro_1_1/src/diskio.o
编译 .pio/build/btt_skr_pro_1_1/src/driver.o
Src/btt_skr_1.1.c:在函数“MX_TIM7_Init”中:
Src/btt_skr_1.1。 c:575:15: 错误:“TIM_Base_InitTypeDef {aka struct }”没有名为“AutoReloadPreload”的成员
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
^
编译 .pio/build/btt_skr_pro_1_1/src/flash.o
编译 .pio/build/btt_skr_pro_1_1/src/i2c.o
Src/btt_skr_1.1.c:575:36: error: ‘TIM_AUTORELOAD_PRELOAD_ENABLE’ 未声明(第一次使用功能); 您是说“TIM_MASTERSLAVEMODE_ENABLE”吗?
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TIM_MASTERSLAVEMODE_ENABLE Src/btt_skr_1.1.c:575:36: 注意:每个未声明的标识符只针对它出现在 *** [.pio/build/btt_skr_pro_1_1/src/btt_skr_1.1.o] 错误 1​​=
中的每个函数报告一次================================================ =================================== [失败] 耗时 7.16 秒 ========= ================================================ ===========================

`

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

它使用 STM32CubeIDE 1.5.1 为我编译,因此这些错误来自 pio 框架。我没有安装它,所以除了安装它和学习如何配置它之外不知道从哪里开始。@dresco您知道可能是什么原因吗?

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

我正在使用我的个人 github 帐户。

它使用 STM32CubeIDE 1.5.1 为我编译

谢谢,我已经使用 STM32CubeIDE 成功地构建了它,今晚我将尝试抽出时间来刷新电路板。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

@dresco您知道可能是什么原因吗?

在这里建设没问题,我只是做了一个新的克隆并将以下测试环境添加到 platformio.ini(只是将 2209 支持和自动平方添加到原始 skr_pro_1_1 条目)。

platformio run –environment btt_skr_pro_1_1_buildtest

[env:btt_skr_pro_1_1_buildtest]
# Untested and might not boot.  Please report issues at:
# https://github.com/grblHAL/STM32F4xx/issues
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_FLASH.ld
build_flags = ${common.build_flags}
  # See Inc/my_machine.h for options
  -D BOARD_BTT_SKR_PRO_1_1=
  # 8MHz crystal
  -D HSE_VALUE=25000000
  # Boot loader offset (32K)
  -D VECT_TAB_OFFSET=0x8000
  # TMC2209 stepper drivers
  -D TRINAMIC_ENABLE=2209
  # Motor ganging & auto-squaring
  -D X_GANGED=1
  -D X_AUTO_SQUARE=1
  -D Y_GANGED=1
  -D Y_AUTO_SQUARE=1
lib_deps = ${common.lib_deps}
  eeprom
  trinamic
lib_extra_dirs = ${common.lib_extra_dirs}
# Upload is not supported for this board since BOOT0 is tied to GND.
# With the default boot loader, you must deploy new firmware by copying
# .pio/build/<env name>/firmware.bin (produced by `pio run`) to the SD card.
X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
奥利朱韦 评论了 2021 年 11 月 30 日  

嗯,我再次克隆了 STM32F4xx 存储库,在 platformio.ini 中添加了你的 btt_skr_pro_1_1_buildtest 部分 env 并尝试构建它但仍然有错误:

MacBook-Pro-de-Olivier:STM32F4xx $ platformio run --environment btt_skr_pro_1_1_buildtest
Processing btt_skr_pro_1_1_buildtest (board: genericSTM32F407VGT6; platform: ststm32; framework: stm32cube)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F407VGT6.html
PLATFORM: ST STM32 (8.0.0) > STM32F407VG (192k RAM. 1024k Flash)
HARDWARE: STM32F407VGT6 168MHz, 192KB RAM, 1MB Flash
DEBUG: Current (stlink) External (jlink, stlink)
PACKAGES: 
 - framework-stm32cube 2.0.200813 
 - framework-stm32cubef4 1.26.2 
 - tool-ldscripts-ststm32 0.1.0 
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 52 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <bluetooth>
|-- <grbl>
|-- <keypad>
|-- <laser>
|-- <motors>
|-- <odometer>
|-- <spindle>
|-- <Core>
|-- <Class>
|-- <App>
|-- <Target>
|-- <eeprom>
|-- <trinamic>
Building in release mode
Compiling .pio/build/btt_skr_pro_1_1_buildtest/lib87a/bluetooth/hc_05.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/alarms.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/coolant_control.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/corexy.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/errors.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/gcode.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/grbllib.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/ioports.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/limits.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/maslow.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/motion_control.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/my_plugin.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/ngc_expr.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/ngc_params.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/nuts_bolts.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/nvs_buffer.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/override.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/pid.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/planner.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/protocol.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/regex.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/report.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/settings.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/sleep.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/spindle_control.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/state_machine.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/stepper.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/stream.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/system.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/tool_change.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/libee4/grbl/wall_plotter.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/lib197/keypad/keypad.o
Compiling .pio/build/btt_skr_pro_1_1_buildtest/lib62c/laser/coolant.o
keypad/keypad.c:26:10: fatal error: driver.h: No such file or directory

****************************************************************
* Looking for driver.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:driver.h"
* Web  > https://platformio.org/lib/search?query=header:driver.h
*
****************************************************************

 #include "driver.h"
          ^~~~~~~~~~
compilation terminated.
*** [.pio/build/btt_skr_pro_1_1_buildtest/lib197/keypad/keypad.o] Error 1
Compiling .pio/build/btt_skr_pro_1_1_buildtest/lib62c/laser/ppi.o
laser/coolant.c:24:10: fatal error: driver.h: No such file or directory

****************************************************************
* Looking for driver.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:driver.h"
* Web  > https://platformio.org/lib/search?query=header:driver.h
*
****************************************************************

 #include "driver.h"
          ^~~~~~~~~~
compilation terminated.
*** [.pio/build/btt_skr_pro_1_1_buildtest/lib62c/laser/coolant.o] Error 1
laser/ppi.c:24:10: fatal error: driver.h: No such file or directory

****************************************************************
* Looking for driver.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:driver.h"
* Web  > https://platformio.org/lib/search?query=header:driver.h
*
****************************************************************

 #include "driver.h"
          ^~~~~~~~~~
compilation terminated.
*** [.pio/build/btt_skr_pro_1_1_buildtest/lib62c/laser/ppi.o] Error 1
====================================================================================== [FAILED] Took 3.94 seconds ======================================================================================

Environment                Status    Duration
-------------------------  --------  ------------
btt_skr_pro_1_1_buildtest  FAILED    00:00:03.940
================================================================================= 1 failed, 0 succeeded in 00:00:03.940 =================================================================================

我的 PlatformIO Core 版本是 5.2.3

无论如何,它与 STM32CubeIDE 构建得很好,所以我现在继续使用它

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

我刷了我的板子,绿色二极管像往常一样在新固件上闪烁。

我被卡住了,因为我的笔记本电脑上没有任何 USB 串行端口可以识别我可以连接的主板。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

根据原理图,该板上的晶体频率似乎是 8Mhz
https://raw.githubusercontent.com/bigtreetech/BIGTREETECH-SKR-PRO-V1.1/master/Schematic/SKR-PRO-V1.1%EF%BC %88SCH%EF%BC%89.pdf

我会尽快将 HSE_VALUE 设置为 8000000 进行新尝试

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者
terjeio 评论了 2021 年 11 月 30 日  

引导加载程序版本从未工作过?有关详细信息,请参阅问题#45

您可以使用 ST-Link 编程器吗?电压表?

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

看起来你缺少一些模块,确保你在你的拉动中添加递归

它应该是:
git clone –recurse-submodules https://github.com/grblHAL/STM32F4xx.git

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

@terjeio“引导加载程序版本从未工作过”是什么意思?我会阅读#45 …
不,我没有 ST-link,但我有电压表。

@boboxxgit clone --recurse-submodules https://github.com/grblHAL/STM32F4xx.git这正是我克隆项目的方式。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

@olijouve它应该从一个没有代码更改的新递归克隆编译。您的日志表明无法从 Inc 文件夹中找到 driver.h,是否在某处定义了 ARDUINO(这会更改 keypad.c 中的包含路径)?

如果您想追查 platformio 错误,您是否可以在某处发布构建输出的副本 – 要点或 pastebin?我会将其与我的工作环境进行比较。干杯。

git clone --recurse-submodules https://github.com/grblHAL/STM32F4xx.git
cd STM32F4xx
platformio run --target clean
platformio run --environment btt_skr_pro_1_1 --verbose > build.log 2>&1
X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

谢谢@dresco我的 plateformio workspacd 中应该有一些旧的 arduino 遗物。
我删除了我的 ~/.platformio 文件夹并成功构建。

我现在将尝试通过 SD 卡闪存板…

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

不是更好,引导加载程序似乎可以工作,因为当我将 .pio/build/btt_skr_pro_1_1/firmware.bin 放入 sdcard 时,我可以看到绿色闪烁,然后文件被重命名为 FIRMWARE.CUR

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

@olijouve您使用的二进制文件来自哪个构建配置?只有Release F407 8MHz 32K Bootloader具有我认为需要的偏移量。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

我删除了我的 ~/.platformio 文件夹并成功构建。

酷,好消息..

只有Release F407 8MHz 32K Bootloader具有我认为需要的偏移量。

貌似在 btt_skr_pro_1_1 platformio 环境中定义了 bootloader 偏移量,但 crystal 值可能仍然是错误的?描述和价值不匹配..

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
奥利朱韦 评论了 2021 年 12 月 1 日  

是的,这就是我所看到的。

@terjeio,我使用默认的 btt_skr_pro_v1_1 所以配置是:

[env:btt_skr_pro_1_1]
# Untested and might not boot.  Please report issues at:
# https://github.com/grblHAL/STM32F4xx/issues
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_FLASH.ld
build_flags = ${common.build_flags}
  # See Inc/my_machine.h for options
  -D BOARD_BTT_SKR_PRO_1_1=
  # 8MHz crystal
  -D HSE_VALUE=25000000
  # Boot loader offset (32K)
  -D VECT_TAB_OFFSET=0x8000
lib_deps = ${common.lib_deps}
  eeprom
lib_extra_dirs = ${common.lib_extra_dirs}
# Upload is not supported for this board since BOOT0 is tied to GND.
# With the default boot loader, you must deploy new firmware by copying
# .pio/build/<env name>/firmware.bin (produced by `pio run`) to the SD card.

我曾尝试将 HSE_VALUE 设置为 8000000 进行编译,但在 skr_pro_v1_1_map.h 中存在不允许构建的测试:

#if !defined(STM32F407xx) || HSE_VALUE == 8000000
#error "This board has STM32F407 processor with a 25MHz crystal, select a corresponding build!"
#endif

我也尝试评论错误行,但没有更多机会,但我想它比那复杂得多。

我刚刚再次阅读#45和完整的 platformio.ini 文件。我看到 skr_pro_1_1 没有 -D USB_SERIAL_CDC=1。
我会在今晚尝试…

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

需要一种方法来检查下载的代码是否由引导加载程序启动。无需太多代码更改即可测量输入引脚上的电压。由于启用了上拉电阻,这应该是 3.3V。
将 RESET_PORT 和 RESET_PIN 定义更改为 GPIOC 和 1 并在 J46(I/O 扩展端口)上测量?AFAICT 该引脚没有外部连接的上拉电阻会扰乱测量。

另一个是切换输出引脚,我看到风扇和加热器输出连接了 LED。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
奥利朱韦 评论了 2021 年 12 月 2 日  

您使用的二进制文件来自哪个构建配置?只有 Release F407 8MHz 32K Bootloader 具有我认为需要的偏移量。

我也尝试了这个但没有成功(不得不将第 24 行更改为 #if !defined(STM32F407xx) || HSE_VALUE = = 8000000
in btt_skr_pro_v1_1_map.h),在我的 Mac 上看不到 USB 串口。

查看 Marlin 的 plateformio.ini,我们可以说 SKR Pro v1.1 /v1.2 板附带一个引导加载程序,该引导加载程序
位于 STM32F4 闪存的前 0x8000 字节中。

我已经闪回了一个 Marlin 2 固件,只是为了确保没有任何东西变砖并且它很好。一旦它被刷新,我的操作系统就会再次看到 USB 串行设备。

将 RESET_PORT 和 RESET_PIN 定义更改为 GPIOC 和 1 并在 J46(I/O 扩展端口)上测量
我找不到你提到的 J46:

https://teamgloomy.github.io/skr_pro_pins.html

另一个是切换输出引脚,我看到风扇和加热器输出连接了 LED。

不幸的是,我自己都没有找到我可以在代码中如何以及在何处切换输出引脚…

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
贡献者

PC1 在示意图中:

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46

我相信可以通过将此插件添加到 src 文件夹来切换输出引脚,针对您想要的端口/引脚修改它并重新编译/刷新。我提到的 LED 似乎需要电路板由 12V 供电。

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
奥利朱韦 评论了 2021 年 12 月 2 日  

我的电路板由 24V 供电,测试它会有风险吗?

Thanks for J46 PC1, i’ll try to test tomorrow. So just to understand, if the firmware is well loaded i should mesure 3.3V between that pin and gnd because the RESET_PORT and RESET_PIN definitions set to GPIOC and 1, but if not loaded i should get 0V ?

X 和 Y 双轴和 SKR PRO 1.2 上的自动平方 #46
Contributor
喜欢 (0)