LED via Display schalten beim RF100
Verfasst: Mo 3. Jul 2017, 22:04
Hallo allerseits,
wie der Titel schon sagt, habe ich bei meinem RF100 die LED per Controller schaltbar gemacht. Das ganze war mit einer kleinen Umbauarbeit verbunden und ein bischen umschreiben der Firmware.
Realisiert habe ich das ganze mit einem Relaismodul von Groove dass es bei Conrad für 3,99€ gibt. Die Bestellnummer ist 1425554.
Benötigt wird neben dem Relais noch ein Stück Kabel.
Am Board habe ich den Steckplatz D11 verwendet. Hier habe ich am mitgelieferten Kabel vom Relais an einer Seite den Stecker abgeschitten und die Kabelenden direkt am Board verlötet. Es wird die rote, schwarze und gelbe Leitung benötigt. Die Reihenfolge kann am Bild entnommen werden. Eine Pinleiste einzulöten wäre zwar proffessioneller und schöner gewesen, hatte aber keine da.
An das Relais wird nun die LED angeschlossen. Dazu einfach das schwarze Kabel vom Step-down aus dem Stecker der Spannungsversorgung entnehmen und am Terminal des Ralais anschliessen. Vom Relais mit dem zusätzlichen Kabel wieder zurück an die Spannungsversorgung.
Das Relais habe ich mit einer Schraube vom Step-down an einem der Gewinde verschraubt. Platz habe ich geschaffen, indem ich den Step-down versetz habe. Für die original Inbusschraube muss allerdings die Bohrung am Relaismodul vergrößert werden.
Der Drucker kann nun wieder zusammengebaut werden denn jetzt folgt die Software.
Da das Relais ein "Normaly open" ist, muss der Pin 11 am Bord also auf High gesetzt werden damit die LED schon beim anschalten vom Drucker an geht. Um die LED per Controler zu schalten muss ebenfalls ein Menü geschrieben werden.
Ich beschreibe hier die Änderungen des Marlin 1.0.3 Sourcecode der auch zum Download bei Conrad bereitgestellt ist.
ES FEHLEN JEDOCH HINTERHER "LOAD FILAMENT", "UNLOAD FILAMENT" UND "LEVEL BED". Diese müssen selbst geschrieben werden da dieser "offizielle RF100 Sourcecode" lediglich die Marlin 1.0.3 Grundsoftware ist in der halt die nötigsten Daten des RF100 eingepflegt wurden.
1. in der Conditionals.h in Zeile 465 muss:
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT))
2. In der Configuration_adv.h ab Zeile 260 muss:
#define CASE_LIGHT_ENABLE
#ifdef CASE_LIGHT_ENABLE
#define CASE_LIGHT_PIN 11
#define MENU_ITEM_CASE_LIGHT
#endif
3. In der Marlin_main.cpp ab Zeile 530 muss:
void setup_caselight() {
#if HAS_CASELIGHT
pinMode(CASE_LIGHT_PIN, OUTPUT);
#ifdef CASE_LIGHT_ENABLE
WRITE(CASE_LIGHT_PIN, HIGH);
#endif
#endif
}
4. In der pins_RAMPS_13.h in Zeile 103 muss:
#define CASE_LIGHT_PIN 11
5. In der language.h ab Zeile 235 muss:
#define MSG_LIGHT "Light"
#define MSG_LIGHT_ON "Light on"
#define MSG_LIGHT_OFF "Light off"
6. In der language.de.h ab Zeile 127 muss:
#define MSG_LIGHT "Beleuchtung"
#define MSG_LIGHT_ON "Licht an"
#define MSG_LIGHT_OFF "Licht aus"
7. In der language.en.h ab Zeile 429 muss:
#ifndef MSG_LIGHT
#define MSG_LIGHT "Light"
#endif
#ifndef MSG_LIGHT_ON
#define MSG_LIGHT_ON "Light on"
#endif
#ifndef MSG_LIGHT_OFF
#define MSG_LIGHT_OFF "Light off"
#endif
8. In der Ultralcd.cpp muss in Zeile 70:
static void lcd_control_light_menu();
Ab Zeile 954 muss:
#ifdef MENU_ITEM_CASE_LIGHT
MENU_ITEM(submenu, MSG_LIGHT, lcd_control_light_menu);
#endif
Ab Zeile 1215 muss:
/**
*
* "Control" > "Caselight" submenu
*
*/
static void lcd_control_light_menu() {
START_MENU();
MENU_ITEM(back, MSG_CONTROL, lcd_control_menu);
MENU_ITEM(gcode, MSG_LIGHT_OFF, PSTR("M42 P11 S0"));
MENU_ITEM(gcode, MSG_LIGHT_OFF, PSTR(M42 P11 S255"));
END_MENU();
}
Das wars. Nun kann man mit dem Controller die LED ausschalten was ja gerade bei längerem Druck Sinn macht. Man hätte auch einen Schalter am Gehäuse anbringen können aber ich wollte den umständlichen Weg
Die Zeilennummern könnten ggf. zu Eurer genutzten Firmware variieren. Verlasst Euch da bitte also nicht allzu sehr auf meine Anleitung.
Eigentlich wollte ich den Menüpunkt so machen, dass beim anwählen von "Beleuchtung" am Display erscheint: "Licht: aus" und wenn man da drauf klickt, die LED eben aus geht und dann am Display sich die Zeile ändert in: "Licht: an".
Also quasi so ein Wechseltext mit Funktion aber ich habs nach Stundenlangem probieren nicht hinbekommen.
Ich habe bewusst die Firmware so geschrieben, dass die Funktion bzw. das Menü zentral via Configuration_adv deaktivierbar ist. Das kann aber jeder für sich entscheiden.
Für Anregungen, Kritik oder Tipps zu meinem eigentlichen Menüwunsch bin ich offen.
wie der Titel schon sagt, habe ich bei meinem RF100 die LED per Controller schaltbar gemacht. Das ganze war mit einer kleinen Umbauarbeit verbunden und ein bischen umschreiben der Firmware.
Realisiert habe ich das ganze mit einem Relaismodul von Groove dass es bei Conrad für 3,99€ gibt. Die Bestellnummer ist 1425554.
Benötigt wird neben dem Relais noch ein Stück Kabel.
Am Board habe ich den Steckplatz D11 verwendet. Hier habe ich am mitgelieferten Kabel vom Relais an einer Seite den Stecker abgeschitten und die Kabelenden direkt am Board verlötet. Es wird die rote, schwarze und gelbe Leitung benötigt. Die Reihenfolge kann am Bild entnommen werden. Eine Pinleiste einzulöten wäre zwar proffessioneller und schöner gewesen, hatte aber keine da.
An das Relais wird nun die LED angeschlossen. Dazu einfach das schwarze Kabel vom Step-down aus dem Stecker der Spannungsversorgung entnehmen und am Terminal des Ralais anschliessen. Vom Relais mit dem zusätzlichen Kabel wieder zurück an die Spannungsversorgung.
Das Relais habe ich mit einer Schraube vom Step-down an einem der Gewinde verschraubt. Platz habe ich geschaffen, indem ich den Step-down versetz habe. Für die original Inbusschraube muss allerdings die Bohrung am Relaismodul vergrößert werden.
Der Drucker kann nun wieder zusammengebaut werden denn jetzt folgt die Software.
Da das Relais ein "Normaly open" ist, muss der Pin 11 am Bord also auf High gesetzt werden damit die LED schon beim anschalten vom Drucker an geht. Um die LED per Controler zu schalten muss ebenfalls ein Menü geschrieben werden.
Ich beschreibe hier die Änderungen des Marlin 1.0.3 Sourcecode der auch zum Download bei Conrad bereitgestellt ist.
ES FEHLEN JEDOCH HINTERHER "LOAD FILAMENT", "UNLOAD FILAMENT" UND "LEVEL BED". Diese müssen selbst geschrieben werden da dieser "offizielle RF100 Sourcecode" lediglich die Marlin 1.0.3 Grundsoftware ist in der halt die nötigsten Daten des RF100 eingepflegt wurden.
1. in der Conditionals.h in Zeile 465 muss:
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT))
2. In der Configuration_adv.h ab Zeile 260 muss:
#define CASE_LIGHT_ENABLE
#ifdef CASE_LIGHT_ENABLE
#define CASE_LIGHT_PIN 11
#define MENU_ITEM_CASE_LIGHT
#endif
3. In der Marlin_main.cpp ab Zeile 530 muss:
void setup_caselight() {
#if HAS_CASELIGHT
pinMode(CASE_LIGHT_PIN, OUTPUT);
#ifdef CASE_LIGHT_ENABLE
WRITE(CASE_LIGHT_PIN, HIGH);
#endif
#endif
}
4. In der pins_RAMPS_13.h in Zeile 103 muss:
#define CASE_LIGHT_PIN 11
5. In der language.h ab Zeile 235 muss:
#define MSG_LIGHT "Light"
#define MSG_LIGHT_ON "Light on"
#define MSG_LIGHT_OFF "Light off"
6. In der language.de.h ab Zeile 127 muss:
#define MSG_LIGHT "Beleuchtung"
#define MSG_LIGHT_ON "Licht an"
#define MSG_LIGHT_OFF "Licht aus"
7. In der language.en.h ab Zeile 429 muss:
#ifndef MSG_LIGHT
#define MSG_LIGHT "Light"
#endif
#ifndef MSG_LIGHT_ON
#define MSG_LIGHT_ON "Light on"
#endif
#ifndef MSG_LIGHT_OFF
#define MSG_LIGHT_OFF "Light off"
#endif
8. In der Ultralcd.cpp muss in Zeile 70:
static void lcd_control_light_menu();
Ab Zeile 954 muss:
#ifdef MENU_ITEM_CASE_LIGHT
MENU_ITEM(submenu, MSG_LIGHT, lcd_control_light_menu);
#endif
Ab Zeile 1215 muss:
/**
*
* "Control" > "Caselight" submenu
*
*/
static void lcd_control_light_menu() {
START_MENU();
MENU_ITEM(back, MSG_CONTROL, lcd_control_menu);
MENU_ITEM(gcode, MSG_LIGHT_OFF, PSTR("M42 P11 S0"));
MENU_ITEM(gcode, MSG_LIGHT_OFF, PSTR(M42 P11 S255"));
END_MENU();
}
Das wars. Nun kann man mit dem Controller die LED ausschalten was ja gerade bei längerem Druck Sinn macht. Man hätte auch einen Schalter am Gehäuse anbringen können aber ich wollte den umständlichen Weg
Die Zeilennummern könnten ggf. zu Eurer genutzten Firmware variieren. Verlasst Euch da bitte also nicht allzu sehr auf meine Anleitung.
Eigentlich wollte ich den Menüpunkt so machen, dass beim anwählen von "Beleuchtung" am Display erscheint: "Licht: aus" und wenn man da drauf klickt, die LED eben aus geht und dann am Display sich die Zeile ändert in: "Licht: an".
Also quasi so ein Wechseltext mit Funktion aber ich habs nach Stundenlangem probieren nicht hinbekommen.
Ich habe bewusst die Firmware so geschrieben, dass die Funktion bzw. das Menü zentral via Configuration_adv deaktivierbar ist. Das kann aber jeder für sich entscheiden.
Für Anregungen, Kritik oder Tipps zu meinem eigentlichen Menüwunsch bin ich offen.