[BUG] (Kann mit RGB bzw RGBW Funktion nicht kompiliert werden) #253

Closed
opened 2022-01-05 11:21:39 -06:00 by corradodave · 12 comments
corradodave commented 2022-01-05 11:21:39 -06:00 (Migrated from github.com)

Wenn
//#define RGB_LED
oder
//#define RGBW_LED

Unkommentiert wird, kann nicht kompiliert werden.

<artificial>:(.text+0x5758): undefined reference to `PrinterEventLEDs::onHotendHeating(int, int, int)'
<artificial>:(.text+0x5a4e): undefined reference to `LEDLights::set_color(LEDColor const&)'
<artificial>:(.text+0x5ac2): undefined reference to `PrinterEventLEDs::old_intensity'
<artificial>:(.text+0x5cec): undefined reference to `PrinterEventLEDs::onBedHeating(int, int, int)'
<artificial>:(.text+0x5e4a): undefined reference to `PrinterEventLEDs::old_intensity'
C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans0.ltrans.o: In function `GcodeSuite::process_parsed_command(bool)':
<artificial>:(.text+0xd568): undefined reference to `GcodeSuite::M150()'
<artificial>:(.text+0xdac0): undefined reference to `LEDLights::set_color(LEDColor const&)'
<artificial>:(.text+0xdac8): undefined reference to `PrinterEventLEDs::leds_off_after_print'
<artificial>:(.text+0xdaec): undefined reference to `PrinterEventLEDs::leds_off_after_print'
<artificial>:(.text+0xdafe): undefined reference to `LEDLights::set_color(LEDColor const&)'
<artificial>:(.text+0xdb04): undefined reference to `PrinterEventLEDs::leds_off_after_print'
C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `LEDLights::get_color()':
<artificial>:(.text+0x35bc): undefined reference to `LEDLights::lights_on'
<artificial>:(.text+0x35c4): undefined reference to `LEDLights::color'
<artificial>:(.text+0x35c8): undefined reference to `LEDLights::color'
<artificial>:(.text+0x35cc): undefined reference to `LEDLights::color'
<artificial>:(.text+0x35d0): undefined reference to `LEDLights::color'
C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `Temperature::wait_for_bed(bool)':
<artificial>:(.text+0x3630): undefined reference to `PrinterEventLEDs::old_intensity'
<artificial>:(.text+0x37b0): undefined reference to `PrinterEventLEDs::onBedHeating(int, int, int)'
C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `Temperature::wait_for_hotend(unsigned char, bool)':
<artificial>:(.text+0x3996): undefined reference to `PrinterEventLEDs::old_intensity'
<artificial>:(.text+0x3b0e): undefined reference to `PrinterEventLEDs::onHotendHeating(int, int, int)'
<artificial>:(.text+0x3c40): undefined reference to `LEDLights::set_color(LEDColor const&)'
C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `main':
<artificial>:(.text.startup+0x418): undefined reference to `LEDLights::setup()'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\MEGA_S_TMC_BLT_10\firmware.elf] Error 1
================================================================================================== [FAILED] Took 21.83 seconds ==================================================================================================

Environment        Status    Duration
-----------------  --------  ------------
MEGA_S_TMC_BLT_10  FAILED    00:00:21.830
============================================================================================= 1 failed, 0 succeeded in 00:00:21.830 =============================================================================================

Wenn `//#define RGB_LED` oder `//#define RGBW_LED` Unkommentiert wird, kann nicht kompiliert werden. ``` <artificial>:(.text+0x5758): undefined reference to `PrinterEventLEDs::onHotendHeating(int, int, int)' <artificial>:(.text+0x5a4e): undefined reference to `LEDLights::set_color(LEDColor const&)' <artificial>:(.text+0x5ac2): undefined reference to `PrinterEventLEDs::old_intensity' <artificial>:(.text+0x5cec): undefined reference to `PrinterEventLEDs::onBedHeating(int, int, int)' <artificial>:(.text+0x5e4a): undefined reference to `PrinterEventLEDs::old_intensity' C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans0.ltrans.o: In function `GcodeSuite::process_parsed_command(bool)': <artificial>:(.text+0xd568): undefined reference to `GcodeSuite::M150()' <artificial>:(.text+0xdac0): undefined reference to `LEDLights::set_color(LEDColor const&)' <artificial>:(.text+0xdac8): undefined reference to `PrinterEventLEDs::leds_off_after_print' <artificial>:(.text+0xdaec): undefined reference to `PrinterEventLEDs::leds_off_after_print' <artificial>:(.text+0xdafe): undefined reference to `LEDLights::set_color(LEDColor const&)' <artificial>:(.text+0xdb04): undefined reference to `PrinterEventLEDs::leds_off_after_print' C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `LEDLights::get_color()': <artificial>:(.text+0x35bc): undefined reference to `LEDLights::lights_on' <artificial>:(.text+0x35c4): undefined reference to `LEDLights::color' <artificial>:(.text+0x35c8): undefined reference to `LEDLights::color' <artificial>:(.text+0x35cc): undefined reference to `LEDLights::color' <artificial>:(.text+0x35d0): undefined reference to `LEDLights::color' C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `Temperature::wait_for_bed(bool)': <artificial>:(.text+0x3630): undefined reference to `PrinterEventLEDs::old_intensity' <artificial>:(.text+0x37b0): undefined reference to `PrinterEventLEDs::onBedHeating(int, int, int)' C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `Temperature::wait_for_hotend(unsigned char, bool)': <artificial>:(.text+0x3996): undefined reference to `PrinterEventLEDs::old_intensity' <artificial>:(.text+0x3b0e): undefined reference to `PrinterEventLEDs::onHotendHeating(int, int, int)' <artificial>:(.text+0x3c40): undefined reference to `LEDLights::set_color(LEDColor const&)' C:\Users\corra\AppData\Local\Temp\ccDhowL9.ltrans1.ltrans.o: In function `main': <artificial>:(.text.startup+0x418): undefined reference to `LEDLights::setup()' collect2.exe: error: ld returned 1 exit status *** [.pio\build\MEGA_S_TMC_BLT_10\firmware.elf] Error 1 ================================================================================================== [FAILED] Took 21.83 seconds ================================================================================================== Environment Status Duration ----------------- -------- ------------ MEGA_S_TMC_BLT_10 FAILED 00:00:21.830 ============================================================================================= 1 failed, 0 succeeded in 00:00:21.830 ============================================================================================= ```
corradodave commented 2022-01-06 06:33:20 -06:00 (Migrated from github.com)

Besteht evtl eine andere Möglichkeit die PINs der Servoports (4,5,6,12) anzusteuern?

Besteht evtl eine andere Möglichkeit die PINs der Servoports (4,5,6,12) anzusteuern?
stklcode commented 2022-01-15 03:04:35 -06:00 (Migrated from github.com)

Case light über servo pin 2 ist sogar default, muss man nur aktivieren. So habe ich meine Beleuchtung angeschlossen, steuerbar über M355

Steuert dann ganz ordinär die PWM am Servo Pin an. Ich habe einen 12V LED Streifen mit Transistorstufe drangehängt ohne jede Intelligenz.

Über #define CASE_LIGHT_ENABLE und #define CASE_LIGHT_PIN 6. (den Pin nicht definieren gibt je nach sonstiger Konfiguration mit Laser oder Spindel Konflikte und der Oberride auf 45 für den 4MAX ist bei den anderen Modellen unpraktisch)
Sieht z.B. ce6fb5330b (die Bedingungen für den MEGA_P sind natürlich nicht erforderlich)

Zum eigentlichen Problem:
Die benötigten Bibliotheken sind beim Build ausgeschlossen. Dazu müsste man einmal die platformio.ini durchsehen und die Excludes nach Bedarf auskommentieren:
7b9e0c4e02/platformio.ini (L173-L179)

Vermutlich genügt die zweite Zeile im verlinkten Ausschnitt, wenn es um einfache RGB(W) an den Servo Pins geht. Für SPI/I²C Controller entsprechend eine weitere Bibliothek dazunehmen.

Case light über servo pin 2 ist sogar default, muss man nur aktivieren. So habe ich meine Beleuchtung angeschlossen, steuerbar über [M355](https://marlinfw.org/docs/gcode/M355.html) Steuert dann ganz ordinär die PWM am Servo Pin an. Ich habe einen 12V LED Streifen mit Transistorstufe drangehängt ohne jede Intelligenz. Über `#define CASE_LIGHT_ENABLE` und `#define CASE_LIGHT_PIN 6`. (den Pin nicht definieren gibt je nach sonstiger Konfiguration mit Laser oder Spindel Konflikte und der Oberride auf 45 für den 4MAX ist bei den anderen Modellen unpraktisch) Sieht z.B. https://github.com/stklcode/Marlin-2-0-x-Anycubic-i3-MEGA-S/commit/ce6fb5330b8571507a5e4f97f5e95ccdb88b4325 (die Bedingungen für den MEGA_P sind natürlich nicht erforderlich) Zum eigentlichen Problem: Die benötigten Bibliotheken sind beim Build ausgeschlossen. Dazu müsste man einmal die _platformio.ini_ durchsehen und die Excludes nach Bedarf auskommentieren: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/blob/7b9e0c4e023b4533ff435551ded8a4041e2a64ba/platformio.ini#L173-L179 Vermutlich genügt die zweite Zeile im verlinkten Ausschnitt, wenn es um einfache RGB(W) an den Servo Pins geht. Für SPI/I²C Controller entsprechend eine weitere Bibliothek dazunehmen.
corradodave commented 2022-01-15 06:19:52 -06:00 (Migrated from github.com)

Hi, Danke für die Antwort,
ja ist nur ein RGBW Streifen, soll beim Aufheizen Rot, Beim Druck Weiß und nach dem Druck Grün Leuchten.

Werde es mal in der Platfdormio.ini probieren danke, aber auskommentieren heißt ja abschalten oder?
Ich will ja eigentlich das er es mit Kompiliert

Hi, Danke für die Antwort, ja ist nur ein RGBW Streifen, soll beim Aufheizen Rot, Beim Druck Weiß und nach dem Druck Grün Leuchten. Werde es mal in der Platfdormio.ini probieren danke, aber auskommentieren heißt ja abschalten oder? Ich will ja eigentlich das er es mit Kompiliert
stklcode commented 2022-01-15 06:32:49 -06:00 (Migrated from github.com)

Jetzt werden die Module ausgeschlossen, darum steht ein - davor. Wenn du die Zeile auskommentieret wird es nicht mehr ausgeschlossen, also mit gebaut ;)

Jetzt werden die Module ausgeschlossen, darum steht ein `-` davor. Wenn du die Zeile auskommentieret wird es nicht mehr ausgeschlossen, also mit gebaut ;)
corradodave commented 2022-01-15 11:40:42 -06:00 (Migrated from github.com)

ne geht leider nicht, da kommen dann tausend andere Fehler :(

ne geht leider nicht, da kommen dann tausend andere Fehler :(
stklcode commented 2022-01-16 03:37:11 -06:00 (Migrated from github.com)

In den Fehlremeldungen steht doch recht detailliert, was fehlt ... GCode M150

Damit kompiliert es (Pins nach Bedarf anzupassen und auf eventuelle Konflikte achten):

configuration.h

#define RGB_LED
//#define RGBW_LED

#if EITHER(RGB_LED, RGBW_LED)
  #define RGB_LED_R_PIN 6
  #define RGB_LED_G_PIN 5
  #define RGB_LED_B_PIN 12
//  #define RGB_LED_W_PIN -1
#endif

platformio.ini

#  -<src/feature/leds/leds.cpp>
...
#  -<src/gcode/feature/leds/M150.cpp>
In den Fehlremeldungen steht doch recht detailliert, was fehlt ... GCode M150 Damit kompiliert es (Pins nach Bedarf anzupassen und auf eventuelle Konflikte achten): **configuration.h** ```c #define RGB_LED //#define RGBW_LED #if EITHER(RGB_LED, RGBW_LED) #define RGB_LED_R_PIN 6 #define RGB_LED_G_PIN 5 #define RGB_LED_B_PIN 12 // #define RGB_LED_W_PIN -1 #endif ``` **platformio.ini** ``` # -<src/feature/leds/leds.cpp> ... # -<src/gcode/feature/leds/M150.cpp> ```
corradodave commented 2022-01-16 12:28:26 -06:00 (Migrated from github.com)

Geht nicht, Kollidiert dann immer mit dem Filament Sensor


Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\bltouch.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\cancel_object.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\caselight.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\controllerfan.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\e_parser.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\host_actions.cpp.o
Marlin\src\MarlinCore.cpp: In function 'void event_filament_runout()':
Marlin\src\MarlinCore.cpp:424:63: error: cannot convert 'const char*' to 'PromptReason' for argument '1' to 'void host_action_prompt_begin(PromptReason, const char*, char)'
       host_action_prompt_begin(PSTR("FilamentRunout T"), false);
                                                               ^
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\leds\leds.cpp.o
Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\leds\printer_event_leds.cpp.o
*** [.pio\build\MEGA_S_TMC_BLT_10\src\src\MarlinCore.cpp.o] Error 1
========================================================================================== [FAILED] Took 4.69 seconds ==========================================================================================

Environment        Status    Duration
-----------------  --------  ------------
MEGA_S_TMC_BLT_10  FAILED    00:00:04.690
==================================================================================== 1 failed, 0 succeeded in 00:00:04.690 ==================================================================================== 
Der Terminalprozess "C:\Users\corra\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'MEGA_S_TMC_BLT_10'" wurde mit folgendem Exitcode beendet: 1.

Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste.
Geht nicht, Kollidiert dann immer mit dem Filament Sensor ``` Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\bltouch.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\cancel_object.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\caselight.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\controllerfan.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\e_parser.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\host_actions.cpp.o Marlin\src\MarlinCore.cpp: In function 'void event_filament_runout()': Marlin\src\MarlinCore.cpp:424:63: error: cannot convert 'const char*' to 'PromptReason' for argument '1' to 'void host_action_prompt_begin(PromptReason, const char*, char)' host_action_prompt_begin(PSTR("FilamentRunout T"), false); ^ Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\leds\leds.cpp.o Compiling .pio\build\MEGA_S_TMC_BLT_10\src\src\feature\leds\printer_event_leds.cpp.o *** [.pio\build\MEGA_S_TMC_BLT_10\src\src\MarlinCore.cpp.o] Error 1 ========================================================================================== [FAILED] Took 4.69 seconds ========================================================================================== Environment Status Duration ----------------- -------- ------------ MEGA_S_TMC_BLT_10 FAILED 00:00:04.690 ==================================================================================== 1 failed, 0 succeeded in 00:00:04.690 ==================================================================================== Der Terminalprozess "C:\Users\corra\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'MEGA_S_TMC_BLT_10'" wurde mit folgendem Exitcode beendet: 1. Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste. ```
stklcode commented 2022-01-16 12:32:56 -06:00 (Migrated from github.com)

Benötigst du "printer_event_leds"? Für die reine Funktion der LEDs über M150 ist es nicht erforderlich.

Benötigst du "printer_event_leds"? Für die reine Funktion der LEDs über M150 ist es nicht erforderlich.
corradodave commented 2022-01-16 13:04:01 -06:00 (Migrated from github.com)

Also hab jetzt mal bisschen Rumprobiert, das geht alles soweit mit den LED`s

Hab mir mal ne Frische Knutwurst version geladen und sobald man die Zeile 2014
//#define FILAMENT_RUNOUT_SENSOR

Einkommentiert, gibts da nen Fehler, hat also garnichts mit den LEDS zutun.

Also hab jetzt mal bisschen Rumprobiert, das geht alles soweit mit den LED`s Hab mir mal ne Frische Knutwurst version geladen und sobald man die Zeile 2014 `//#define FILAMENT_RUNOUT_SENSOR` Einkommentiert, gibts da nen Fehler, hat also garnichts mit den LEDS zutun.
knutwurst commented 2022-01-24 01:45:40 -06:00 (Migrated from github.com)

@corradodave der Filamentsensor wird in dieser Firmware auch über die Touchscreen-Routine gesteuert. Die Zeile von dir darf somit nicht einkommentiert werden.

@corradodave der Filamentsensor wird in dieser Firmware auch über die Touchscreen-Routine gesteuert. Die Zeile von dir darf somit nicht einkommentiert werden.
corradodave commented 2022-01-24 11:10:44 -06:00 (Migrated from github.com)

Dann passt es, LED Feature geht wunderbar mit:

configuration.h

#define RGBW_LED

platformio.ini

#  -<src/feature/leds/leds.cpp>
#  -<src/gcode/feature/leds/M150.cpp>
Dann passt es, LED Feature geht wunderbar mit: configuration.h `#define RGBW_LED` platformio.ini ``` # -<src/feature/leds/leds.cpp> # -<src/gcode/feature/leds/M150.cpp> ```
github-actions[bot] commented 2022-03-25 20:30:53 -05:00 (Migrated from github.com)

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wp/Marlin-2-0-x-Anycubic-i3-MEGA-S#253
No description provided.