Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,9 @@
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed

// Define a pin to turn case light on/off
//#define CASE_LIGHT_PIN 4
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
//#define CASE_LIGHT_PIN 11 // M355 S1 or M355 S0 to switch On / Off
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu

//===========================================================================
//============================ Mechanical Settings ==========================
Expand Down
16 changes: 14 additions & 2 deletions Marlin/Marlin_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,16 @@ static uint8_t target_extruder;
;
#endif

#if ENABLED(ULTIPANEL) && HAS_CASE_LIGHT
bool caselight =
#if ENABLED(CASE_LIGHT_DEFAULT_ON)
true
#else
false
#endif
;
#endif

#if ENABLED(DELTA)

#define SIN_60 0.8660254037844386
Expand Down Expand Up @@ -7221,14 +7231,16 @@ inline void gcode_M907() {
inline void gcode_M355() {
static bool case_light_on
#if ENABLED(CASE_LIGHT_DEFAULT_ON)
= true
= true;
#else
;
;
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops. Already patched this region.

static uint8_t case_light_brightness = 255;
if (code_seen('P')) case_light_brightness = code_value_byte();
if (code_seen('S')) {
case_light_on = code_value_bool();
if (case_light_on == 0) caselight = false;
if (case_light_on == 1) caselight = true;
Copy link
Member

@thinkyhead thinkyhead Nov 19, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This instead:

caselight = case_light_on = code_value_bool();

…or actually, just make case_light_on a global so it can be used by ultralcd.cpp.

digitalWrite(CASE_LIGHT_PIN, case_light_on ? HIGH : LOW);
analogWrite(CASE_LIGHT_PIN, case_light_on ? case_light_brightness : 0);
}
Expand Down
2 changes: 2 additions & 0 deletions Marlin/language_de.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,8 @@
#define MSG_INFO_EXTRUDERS "Extruders"
#define MSG_INFO_BAUDRATE "Baud"
#define MSG_INFO_PROTOCOL "Protokol"
#define MSG_LIGHTS_ON "Gehäuse Licht an"
#define MSG_LIGHTS_OFF "Gehäuse Licht aus"

#if LCD_WIDTH > 19
#define MSG_INFO_PRINT_COUNT "Gesamte Drucke"
Expand Down
6 changes: 6 additions & 0 deletions Marlin/language_en.h
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,12 @@
#ifndef MSG_INFO_PROTOCOL
#define MSG_INFO_PROTOCOL "Protocol"
#endif
#ifndef MSG_LIGHTS_ON
#define MSG_LIGHTS_ON "Case light on"
#endif
#ifndef MSG_LIGHTS_OFF
#define MSG_LIGHTS_OFF "Case light off"
#endif

#if LCD_WIDTH > 19
#ifndef MSG_INFO_PRINT_COUNT
Expand Down
13 changes: 12 additions & 1 deletion Marlin/ultralcd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
#if HAS_POWER_SWITCH
extern bool powersupply;
#endif
#if HAS_CASE_LIGHT
extern bool caselight;
#endif
Copy link
Member

@thinkyhead thinkyhead Nov 19, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of two flags for the same thing, just use extern bool case_light_on and make case_light_on a global instead of a static local to gcode_M355.

const float manual_feedrate_mm_m[] = MANUAL_FEEDRATE;
static void lcd_main_menu();
static void lcd_tune_menu();
Expand Down Expand Up @@ -580,7 +583,15 @@ void kill_screen(const char* lcd_msg) {
static void lcd_main_menu() {
START_MENU();
MENU_BACK(MSG_WATCH);

//
// Switch case light on/off
//
#if HAS_CASE_LIGHT && ENABLED(MENU_ITEM_CASE_LIGHT)
if (caselight)
MENU_ITEM(gcode, MSG_LIGHTS_OFF, PSTR("M355 S0"));
else
MENU_ITEM(gcode, MSG_LIGHTS_ON, PSTR("M355 S1"));
#endif
#if ENABLED(BLTOUCH)
if (!endstops.z_probe_enabled && TEST_BLTOUCH())
MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_ENDSTOP_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET)));
Expand Down