开源改变世界!!

M150 无法关闭 NeoPixels #286

推推 grbl 2年前 (2023-02-06) 287次浏览
打开
ericsnis 打开了这个问题 2020 年 6 月 13 日 · 13条评论
打开

M150 无法关闭 NeoPixels#286

ericsnis 打开了这个问题 2020 年 6 月 13 日 · 13条评论

评论

M150 无法关闭 NeoPixels #286
爱丽丝 评论了 2020 年 6 月 13 日  

描述

我在使用 NeoPixels 时遇到了一些麻烦。它们似乎可以工作,只是当我发出 M150 命令时它们不会关闭。

我在 SKR mini E3 1.2 板上添加了Adafruit NeoPixel 8 LED 棒。LED 由 NeoPixel 接头上的 5V 供电,根据说明这是可以接受的。LED 循环通过通电测试(红色 -> 关闭 -> 绿色 -> 关闭 -> 蓝色 -> 关闭)。通电测试后 LED 全部熄灭,所以我知道它们确实是通过电路板发送的某些命令关闭的。我还可以使用 M150 将颜色设置为我需要的颜色,但我无法将其关闭。发出不带任何选项的 M150 命令会关闭大约一半的 LED,但将其余 LED 设置为看似随机的颜色。

我还尝试使用 M150 B255 P0 R255 U255 将亮度专门设置为 0,并将所有三个颜色分量设置为零。在每种情况下,灯都不会关闭。这些灯显然可以关闭,因为它们会在通电测试后关闭。我猜 M150 的处理有些奇怪,所以它没有向芯片发送适当的数据。

我正在使用 Marlin 2.0.5.3。来自 GitHub,在 configuration.h 中使用默认的 NeoPixel GRB 选项编译,只需更改引脚号和像素数。

LED 芯片是 WS2812B,它是 RGB,而不是 RGBW。NeoPixel 棒上有电容器,因此应该满足要求。

重现步骤

  1. 将 platformio.ini 中的 NeoPixel 库更改为使用https://github.com/bigtreetech/Adafruit_NeoPixel并注释掉原始的 Adafruit NeoPixel。同时从 lib_ignore 中删除 Adafruit NeoPixel。
  2. 编译 Marlin 2.0.5.3 并更改 NeoPixel 选项。
  3. 使用 Octoprint 终端打开 NeoPixels 的白光与 M150 B255 P127 R255 U255。灯以白色亮起。
  4. 发送 M150 命令,灯切换到随机颜色而不是关闭。

预期行为
NeoPixels 应该在没有选项的 M150 命令后关闭。

实际行为
发出 M150 命令时会出现随机 NeoPixel 颜色。

附加信息

Configuration.h 是
`//#define RGB_LED
//#define RGBW_LED

#if EITHER(RGB_LED, RGBW_LED)
//#define RGB_LED_R_PIN 34
//#define RGB_LED_G_PIN 43
//#define RGB_LED_B_PIN 35
//#define RGB_LED_W_PIN -1
#endif

// 支持 Adafruit Neopixel LED 驱动器
#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW / NEO_GRB – 四/三通道驱动器类型(在 Adafruit_NeoPixel.h 中定义)
#define NEOPIXEL_PIN PC7 // LED 驱动引脚
/ /#define NEOPIXEL2_TYPE NEOPIXEL_TYPE
//#define NEOPIXEL2_PIN 5
#define NEOPIXEL_PIXELS 8 // 条带中的 LED 数量,如果使用 2 个 neopixel 条带,则为 2 个条带中较大的一个
#define NEOPIXEL_IS_SEQUENTIAL // 温度变化的顺序显示 – LED 逐个 LED。禁用一次更改所有 LED。
#define NEOPIXEL_BRIGHTNESS 127 // 初始亮度 (0-255)
#define NEOPIXEL_STARTUP_TEST // 启动时循环显示颜色

// 使用单个 Neopixel LED 进行静态(背景)照明
// #define NEOPIXEL_BKGD_LED_INDEX 4 // 要使用的 LED 的索引
// #define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
#endif`

M150 无法关闭 NeoPixels #286
作者

我想我修好了。还有另一个问题,#123,奇怪的问题出现基于沟通。解决方案是使用包含延迟的不同 NeoPixel 库。

Platformio.ini 已更改为注释掉 Adafruit Neopixel 并添加https://github.com/CommandoreBombardiero/Adafruit_NeoPixel

我将 .pio\libdeps\STM32F103RC_btt_512​​K\Adafruit NeoPixel\Adafruit_NeoPixel.cpp 更改为具有 delay.h,在我的例子中,相对路径是#include <..\..\..\..\Marlin\src\HAL\shared\Delay.h>

不确定这是否应该在 master 分支中解决,或者这是否是一个罕见的问题。

M150 无法关闭 NeoPixels #286

您将在 Platformio.ini 中的哪个位置添加“ https://github.com/bigtreetech/Adafruit_NeoPixel ”以及您要从 lib_ignore 中删除 adafruit neopixel 的哪一行?我在 PLatformio.ini 中有 22 个 lib_ignores。

感谢您提供任何信息。

M150 无法关闭 NeoPixels #286
雅哈500 评论了 2020 年 7 月 6 日  

“通用”值用于大多数 Marlin 构建

[常见]
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
lib_deps =
LiquidCrystal@1.5.0
TMCStepper@~0.7.0
Adafruit MAX31865 library@~1.1.0
Adafruit NeoPixel= https://github.com/CommandoreBombardiero/ Adafruit_NeoPixel/archive/master.zip
U8glib-HAL@0.4.1
Arduino-L6470@0.8.0
SlowSoftI2CMaster
LiquidTWI2@1.2.7
SailfishLCD= https://github.com/mikeshub/SailfishLCD/archive/master.zip

MEEB_3DP(带 512K 的 STM32F103RCT6)

[env:STM32F103RC_meeb]
platform = ${common_stm32f1.platform}
extends = common_stm32f1
board = MEEB_3DP
platform_packages = tool-stm32duino
build_flags = ${common_stm32f1.build_flags}
-DDEBUG_LEVEL=0
-DSS_TIMER=4
-DSTM32_FLASH_SIZE=512
-DHSE_VALUE=
12000000U -DUSE_USB_COMPOSITE
-DVECT_TAB_OFFSET=0x2000
-DGENERIC_BOOTLOADER
extra_scripts = pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
lib_deps =
TMCStepper@~0.7.0
Adafruit MAX318650库@U~
81.1。哈尔@0.4.1
Arduino-L6470@0.8.0
SlowSoftI2CMaster
LiquidTWI2@1.2.7
#Adafruit NeoPixel= https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use
SailfishLCD= https://github.com/mikeshub/SailfishLCD/archive/master.zip
软件序列号
STM32F1@0.91 的 USBComposite
lib_ignore = SPI
debug_tool = stlink
upload_protocol = dfu

M150 无法关闭 NeoPixels #286

@ericsnis我遇到了同样的问题,感谢您指出修复方法。经过数小时的研究,我可以确认我的 Neopixels 终于按预期工作了。谢谢你!

M150 无法关闭 NeoPixels #286

我想我修好了。还有另一个问题,#123,奇怪的问题出现基于沟通。解决方案是使用包含延迟的不同 NeoPixel 库。

Platformio.ini 已更改为注释掉 Adafruit Neopixel 并添加https://github.com/CommandoreBombardiero/Adafruit_NeoPixel

我将 .pio\libdeps\STM32F103RC_btt_512​​K\Adafruit NeoPixel\Adafruit_NeoPixel.cpp 更改为具有 delay.h,在我的例子中,相对路径是#include <..\..\..\..\Marlin\src\HAL\shared\Delay.h>

不确定这是否应该在 master 分支中解决,或者这是否是一个罕见的问题。

这解决了我在初始启动颜色后颜色关闭的问题。我使用的是官方 Adafruit 8 NeoPixel RGBW 条带。谢谢!

M150 无法关闭 NeoPixels #286

我的 SKR 1.4 上的 M150 也有同样的问题。

我能够通过在第一个像素之前的数据线上添加一个 330ohm 电阻来纠正它,这可能表明数据线中存在一些噪声导致像素出现信号问题。

M150 无法关闭 NeoPixels #286

我想我修好了。还有另一个问题,#123,奇怪的问题出现基于沟通。解决方案是使用包含延迟的不同 NeoPixel 库。

Platformio.ini 已更改为注释掉 Adafruit Neopixel 并添加https://github.com/CommandoreBombardiero/Adafruit_NeoPixel

我将 .pio\libdeps\STM32F103RC_btt_512​​K\Adafruit NeoPixel\Adafruit_NeoPixel.cpp 更改为具有 delay.h,在我的例子中,相对路径是#include <..\..\..\..\Marlin\src\HAL\shared\Delay.h>

不确定这是否应该在 master 分支中解决,或者这是否是一个罕见的问题。

这是我生命中的最后三天……固定 – 排序 – 完成 – 工作。我一看到“红、绿、蓝”,就知道斗争结束了。它是Adafruit_NeoPixel.cpp 中的 #include 路径。 图书馆 – Adafruit NeoPixel= https://github.com/CommandoreBombardiero/Adafruit_NeoPixel/archive/master.zip。我还必须使用#define NEOPIXEL_TYPE NEO_GRB非常非常感谢!BTT SKR mini E3 V2.0

M150 无法关闭 NeoPixels #286
阿比莫萨 评论了 2020 年 9 月 8 日  

在 SKR E3 mini 1.2 上有同样的问题,@monstis解决方案修复了它,非常感谢。

M150 无法关闭 NeoPixels #286

在 Marlin 2.0.7 的 [features] 部分替换NEOPIXEL_LED = Adafruit NeoPixel@1.5.0
NEOPIXEL_LED = NeoPixel=https://github.com/CommandoreBombardiero/Adafruit_NeoPixel/archive/master.zip
并且不要忘记 Marlin\src\HAL\STM32F1\inc\SanityCheck.h 中的注释// #error "NEOPIXEL_LED (Adafruit NeoPixel) is not supported for HAL/STM32F1. Comment out this line to proceed at your own risk!"

M150 无法关闭 NeoPixels #286
萨库拉 评论了 2020 年 10 月 15 日  

你好呀!我试过 Marlin 2.0.7.1,目前 NEOPIXEL 无法在我的 1.2 SKR Mini E3 上运行

我有platformio.ini

NEOPIXEL_LED = NeoPixel=https://github.com/CommandoreBombardiero/Adafruit_NeoPixel/archive/master.zip
                          src_filter=+<src/feature/leds/neopixel.cpp>

并注释掉 SanityCheck.h。

我收到一条失败的编译消息:

.pio/libdeps/STM32F103RC_btt_512K/NeoPixel/Adafruit_NeoPixel.cpp:51:10: fatal error: replace with path to Delay.h file: No such file or directory
 #include <replace with path to Delay.h file>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Compiling .pio/build/STM32F103RC_btt_512K/lib8e7/Wire/SoftWire.cpp.o
*** [.pio/build/STM32F103RC_btt_512K/libc41/NeoPixel/Adafruit_NeoPixel.cpp.o] Error 1
================================================= [FAILED] Took 56.96 seconds =================================================

Environment           Status    Duration
--------------------  --------  ------------
STM32F103RC_btt_512K  FAILED    00:00:56.957
============================================ 1 failed, 0 succeeded in 00:00:56.957 ============================================

我的Configuration.h

#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
  #define NEOPIXEL_TYPE   NEO_GRB // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
  // #define NEOPIXEL_PIN     4       // LED driving pin The NEOPIXEL_PIN is defined in a separate file no need to define it here.
  #define NEOPIXEL_PIXELS 2       // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used
  #define NEOPIXEL_IS_SEQUENTIAL   // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness (0-255)
  #define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
#endif

有谁克服了这个?

谢谢!

附言:

如果我在 platformio.ini 中使用以下内容,NEOPIXEL_LED = https://github.com/bigtreetech/Adafruit_NeoPixel我会让 marlin 进行编译,但打印机卡在启动过程中(黑屏)。

M150 无法关闭 NeoPixels #286

大家好。它最终在以下工作@monstis发布并进行更改@DominikMaga指着。

到目前为止,我一直在使用https://github.com/bigtreetech/Adafruit_NeoPixel不需要#include <..\..\..\..\Marlin\src\HAL\shared\Delay.h>Delay.h 头文件的库。我们知道除了编译或引导之外使用它是安全的吗?

谢谢!

M150 无法关闭 NeoPixels #286
怪物 评论了 2020 年 10 月 15 日  

大家好。它最终在以下工作@monstis发布并进行更改@DominikMaga指着。

到目前为止,我一直在使用https://github.com/bigtreetech/Adafruit_NeoPixel不需要#include <..\..\..\..\Marlin\src\HAL\shared\Delay.h>Delay.h 头文件的库。我们知道除了编译或引导之外使用它是安全的吗?

谢谢!

我相信“bigtree tech”和官方“Marlin Adafruit NeoPixel”版本不能很好地与 STM32F103RC 板配合使用。’CommandoreBombardiero’ 链接最适用于最新版本的 marlin (2.0.7) 我已经在我的 SKR Mini E3 V1.2 和 V2.0 上设置并运行良好。我无论如何都不是专家。我不能相信解决方案。这个线程是我找到它的地方。唯一不起作用的是成功打印后的(事件)绿灯。它适用于 SD 卡……而不是来自 octoprint。这是意料之中的。我使用 M150 命令在最后的 gcode 中将像素变为绿色。(M150 U125 I255)
M150 无法关闭 NeoPixels #286

M150 无法关闭 NeoPixels #286
877开发者 评论了 2020 年 12 月 19 日  

@ericsnis谢谢你!!
它现在在带有 SKR mini E3 v2.0.0 和 8 LED Neopixel 的 Ender 3 Pro 上为我工作。
你节省了我很多时间!

PS 我为自己创建了一个帮助要点,有人可能会觉得它有用吗?

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

11人参加
M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286M150 无法关闭 NeoPixels #286

喜欢 (0)