开源改变世界

新主轴/激光功能 #684

推推 grbl 3年前 (2023-01-30) 170次浏览
关闭
bdring 打开了这个问题 2020 年 11 月 30 日 · 18条评论
关闭

新主轴/激光功能#684

bdring 打开了这个问题 2020 年 11 月 30 日 · 18条评论

注释

新主轴/激光功能 #684
所有者

Devt 分支上的新主轴/激光功能

我们在 Devt 分支上有一些新的主轴功能。有很多要求支持同时配备主轴和激光器的机器。您现在可以在不重启的情况下切换主轴类型和调整相关设置。

您现在可以像这样为激光器指定引脚。

#define LASER_OUTPUT_PIN    GPIO_NUM_nn   // required
#define LASER_ENABLE_PIN    GPIO_NUM_nn   // optional

主轴销的定义与之前相同。使用的引脚号可以与激光器不同或相同。

当您发送$Spindle/Type=Laser时,它将使用激光设置。新设置$Laser/FullPower=nnn用于告诉 Grbl 您希望功率映射到哪个范围。现有的$GCode/MaxS-nnnn设置仍然用于主轴。这允许在 2 种类型之间快速切换,而不会丢失您的最大 RPM 或激光最大功率。

所有更改都必须在空闲模式下并在主轴关闭 (M5) 的情况下进行。每次更改都会重新初始化设备,因此频率和引脚反转之类的东西都会产生影响。

我们希望得到一些反馈和人们对此进行测试。

未来

这只是对即将发生的事情的一种体验。我们希望将这种实时更改功能扩展到大多数功能。理想情况下,您编译一次并从 SD 卡加载机器定义或通过设置实时调整它。

新主轴/激光功能 #684 bdring 添加了 增强 新功能或要求标签 2020 年 11 月 30 日
新主轴/激光功能 #684

非常好; 我真的很欣赏你扩展 Grbl 设置并转向即时配置所有内容的明智方式

我刚刚将我的 3 轴板升级到main分支(日期为20201212,之前的 FW 从 5 月开始)并且认为在Machines/template.h文件中包含和描述这些设置会很好。升级时错过此更改后,我在组合激光/主轴机器上遇到了一些困惑。尽管检查了Machines/3axis_v4.hMachines/template.h文件以尝试捕获我需要的任何新设置。

我的机器在其主轴和激光模块之间共享 PWM 和启用引脚(通过拨动开关),我只是假设我可以保留PWM配置中的主轴类型,定义 PWM 引脚,一切都会像以前一样工作。

但是当我在一个简单的激光作业上测试升级时它在第一次切割时失败了:
MSG:M4 requires laser mode or a reversable spindle
经过一些混淆(并且最终查看了源代码)我意识到我需要LASER_ 在我的自定义机器配置中添加引脚的定义,允许我将主轴类型切换到Laser并成功运行作业。我的主轴不可通过 IO 引脚反转。

我认为值得在这里发表评论,以防其他人被抓到。特别是因为在上面搜索MSG:没有为我返回任何匹配项。作为参考,这里有一份关于发生的事情的冗长日志,我已经缩进了控制器的响应:

$32
   $32=1
 
$Laser
   $Laser/FullPower=1000
   $GCode/LaserMode=On
 
$Spindle
   $Spindle/Enable/Invert=Off
   $Spindle/Enable/OffWithSpeed=Off
   $Spindle/Delay/SpinDown=0.000
   $Spindle/Delay/SpinUp=0.000
   $Spindle/PWM/Invert=Off
   $Spindle/PWM/Frequency=5000.000
   $Spindle/PWM/Off=0.000
   $Spindle/PWM/Min=0.000
   $Spindle/PWM/Max=100.000
   $Spindle/Type=PWM
    
$Spindle/Type=Laser
   [MSG:Laser spindle on Pin:GPIO(17), Enbl:GPIO(16), Freq:5000Hz, Res:13bits Laser mode:On]

M4
   ..Works as expected

$Spindle/Type=PWM
   [MSG:PWM spindle Output:GPIO(17), Enbl:GPIO(16), Dir:None, Freq:5000Hz, Res:13bits]

M4
   [MSG:M4 requires laser mode or a reversable spindle
   .. Now I understand what is happening I appreciate getting an error here, I'm happy to be blocked if I accidentally run 
      a laser job without changing the spindle type to Laser!
新主轴/激光功能 #684

在过去的几天里,我一直试图让 PWM 激光控制工作,但我要么在输出引脚上没有 pwm,要么 M3/M4 Sxx 似乎停止工作。

根据我试过的维基:

#define SPINDLE_TYPE            SpindleType::Laser
#define LASER_ENABLE_PIN        GPIO_NUM_33  // ESP32 Uno Bottom 3 Pin
#define LASER_OUTPUT_PIN        GPIO_NUM_32  // ESP32 Uno Bottom 3 Pin

但是当我尝试手动 M3 S100 时,输出没有 PWM。

当我尝试时:

#define DEFAULT_LASER_MODE      1

/*
#define SPINDLE_TYPE            SpindleType::Laser
#define LASER_ENABLE_PIN        GPIO_NUM_33  // ESP32 Uno Bottom 3 Pin
#define LASER_OUTPUT_PIN        GPIO_NUM_32  // ESP32 Uno Bottom 3 Pin
*/

#define SPINDLE_TYPE            SpindleType::PWM

#define SPINDLE_PWM_PIN         GPIO_NUM_32 
#define SPINDLE_PWM_CHANNEL     0
#define SPINDLE_PWM_BASE_FREQ   5000

#define SPINDLE_ENABLE_PIN      GPIO_NUM_33 
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_32 

#define LASER_ENABLE_PIN        GPIO_NUM_33  // ESP32 Uno Bottom 3 Pin
#define LASER_OUTPUT_PIN        GPIO_NUM_32  // ESP32 Uno Bottom 3 Pin

当我手动 M3 Sxx 时,我可以在示波器中看到实际的 PWM,但随后 M4 拒绝工作。

我是完全误解这里的东西还是还有一些小问题?

新主轴/激光功能 #684
所有者作者

使用 M4,您必须有运动。尝试 …

G91
M4S1000
G1 F200 X20

在运动中测量。

新主轴/激光功能 #684

是的,我知道“运动”约束,但我还没有深入了解,因为它告诉我 M4 是无效的 gcode。

新主轴/激光功能 #684
所有者作者

发送此信息以确保您处于激光模式
$32=1

新主轴/激光功能 #684

对于二极管激光雕刻机/切割机并且应该能够使用 M3 和 M4 的机器,“正确”的机器配置是什么样的?我已经尝试了 $32=1,以及上面的所有主轴变化,并且比以前更加困惑。在我开始为您运行特定的调试测试以更好地了解发生了什么之前,让我们从它在配置中的样子开始。

新主轴/激光功能 #684
所有者作者

无论您的配置如何,都可以更改 $32。

这会设置默认值,但可以随时将其更改为 0。

#define DEFAULT_LASER_MODE      1
新主轴/激光功能 #684
时间0 评论了 2021 年 11 月 8 日  

是的,请参阅上面的代码片段,我也尝试过。我已经尝试在其中设置 rgbl32 web ui 配置并将其作为 gcode 发送。在过去的几天里,我尝试了很多东西来让实际的 PWM 输出工作。让我们忽略我之前为解决测试中的混乱/混乱所做的一切,从头开始。如果主轴的“正确”机器定义配置是在引脚 GPIO_NUM_32(默认且仅主轴/工具)上具有 PWM 控制且可以使用 M3 和 M4 的二极管激光器,它应该是什么样子?

新主轴/激光功能 #684
所有者作者

设置
$32=1
并运行测试。
在我继续帮助您之前,我需要调试信息。

新主轴/激光功能 #684

G91 M4S500 G1 F200 X20 显示引脚上的 PWM。

1000 是一个不好的值,无法直接查看 PWM 是否正常工作。

新主轴/激光功能 #684

但正如我之前所说,这是现在的 PWM 硬件定义,而不是维基文档中的激光定义……这就是为什么我想从那里开始……

新主轴/激光功能 #684
所有者作者

暂时忽略定义。
它是否按照您想要的方式运行?

新主轴/激光功能 #684

目前是。但是当我“忽略定义”时,我不知道我在做什么或它为什么工作以及我需要将什么作为启动 gcode 放入 CAM 而不是因为它是机器默认值。

目前看起来它正在做 M4 S500 应该做的事情(移动时):

新主轴/激光功能 #684

而且 M3 S100 似乎也在工作:

新主轴/激光功能 #684

到目前为止,grbl_esp32 已经把事情做得非常简单和好,corexy、sdcard、oled 显示器——我非常感谢这个项目的存在。我真的没想到像简单的 PWM(无论如何 esp32 应该在 HW 和 ledc 模式下做)这样的东西会让我失望好几天:)

新主轴/激光功能 #684
所有者作者

如果您寻求帮助,我也需要了解情况。

我觉得你的配置没问题。沿线的某处 $32 已更改为 0。无法从配置文件中阻止它。这是激光 CAM 程序需要访问的动态设置。

它的行为方式与 Grbl 相同。

FluidNC 是下一代 Grbl_ESP32。激光模式会根据您使用的主轴类型自动更改为正确的模式。

新主轴/激光功能 #684

a) 你用的是什么板?至少有一块板在 pwm 输出电路中有一个电平转换器,这需要一些技巧来确保它被正确启用。
b) 您是否尝试过只定义激光引脚的定义文件,而没有双重定义任何引脚?

新主轴/激光功能 #684

如果您寻求帮助,我也需要了解情况。

是的,很明显 :) 这就是为什么我建议我们从头开始,这样你和我就可以建立在相同的状态之上。不想听起来“有权利”或忘恩负义,这似乎更有意义,这样我们在运行测试时都知道我们在哪里。非常感谢所有帮助。

我觉得你的配置没问题。沿线的某处 $32 已更改为 0。无法从配置文件中阻止它。这是激光 CAM 程序需要访问的动态设置。

对我来说,配置与 wiki/docs 所建议的完全相反,只是尝试不同主轴参数组合的“强力”结果。我原以为这是“正确的”:

#define SPINDLE_TYPE            SpindleType::Laser
#define LASER_ENABLE_PIN        GPIO_NUM_33  // ESP32 Uno Bottom 3 Pin
#define LASER_OUTPUT_PIN        GPIO_NUM_32  // ESP32 Uno Bottom 3 Pin

但这是当前正在运行的(绝对不是根据 wiki/docs for lasers)

#define DEFAULT_LASER_MODE      1

#define SPINDLE_TYPE            SpindleType::PWM

#define SPINDLE_PWM_PIN         GPIO_NUM_32 
#define SPINDLE_PWM_CHANNEL     0
#define SPINDLE_PWM_BASE_FREQ   5000

#define SPINDLE_ENABLE_PIN      GPIO_NUM_33 
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_32 

#define LASER_ENABLE_PIN        GPIO_NUM_33  // ESP32 Uno Bottom 3 Pin
#define LASER_OUTPUT_PIN        GPIO_NUM_32  // ESP32 Uno Bottom 3 Pin

它的行为方式与 Grbl 相同。

FluidNC 是下一代 Grbl_ESP32。激光模式会根据您使用的主轴类型自动更改为正确的模式。

FluidNC,从没听说过,要去看看,谢谢你的建议。

新主轴/激光功能 #684
所有者作者

这是我们Discord 服务器的邀请。

FluidNC 现在仍然是“测试版”。您应该检查一下,但请稍等片刻。