From c0d79d1f4151cd5a4b52167864c0c37422452bc9 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Sat, 29 Sep 2018 15:45:26 -0600 Subject: Applied recent Anduril updates to RampingIOS V3: - D4-219C build target. - Moon timing hint. - Better timing consistency on hold-from-off. - Fixed bug where changing ramp style could go to the wrong brightness level. --- spaghetti-monster/rampingios/rampingiosv3.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'spaghetti-monster/rampingios/rampingiosv3.c') diff --git a/spaghetti-monster/rampingios/rampingiosv3.c b/spaghetti-monster/rampingios/rampingiosv3.c index de2de62..5c8f7ea 100644 --- a/spaghetti-monster/rampingios/rampingiosv3.c +++ b/spaghetti-monster/rampingios/rampingiosv3.c @@ -25,8 +25,9 @@ //#define FSM_EMISAR_D1_DRIVER //#define FSM_EMISAR_D1S_DRIVER //#define FSM_EMISAR_D4_DRIVER +//#define FSM_EMISAR_D4_219C_DRIVER //#define FSM_EMISAR_D4S_DRIVER -//#define FSM_EMISAR_D4S_219c_DRIVER +//#define FSM_EMISAR_D4S_219C_DRIVER //#define FSM_FF_ROT66_DRIVER //#define FSM_FW3A_DRIVER @@ -36,6 +37,10 @@ #define USE_THERMAL_REGULATION #define DEFAULT_THERM_CEIL 45 // try not to get hotter than this +// short blip when crossing from "click" to "hold" from off +// (helps the user hit moon mode exactly, instead of holding too long +// or too short) +#define MOON_TIMING_HINT // short blips while ramping #define BLINK_AT_CHANNEL_BOUNDARIES //#define BLINK_AT_RAMP_FLOOR @@ -67,10 +72,13 @@ #elif defined(FSM_EMISAR_D1S_DRIVER) #include "cfg-emisar-d1s.h" +#elif defined(FSM_EMISAR_D4_219C_DRIVER) +#include "cfg-emisar-d4-219c.h" + #elif defined(FSM_EMISAR_D4_DRIVER) #include "cfg-emisar-d4.h" -#elif defined(FSM_EMISAR_D4S_219c_DRIVER) +#elif defined(FSM_EMISAR_D4S_219C_DRIVER) #include "cfg-emisar-d4s-219c.h" #elif defined(FSM_EMISAR_D4S_DRIVER) @@ -275,9 +283,19 @@ uint8_t off_state(EventPtr event, uint16_t arg) { } // hold: go to lowest level else if (event == EV_click1_hold) { + #ifdef MOON_TIMING_HINT + if (arg == 0) { + // let the user know they can let go now to stay at moon + uint8_t temp = actual_level; + set_level(0); + delay_4ms(2); + set_level(temp); + } else + #endif // don't start ramping immediately; // give the user time to release at moon level - if (arg >= HOLD_TIMEOUT) { + //if (arg >= HOLD_TIMEOUT) { // smaller + if (arg >= (!ramp_style) * HOLD_TIMEOUT) { // more consistent set_state(steady_state, 1); } return MISCHIEF_MANAGED; @@ -410,7 +428,7 @@ uint8_t steady_state(EventPtr event, uint16_t arg) { // 3 clicks: toggle smooth vs discrete ramping else if (event == EV_3clicks) { ramp_style = !ramp_style; - memorized_level = nearest_level(memorized_level); + memorized_level = nearest_level(actual_level); #ifdef USE_THERMAL_REGULATION target_level = memorized_level; #ifdef USE_SET_LEVEL_GRADUALLY -- cgit v1.2.3 From 3684b0c49319dcec03d44f89ac1a5c19b8f59feb Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Tue, 9 Oct 2018 18:46:55 -0600 Subject: applied thermal target bugfix from Anduril --- spaghetti-monster/rampingios/rampingiosv3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'spaghetti-monster/rampingios/rampingiosv3.c') diff --git a/spaghetti-monster/rampingios/rampingiosv3.c b/spaghetti-monster/rampingios/rampingiosv3.c index 5c8f7ea..2aeeddf 100644 --- a/spaghetti-monster/rampingios/rampingiosv3.c +++ b/spaghetti-monster/rampingios/rampingiosv3.c @@ -394,10 +394,11 @@ uint8_t steady_state(EventPtr event, uint16_t arg) { if ((arg > mode_min) && (arg < mode_max)) memorized_level = arg; // use the requested level even if not memorized + arg = nearest_level(arg); #ifdef USE_THERMAL_REGULATION target_level = arg; #endif - set_level(nearest_level(arg)); + set_level(arg); #ifdef USE_REVERSING ramp_direction = 1; #endif -- cgit v1.2.3