From 597b3457588dc8fb308b579846e686ef31477105 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 24 Sep 2021 05:18:42 -0600 Subject: copied Noctigon K1 -> MD11 to start defining a new light --- spaghetti-monster/anduril/cfg-noctigon-md11.h | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11.h (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11.h b/spaghetti-monster/anduril/cfg-noctigon-md11.h new file mode 100644 index 0000000..fb2a89c --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-md11.h @@ -0,0 +1,61 @@ +// Noctigon K1 config options for Anduril +#define MODEL_NUMBER "0251" +// (originally known as Emisar D1S v2) +#include "hwdef-Noctigon_K1.h" +#include "hank-cfg.h" +// ATTINY: 1634 + +// this light can safely run a bit hotter than most +#undef DEFAULT_THERM_CEIL +#define DEFAULT_THERM_CEIL 55 + +// this light has three aux LED channels: R, G, B +#define USE_AUX_RGB_LEDS +#define USE_AUX_RGB_LEDS_WHILE_ON +#define USE_INDICATOR_LED_WHILE_RAMPING + + +// ../../bin/level_calc.py cube 1 150 7135 1 4 1300 +// (with max_pwm set to 1023) +// (level 0 flickers and isn't relevant on a thrower, so it's omitted) +#define RAMP_LENGTH 150 +#define PWM1_LEVELS 1,1,2,2,3,3,4,4,5,6,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,23,24,26,27,29,31,32,34,36,38,40,43,45,47,49,52,54,57,60,62,65,68,71,74,77,81,84,87,91,95,98,102,106,110,114,118,122,127,131,136,141,145,150,155,160,166,171,176,182,188,193,199,205,211,218,224,231,237,244,251,258,265,272,280,287,295,303,310,319,327,335,344,352,361,370,379,388,397,407,416,426,436,446,457,467,477,488,499,510,521,533,544,556,568,580,592,604,617,629,642,655,668,682,695,709,723,737,751,766,781,795,810,826,841,857,872,888,904,921,937,954,971,988,1005,1023 +#define MAX_1x7135 50 + +// the entire ramp is regulated; don't blink halfway up +#ifdef BLINK_AT_RAMP_MIDDLE +#undef BLINK_AT_RAMP_MIDDLE +#endif + +// don't slow down at low levels; this isn't that sort of light +// (it needs to stay at full speed for the 10-bit PWM to work) +#ifdef USE_DYNAMIC_UNDERCLOCKING +#undef USE_DYNAMIC_UNDERCLOCKING +#endif + +#define RAMP_SMOOTH_FLOOR 1 +#define RAMP_SMOOTH_CEIL 130 +// 10, 30, [50], 70, 90, 110, 130 +#define RAMP_DISCRETE_FLOOR 10 +#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL +#define RAMP_DISCRETE_STEPS 7 + +// safe limit ~75% power +#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR +#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL +#define SIMPLE_UI_STEPS 5 + +// make candle mode wobble more +#define CANDLE_AMPLITUDE 32 + +// stop panicking at ~70% power or ~600 lm +#define THERM_FASTER_LEVEL 130 + +#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly +#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting + +// slow down party strobe; this driver can't pulse for 1ms or less +#define PARTY_STROBE_ONTIME 2 + +#define THERM_CAL_OFFSET 5 + -- cgit v1.2.3 From acf62345e94439df0212c388d5e7143a50005825 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 24 Sep 2021 05:28:15 -0600 Subject: just a few adjustments to start with --- spaghetti-monster/anduril/cfg-noctigon-md11.h | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11.h b/spaghetti-monster/anduril/cfg-noctigon-md11.h index fb2a89c..ba72607 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-md11.h +++ b/spaghetti-monster/anduril/cfg-noctigon-md11.h @@ -1,18 +1,17 @@ -// Noctigon K1 config options for Anduril -#define MODEL_NUMBER "0251" -// (originally known as Emisar D1S v2) -#include "hwdef-Noctigon_K1.h" +// Noctigon MD11 config options for Anduril +#define MODEL_NUMBER "0271" +#include "hwdef-Noctigon_MD11.h" #include "hank-cfg.h" // ATTINY: 1634 -// this light can safely run a bit hotter than most -#undef DEFAULT_THERM_CEIL -#define DEFAULT_THERM_CEIL 55 - // this light has three aux LED channels: R, G, B #define USE_AUX_RGB_LEDS -#define USE_AUX_RGB_LEDS_WHILE_ON -#define USE_INDICATOR_LED_WHILE_RAMPING +// ... and a single LED in the button +#define USE_BUTTON_LED +// don't use aux LEDs while main LED is on +#ifdef USE_INDICATOR_LED_WHILE_RAMPING +#undef USE_INDICATOR_LED_WHILE_RAMPING +#endif // ../../bin/level_calc.py cube 1 150 7135 1 4 1300 @@ -51,8 +50,8 @@ // stop panicking at ~70% power or ~600 lm #define THERM_FASTER_LEVEL 130 -#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly -#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting +//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly +//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting // slow down party strobe; this driver can't pulse for 1ms or less #define PARTY_STROBE_ONTIME 2 -- cgit v1.2.3 From fd50e9006451b8cad45560b84aa9a40b39e88cca Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 24 Sep 2021 05:45:26 -0600 Subject: added dynamic PWM and FET to MD11 --- spaghetti-monster/anduril/cfg-noctigon-md11.h | 39 +++++++++++++++++---------- 1 file changed, 25 insertions(+), 14 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11.h b/spaghetti-monster/anduril/cfg-noctigon-md11.h index ba72607..ea768af 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-md11.h +++ b/spaghetti-monster/anduril/cfg-noctigon-md11.h @@ -14,25 +14,28 @@ #endif -// ../../bin/level_calc.py cube 1 150 7135 1 4 1300 -// (with max_pwm set to 1023) -// (level 0 flickers and isn't relevant on a thrower, so it's omitted) +// power channels: +// - linear: 5A? +// - FET: DD #define RAMP_LENGTH 150 -#define PWM1_LEVELS 1,1,2,2,3,3,4,4,5,6,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,23,24,26,27,29,31,32,34,36,38,40,43,45,47,49,52,54,57,60,62,65,68,71,74,77,81,84,87,91,95,98,102,106,110,114,118,122,127,131,136,141,145,150,155,160,166,171,176,182,188,193,199,205,211,218,224,231,237,244,251,258,265,272,280,287,295,303,310,319,327,335,344,352,361,370,379,388,397,407,416,426,436,446,457,467,477,488,499,510,521,533,544,556,568,580,592,604,617,629,642,655,668,682,695,709,723,737,751,766,781,795,810,826,841,857,872,888,904,921,937,954,971,988,1005,1023 -#define MAX_1x7135 50 +#define USE_DYN_PWM +// maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:16384:255 +// (plus one extra level at the beginning for moon) +#define PWM1_LEVELS 0,1,1,2,2,3,4,5,6,7,8,9,11,12,14,16,17,19,22,24,26,29,31,34,37,40,43,46,49,53,56,60,63,67,71,74,78,82,86,89,93,96,99,103,105,108,110,112,114,115,116,116,115,114,112,109,106,101,95,89,81,71,60,48,34,19,20,21,22,23,24,26,27,28,30,31,32,34,36,37,39,41,43,45,47,49,51,53,56,58,61,63,66,69,72,75,78,81,84,88,91,95,99,103,107,111,115,119,124,129,133,138,143,149,154,159,165,171,177,183,189,196,203,210,217,224,231,239,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0 +#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,20,30,41,52,63,75,87,99,112,125,138,151,165,179,194,208,224,239,255 +#define PWM_TOPS 16383,16383,11750,14690,9183,12439,13615,13955,13877,13560,13093,12529,13291,12513,12756,12769,11893,11747,12085,11725,11329,11316,10851,10713,10518,10282,10016,9729,9428,9298,8971,8794,8459,8257,8043,7715,7497,7275,7052,6753,6538,6260,5994,5798,5501,5271,5006,4758,4525,4268,4030,3775,3508,3263,3010,2752,2517,2256,1998,1763,1512,1249,994,749,497,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 -// the entire ramp is regulated; don't blink halfway up +#define MAX_1x7135 130 +#define DEFAULT_LEVEL 50 +#define HALFSPEED_LEVEL 12 +#define QUARTERSPEED_LEVEL 4 + +// don't blink halfway up #ifdef BLINK_AT_RAMP_MIDDLE #undef BLINK_AT_RAMP_MIDDLE #endif -// don't slow down at low levels; this isn't that sort of light -// (it needs to stay at full speed for the 10-bit PWM to work) -#ifdef USE_DYNAMIC_UNDERCLOCKING -#undef USE_DYNAMIC_UNDERCLOCKING -#endif - -#define RAMP_SMOOTH_FLOOR 1 +#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable #define RAMP_SMOOTH_CEIL 130 // 10, 30, [50], 70, 90, 110, 130 #define RAMP_DISCRETE_FLOOR 10 @@ -54,7 +57,15 @@ //#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting // slow down party strobe; this driver can't pulse for 1ms or less -#define PARTY_STROBE_ONTIME 2 +// (only needed on no-FET build) +//#define PARTY_STROBE_ONTIME 2 #define THERM_CAL_OFFSET 5 +// the power regulator is a bit slow, so push it harder for a quick response from off +#define DEFAULT_JUMP_START_LEVEL 21 +//#define BLINK_BRIGHTNESS DEFAULT_LEVEL +//#define BLINK_ONCE_TIME 12 + +// can't reset the normal way because power is connected before the button +#define USE_SOFT_FACTORY_RESET -- cgit v1.2.3 From 7b10abf65af61b827e01e215155045a92278599b Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 24 Sep 2021 06:23:08 -0600 Subject: added MD11-noFET, tweaked values in MD11-FET build too --- .../anduril/cfg-noctigon-md11-nofet.h | 42 ++++++++++++++++++++++ spaghetti-monster/anduril/cfg-noctigon-md11.h | 7 ++-- 2 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h b/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h new file mode 100644 index 0000000..0efe85f --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h @@ -0,0 +1,42 @@ +// Noctigon MD11-noFET config options for Anduril +#include "cfg-noctigon-md11.h" +#undef MODEL_NUMBER +#define MODEL_NUMBER "0272" +// ATTINY: 1634 + +// turn off the DD FET +#undef PWM_CHANNELS +#define PWM_CHANNELS 1 + +// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 +#undef PWM1_LEVELS +#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 +#undef PWM2_LEVELS +#undef PWM_TOPS +#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +#undef DEFAULT_LEVEL +#define DEFAULT_LEVEL 50 +#undef MAX_1x7135 +#define MAX_1x7135 150 + +// make candle mode wobble more +#ifdef CANDLE_AMPLITUDE +#undef CANDLE_AMPLITUDE +#endif +#define CANDLE_AMPLITUDE 35 + + +// slow down party strobe; this driver can't pulse for 1ms or less +// (only needed on no-FET build) +#define PARTY_STROBE_ONTIME 2 + +// jump start a bit higher than base driver +#undef DEFAULT_JUMP_START_LEVEL +#define DEFAULT_JUMP_START_LEVEL 25 + +// stop panicking at ~70% power or ~600 lm +#undef THERM_FASTER_LEVEL +#define THERM_FASTER_LEVEL 130 +#undef MIN_THERM_STEPDOWN +#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range + diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11.h b/spaghetti-monster/anduril/cfg-noctigon-md11.h index ea768af..130e05c 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-md11.h +++ b/spaghetti-monster/anduril/cfg-noctigon-md11.h @@ -48,10 +48,11 @@ #define SIMPLE_UI_STEPS 5 // make candle mode wobble more -#define CANDLE_AMPLITUDE 32 +#define CANDLE_AMPLITUDE 30 // stop panicking at ~70% power or ~600 lm #define THERM_FASTER_LEVEL 130 +#define MIN_THERM_STEPDOWN 66 // must be > end of dynamic PWM range //#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly //#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting @@ -64,8 +65,8 @@ // the power regulator is a bit slow, so push it harder for a quick response from off #define DEFAULT_JUMP_START_LEVEL 21 -//#define BLINK_BRIGHTNESS DEFAULT_LEVEL -//#define BLINK_ONCE_TIME 12 +#define BLINK_BRIGHTNESS DEFAULT_LEVEL +#define BLINK_ONCE_TIME 12 // can't reset the normal way because power is connected before the button #define USE_SOFT_FACTORY_RESET -- cgit v1.2.3 From 16de2bade47b0e11495e06bfdb702dc346f8c5bc Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Mon, 4 Oct 2021 02:54:48 -0600 Subject: added early initial attempt at a boost/12V/6V version of the MD11 (had to guess about some hardware details, unsure if correct) --- spaghetti-monster/anduril/cfg-noctigon-md11-12v.h | 70 +++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11-12v.h (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h b/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h new file mode 100644 index 0000000..1c90ab1 --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h @@ -0,0 +1,70 @@ +// Noctigon MD11 (12V) config options for Anduril +#define MODEL_NUMBER "0273" +#include "hwdef-Noctigon_MD11-12V.h" +#include "hank-cfg.h" +// ATTINY: 1634 + +// this light has three aux LED channels: R, G, B +#define USE_AUX_RGB_LEDS +// ... and a single LED in the button +#define USE_BUTTON_LED +// don't use aux LEDs while main LED is on +#ifdef USE_INDICATOR_LED_WHILE_RAMPING +#undef USE_INDICATOR_LED_WHILE_RAMPING +#endif + + +// power channels: +// - linear: 5A? +// - DD FET: none (can't do DD on a boost driver) +#define RAMP_LENGTH 150 +#define USE_DYN_PWM + +// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 +#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 +#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +#define DEFAULT_LEVEL 50 +#define MAX_1x7135 150 + +#define HALFSPEED_LEVEL 12 +#define QUARTERSPEED_LEVEL 4 + +// don't blink halfway up +#ifdef BLINK_AT_RAMP_MIDDLE +#undef BLINK_AT_RAMP_MIDDLE +#endif + +#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable +#define RAMP_SMOOTH_CEIL 130 +// 10, 30, [50], 70, 90, 110, 130 +#define RAMP_DISCRETE_FLOOR 10 +#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL +#define RAMP_DISCRETE_STEPS 7 + +// safe limit ~75% power +#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR +#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL +#define SIMPLE_UI_STEPS 5 + +// make candle mode wobble more +#define CANDLE_AMPLITUDE 30 + +// stop panicking at ~70% power or ~600 lm +#define THERM_FASTER_LEVEL 130 +#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range + +//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly +//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting + +// slow down party strobe; this driver can't pulse for 1ms or less +#define PARTY_STROBE_ONTIME 4 + +#define THERM_CAL_OFFSET 5 + +// the power regulator is a bit slow, so push it harder for a quick response from off +#define DEFAULT_JUMP_START_LEVEL 21 +#define BLINK_BRIGHTNESS DEFAULT_LEVEL +#define BLINK_ONCE_TIME 12 + +// added for convenience +#define USE_SOFT_FACTORY_RESET -- cgit v1.2.3 From 05e4a4f94af32d18388e13c1be7ef40174ba749e Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Tue, 12 Oct 2021 16:39:00 -0600 Subject: renamed MD11 -> DM11 because Hank changed the product name --- spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h | 70 +++++++++++++++++++++ .../anduril/cfg-noctigon-dm11-nofet.h | 42 +++++++++++++ spaghetti-monster/anduril/cfg-noctigon-dm11.h | 72 ++++++++++++++++++++++ spaghetti-monster/anduril/cfg-noctigon-md11-12v.h | 70 --------------------- .../anduril/cfg-noctigon-md11-nofet.h | 42 ------------- spaghetti-monster/anduril/cfg-noctigon-md11.h | 72 ---------------------- 6 files changed, 184 insertions(+), 184 deletions(-) create mode 100644 spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h create mode 100644 spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h create mode 100644 spaghetti-monster/anduril/cfg-noctigon-dm11.h delete mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11-12v.h delete mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h delete mode 100644 spaghetti-monster/anduril/cfg-noctigon-md11.h (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h new file mode 100644 index 0000000..27af461 --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h @@ -0,0 +1,70 @@ +// Noctigon DM11 (12V) config options for Anduril +#define MODEL_NUMBER "0273" +#include "hwdef-Noctigon_DM11-12V.h" +#include "hank-cfg.h" +// ATTINY: 1634 + +// this light has three aux LED channels: R, G, B +#define USE_AUX_RGB_LEDS +// ... and a single LED in the button +#define USE_BUTTON_LED +// don't use aux LEDs while main LED is on +#ifdef USE_INDICATOR_LED_WHILE_RAMPING +#undef USE_INDICATOR_LED_WHILE_RAMPING +#endif + + +// power channels: +// - linear: 5A? +// - DD FET: none (can't do DD on a boost driver) +#define RAMP_LENGTH 150 +#define USE_DYN_PWM + +// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 +#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 +#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +#define DEFAULT_LEVEL 50 +#define MAX_1x7135 150 + +#define HALFSPEED_LEVEL 12 +#define QUARTERSPEED_LEVEL 4 + +// don't blink halfway up +#ifdef BLINK_AT_RAMP_MIDDLE +#undef BLINK_AT_RAMP_MIDDLE +#endif + +#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable +#define RAMP_SMOOTH_CEIL 130 +// 10, 30, [50], 70, 90, 110, 130 +#define RAMP_DISCRETE_FLOOR 10 +#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL +#define RAMP_DISCRETE_STEPS 7 + +// safe limit ~75% power +#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR +#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL +#define SIMPLE_UI_STEPS 5 + +// make candle mode wobble more +#define CANDLE_AMPLITUDE 30 + +// stop panicking at ~70% power or ~600 lm +#define THERM_FASTER_LEVEL 130 +#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range + +//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly +//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting + +// slow down party strobe; this driver can't pulse for 1ms or less +#define PARTY_STROBE_ONTIME 4 + +#define THERM_CAL_OFFSET 5 + +// the power regulator is a bit slow, so push it harder for a quick response from off +#define DEFAULT_JUMP_START_LEVEL 21 +#define BLINK_BRIGHTNESS DEFAULT_LEVEL +#define BLINK_ONCE_TIME 12 + +// added for convenience +#define USE_SOFT_FACTORY_RESET diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h new file mode 100644 index 0000000..a1249b1 --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h @@ -0,0 +1,42 @@ +// Noctigon DM11-noFET config options for Anduril +#include "cfg-noctigon-dm11.h" +#undef MODEL_NUMBER +#define MODEL_NUMBER "0272" +// ATTINY: 1634 + +// turn off the DD FET +#undef PWM_CHANNELS +#define PWM_CHANNELS 1 + +// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 +#undef PWM1_LEVELS +#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 +#undef PWM2_LEVELS +#undef PWM_TOPS +#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +#undef DEFAULT_LEVEL +#define DEFAULT_LEVEL 50 +#undef MAX_1x7135 +#define MAX_1x7135 150 + +// make candle mode wobble more +#ifdef CANDLE_AMPLITUDE +#undef CANDLE_AMPLITUDE +#endif +#define CANDLE_AMPLITUDE 35 + + +// slow down party strobe; this driver can't pulse for 1ms or less +// (only needed on no-FET build) +#define PARTY_STROBE_ONTIME 2 + +// jump start a bit higher than base driver +#undef DEFAULT_JUMP_START_LEVEL +#define DEFAULT_JUMP_START_LEVEL 25 + +// stop panicking at ~70% power or ~600 lm +#undef THERM_FASTER_LEVEL +#define THERM_FASTER_LEVEL 130 +#undef MIN_THERM_STEPDOWN +#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range + diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11.h b/spaghetti-monster/anduril/cfg-noctigon-dm11.h new file mode 100644 index 0000000..89d2fe6 --- /dev/null +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11.h @@ -0,0 +1,72 @@ +// Noctigon DM11 config options for Anduril +#define MODEL_NUMBER "0271" +#include "hwdef-Noctigon_DM11.h" +#include "hank-cfg.h" +// ATTINY: 1634 + +// this light has three aux LED channels: R, G, B +#define USE_AUX_RGB_LEDS +// ... and a single LED in the button +#define USE_BUTTON_LED +// don't use aux LEDs while main LED is on +#ifdef USE_INDICATOR_LED_WHILE_RAMPING +#undef USE_INDICATOR_LED_WHILE_RAMPING +#endif + + +// power channels: +// - linear: 5A? +// - FET: DD +#define RAMP_LENGTH 150 +#define USE_DYN_PWM +// maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:16384:255 +// (plus one extra level at the beginning for moon) +#define PWM1_LEVELS 0,1,1,2,2,3,4,5,6,7,8,9,11,12,14,16,17,19,22,24,26,29,31,34,37,40,43,46,49,53,56,60,63,67,71,74,78,82,86,89,93,96,99,103,105,108,110,112,114,115,116,116,115,114,112,109,106,101,95,89,81,71,60,48,34,19,20,21,22,23,24,26,27,28,30,31,32,34,36,37,39,41,43,45,47,49,51,53,56,58,61,63,66,69,72,75,78,81,84,88,91,95,99,103,107,111,115,119,124,129,133,138,143,149,154,159,165,171,177,183,189,196,203,210,217,224,231,239,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0 +#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,20,30,41,52,63,75,87,99,112,125,138,151,165,179,194,208,224,239,255 +#define PWM_TOPS 16383,16383,11750,14690,9183,12439,13615,13955,13877,13560,13093,12529,13291,12513,12756,12769,11893,11747,12085,11725,11329,11316,10851,10713,10518,10282,10016,9729,9428,9298,8971,8794,8459,8257,8043,7715,7497,7275,7052,6753,6538,6260,5994,5798,5501,5271,5006,4758,4525,4268,4030,3775,3508,3263,3010,2752,2517,2256,1998,1763,1512,1249,994,749,497,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 + +#define MAX_1x7135 130 +#define DEFAULT_LEVEL 50 +#define HALFSPEED_LEVEL 12 +#define QUARTERSPEED_LEVEL 4 + +// don't blink halfway up +#ifdef BLINK_AT_RAMP_MIDDLE +#undef BLINK_AT_RAMP_MIDDLE +#endif + +#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable +#define RAMP_SMOOTH_CEIL 130 +// 10, 30, [50], 70, 90, 110, 130 +#define RAMP_DISCRETE_FLOOR 10 +#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL +#define RAMP_DISCRETE_STEPS 7 + +// safe limit ~75% power +#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR +#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL +#define SIMPLE_UI_STEPS 5 + +// make candle mode wobble more +#define CANDLE_AMPLITUDE 30 + +// stop panicking at ~70% power or ~600 lm +#define THERM_FASTER_LEVEL 130 +#define MIN_THERM_STEPDOWN 66 // must be > end of dynamic PWM range + +//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly +//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting + +// slow down party strobe; this driver can't pulse for 1ms or less +// (only needed on no-FET build) +//#define PARTY_STROBE_ONTIME 2 + +#define THERM_CAL_OFFSET 5 + +// the power regulator is a bit slow, so push it harder for a quick response from off +#define DEFAULT_JUMP_START_LEVEL 21 +#define BLINK_BRIGHTNESS DEFAULT_LEVEL +#define BLINK_ONCE_TIME 12 + +// can't reset the normal way because power is connected before the button +#define USE_SOFT_FACTORY_RESET diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h b/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h deleted file mode 100644 index 1c90ab1..0000000 --- a/spaghetti-monster/anduril/cfg-noctigon-md11-12v.h +++ /dev/null @@ -1,70 +0,0 @@ -// Noctigon MD11 (12V) config options for Anduril -#define MODEL_NUMBER "0273" -#include "hwdef-Noctigon_MD11-12V.h" -#include "hank-cfg.h" -// ATTINY: 1634 - -// this light has three aux LED channels: R, G, B -#define USE_AUX_RGB_LEDS -// ... and a single LED in the button -#define USE_BUTTON_LED -// don't use aux LEDs while main LED is on -#ifdef USE_INDICATOR_LED_WHILE_RAMPING -#undef USE_INDICATOR_LED_WHILE_RAMPING -#endif - - -// power channels: -// - linear: 5A? -// - DD FET: none (can't do DD on a boost driver) -#define RAMP_LENGTH 150 -#define USE_DYN_PWM - -// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 -#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 -#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 -#define DEFAULT_LEVEL 50 -#define MAX_1x7135 150 - -#define HALFSPEED_LEVEL 12 -#define QUARTERSPEED_LEVEL 4 - -// don't blink halfway up -#ifdef BLINK_AT_RAMP_MIDDLE -#undef BLINK_AT_RAMP_MIDDLE -#endif - -#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable -#define RAMP_SMOOTH_CEIL 130 -// 10, 30, [50], 70, 90, 110, 130 -#define RAMP_DISCRETE_FLOOR 10 -#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL -#define RAMP_DISCRETE_STEPS 7 - -// safe limit ~75% power -#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR -#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL -#define SIMPLE_UI_STEPS 5 - -// make candle mode wobble more -#define CANDLE_AMPLITUDE 30 - -// stop panicking at ~70% power or ~600 lm -#define THERM_FASTER_LEVEL 130 -#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range - -//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly -//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting - -// slow down party strobe; this driver can't pulse for 1ms or less -#define PARTY_STROBE_ONTIME 4 - -#define THERM_CAL_OFFSET 5 - -// the power regulator is a bit slow, so push it harder for a quick response from off -#define DEFAULT_JUMP_START_LEVEL 21 -#define BLINK_BRIGHTNESS DEFAULT_LEVEL -#define BLINK_ONCE_TIME 12 - -// added for convenience -#define USE_SOFT_FACTORY_RESET diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h b/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h deleted file mode 100644 index 0efe85f..0000000 --- a/spaghetti-monster/anduril/cfg-noctigon-md11-nofet.h +++ /dev/null @@ -1,42 +0,0 @@ -// Noctigon MD11-noFET config options for Anduril -#include "cfg-noctigon-md11.h" -#undef MODEL_NUMBER -#define MODEL_NUMBER "0272" -// ATTINY: 1634 - -// turn off the DD FET -#undef PWM_CHANNELS -#define PWM_CHANNELS 1 - -// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 -#undef PWM1_LEVELS -#define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 -#undef PWM2_LEVELS -#undef PWM_TOPS -#define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 -#undef DEFAULT_LEVEL -#define DEFAULT_LEVEL 50 -#undef MAX_1x7135 -#define MAX_1x7135 150 - -// make candle mode wobble more -#ifdef CANDLE_AMPLITUDE -#undef CANDLE_AMPLITUDE -#endif -#define CANDLE_AMPLITUDE 35 - - -// slow down party strobe; this driver can't pulse for 1ms or less -// (only needed on no-FET build) -#define PARTY_STROBE_ONTIME 2 - -// jump start a bit higher than base driver -#undef DEFAULT_JUMP_START_LEVEL -#define DEFAULT_JUMP_START_LEVEL 25 - -// stop panicking at ~70% power or ~600 lm -#undef THERM_FASTER_LEVEL -#define THERM_FASTER_LEVEL 130 -#undef MIN_THERM_STEPDOWN -#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range - diff --git a/spaghetti-monster/anduril/cfg-noctigon-md11.h b/spaghetti-monster/anduril/cfg-noctigon-md11.h deleted file mode 100644 index 130e05c..0000000 --- a/spaghetti-monster/anduril/cfg-noctigon-md11.h +++ /dev/null @@ -1,72 +0,0 @@ -// Noctigon MD11 config options for Anduril -#define MODEL_NUMBER "0271" -#include "hwdef-Noctigon_MD11.h" -#include "hank-cfg.h" -// ATTINY: 1634 - -// this light has three aux LED channels: R, G, B -#define USE_AUX_RGB_LEDS -// ... and a single LED in the button -#define USE_BUTTON_LED -// don't use aux LEDs while main LED is on -#ifdef USE_INDICATOR_LED_WHILE_RAMPING -#undef USE_INDICATOR_LED_WHILE_RAMPING -#endif - - -// power channels: -// - linear: 5A? -// - FET: DD -#define RAMP_LENGTH 150 -#define USE_DYN_PWM -// maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:16384:255 -// (plus one extra level at the beginning for moon) -#define PWM1_LEVELS 0,1,1,2,2,3,4,5,6,7,8,9,11,12,14,16,17,19,22,24,26,29,31,34,37,40,43,46,49,53,56,60,63,67,71,74,78,82,86,89,93,96,99,103,105,108,110,112,114,115,116,116,115,114,112,109,106,101,95,89,81,71,60,48,34,19,20,21,22,23,24,26,27,28,30,31,32,34,36,37,39,41,43,45,47,49,51,53,56,58,61,63,66,69,72,75,78,81,84,88,91,95,99,103,107,111,115,119,124,129,133,138,143,149,154,159,165,171,177,183,189,196,203,210,217,224,231,239,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0 -#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,20,30,41,52,63,75,87,99,112,125,138,151,165,179,194,208,224,239,255 -#define PWM_TOPS 16383,16383,11750,14690,9183,12439,13615,13955,13877,13560,13093,12529,13291,12513,12756,12769,11893,11747,12085,11725,11329,11316,10851,10713,10518,10282,10016,9729,9428,9298,8971,8794,8459,8257,8043,7715,7497,7275,7052,6753,6538,6260,5994,5798,5501,5271,5006,4758,4525,4268,4030,3775,3508,3263,3010,2752,2517,2256,1998,1763,1512,1249,994,749,497,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 - -#define MAX_1x7135 130 -#define DEFAULT_LEVEL 50 -#define HALFSPEED_LEVEL 12 -#define QUARTERSPEED_LEVEL 4 - -// don't blink halfway up -#ifdef BLINK_AT_RAMP_MIDDLE -#undef BLINK_AT_RAMP_MIDDLE -#endif - -#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable -#define RAMP_SMOOTH_CEIL 130 -// 10, 30, [50], 70, 90, 110, 130 -#define RAMP_DISCRETE_FLOOR 10 -#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL -#define RAMP_DISCRETE_STEPS 7 - -// safe limit ~75% power -#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR -#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL -#define SIMPLE_UI_STEPS 5 - -// make candle mode wobble more -#define CANDLE_AMPLITUDE 30 - -// stop panicking at ~70% power or ~600 lm -#define THERM_FASTER_LEVEL 130 -#define MIN_THERM_STEPDOWN 66 // must be > end of dynamic PWM range - -//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly -//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting - -// slow down party strobe; this driver can't pulse for 1ms or less -// (only needed on no-FET build) -//#define PARTY_STROBE_ONTIME 2 - -#define THERM_CAL_OFFSET 5 - -// the power regulator is a bit slow, so push it harder for a quick response from off -#define DEFAULT_JUMP_START_LEVEL 21 -#define BLINK_BRIGHTNESS DEFAULT_LEVEL -#define BLINK_ONCE_TIME 12 - -// can't reset the normal way because power is connected before the button -#define USE_SOFT_FACTORY_RESET -- cgit v1.2.3 From 817462cc70188af8d3c07c1006d79d54e3882c42 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 12 Nov 2021 03:13:10 -0700 Subject: fine-tuned DM11-12V build a bit based on actual measurements --- spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h index 27af461..03961e0 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h @@ -21,9 +21,10 @@ #define USE_DYN_PWM // level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255 +// (plus a 0 at the beginning for moon) #define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 #define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 -#define DEFAULT_LEVEL 50 +#define DEFAULT_LEVEL 70 #define MAX_1x7135 150 #define HALFSPEED_LEVEL 12 @@ -36,7 +37,8 @@ #define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable #define RAMP_SMOOTH_CEIL 130 -// 10, 30, [50], 70, 90, 110, 130 +// 10, 30, 50, [70], 90, 110, 130 +// Nichia B35 model: (0.56), 1.4, 8.4, 34.5, [102], 250, 500, 860, (1300) lm #define RAMP_DISCRETE_FLOOR 10 #define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL #define RAMP_DISCRETE_STEPS 7 @@ -56,14 +58,16 @@ //#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly //#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting -// slow down party strobe; this driver can't pulse for 1ms or less -#define PARTY_STROBE_ONTIME 4 +// slow down party strobe; this driver can't pulse for 2ms or less +#define PARTY_STROBE_ONTIME 3 #define THERM_CAL_OFFSET 5 -// the power regulator is a bit slow, so push it harder for a quick response from off -#define DEFAULT_JUMP_START_LEVEL 21 -#define BLINK_BRIGHTNESS DEFAULT_LEVEL +// the power regulator seems to "jump start" the LEDs all on its own, +// so the firmware doesn't have to +// (and unfortunately the power regulator jumps it a bit too hard) +#define DEFAULT_JUMP_START_LEVEL 1 +#define BLINK_BRIGHTNESS 50 #define BLINK_ONCE_TIME 12 // added for convenience -- cgit v1.2.3 From 13dd432134110138106ea2bf3b5605cd37e23ebc Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 12 Nov 2021 03:16:00 -0700 Subject: added DM11 to MODELS file --- spaghetti-monster/anduril/MODELS | 3 +++ 1 file changed, 3 insertions(+) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/MODELS b/spaghetti-monster/anduril/MODELS index a125f53..79a6a4a 100644 --- a/spaghetti-monster/anduril/MODELS +++ b/spaghetti-monster/anduril/MODELS @@ -30,6 +30,9 @@ Model Name MCU 0265 noctigon-k9.3-tintramp-nofet attiny1634 0266 noctigon-k9.3-tintramp-fet attiny1634 0267 noctigon-k9.3-tintramp-219 attiny1634 +0271 noctigon-dm11 attiny1634 +0272 noctigon-dm11-nofet attiny1634 +0273 noctigon-dm11-12v attiny1634 0311 fw3a attiny85 0312 fw3a-219 attiny85 0313 fw3a-nofet attiny85 -- cgit v1.2.3 From 6a6d9e59cd950b07112c9801933461162e43e1cb Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 12 Nov 2021 03:26:20 -0700 Subject: a bit more fine-tuning for DM11 --- spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h | 4 ++-- spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h | 4 ++-- spaghetti-monster/anduril/cfg-noctigon-dm11.h | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h index 03961e0..3e7c1d3 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-12v.h @@ -24,9 +24,9 @@ // (plus a 0 at the beginning for moon) #define PWM1_LEVELS 0,1,1,1,2,3,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,23,25,27,29,31,34,36,39,42,44,47,50,53,57,60,63,67,70,74,77,81,85,88,92,96,99,103,107,110,113,117,120,123,126,128,130,133,134,136,137,137,137,137,136,135,133,130,126,122,117,111,104,96,87,76,65,52,38,22,23,25,26,27,28,29,30,32,33,34,36,37,39,40,42,43,45,47,49,51,53,55,57,59,61,63,66,68,70,73,76,78,81,84,87,90,93,96,99,103,106,110,113,117,121,125,129,133,137,142,146,151,155,160,165,170,175,181,186,192,197,203,209,215,222,228,234,241,248,255 #define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 + #define DEFAULT_LEVEL 70 #define MAX_1x7135 150 - #define HALFSPEED_LEVEL 12 #define QUARTERSPEED_LEVEL 4 @@ -49,7 +49,7 @@ #define SIMPLE_UI_STEPS 5 // make candle mode wobble more -#define CANDLE_AMPLITUDE 30 +#define CANDLE_AMPLITUDE 33 // stop panicking at ~70% power or ~600 lm #define THERM_FASTER_LEVEL 130 diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h index a1249b1..5a828d6 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h @@ -15,7 +15,7 @@ #undef PWM_TOPS #define PWM_TOPS 16383,16383,12404,8140,11462,14700,11041,12947,13795,14111,14124,13946,13641,13248,12791,13418,12808,13057,12385,12428,12358,12209,12000,11746,11459,11147,11158,10793,10708,10576,10173,9998,9800,9585,9527,9278,9023,8901,8634,8486,8216,8053,7881,7615,7440,7261,7009,6832,6656,6422,6196,6031,5819,5615,5419,5190,4973,4803,4571,4386,4179,3955,3745,3549,3340,3145,2940,2729,2513,2312,2109,1903,1697,1491,1286,1070,871,662,459,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 #undef DEFAULT_LEVEL -#define DEFAULT_LEVEL 50 +#define DEFAULT_LEVEL 70 #undef MAX_1x7135 #define MAX_1x7135 150 @@ -23,7 +23,7 @@ #ifdef CANDLE_AMPLITUDE #undef CANDLE_AMPLITUDE #endif -#define CANDLE_AMPLITUDE 35 +#define CANDLE_AMPLITUDE 33 // slow down party strobe; this driver can't pulse for 1ms or less diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11.h b/spaghetti-monster/anduril/cfg-noctigon-dm11.h index 89d2fe6..794ae2b 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-dm11.h +++ b/spaghetti-monster/anduril/cfg-noctigon-dm11.h @@ -19,14 +19,15 @@ // - FET: DD #define RAMP_LENGTH 150 #define USE_DYN_PWM + // maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:16384:255 // (plus one extra level at the beginning for moon) #define PWM1_LEVELS 0,1,1,2,2,3,4,5,6,7,8,9,11,12,14,16,17,19,22,24,26,29,31,34,37,40,43,46,49,53,56,60,63,67,71,74,78,82,86,89,93,96,99,103,105,108,110,112,114,115,116,116,115,114,112,109,106,101,95,89,81,71,60,48,34,19,20,21,22,23,24,26,27,28,30,31,32,34,36,37,39,41,43,45,47,49,51,53,56,58,61,63,66,69,72,75,78,81,84,88,91,95,99,103,107,111,115,119,124,129,133,138,143,149,154,159,165,171,177,183,189,196,203,210,217,224,231,239,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0 #define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,20,30,41,52,63,75,87,99,112,125,138,151,165,179,194,208,224,239,255 #define PWM_TOPS 16383,16383,11750,14690,9183,12439,13615,13955,13877,13560,13093,12529,13291,12513,12756,12769,11893,11747,12085,11725,11329,11316,10851,10713,10518,10282,10016,9729,9428,9298,8971,8794,8459,8257,8043,7715,7497,7275,7052,6753,6538,6260,5994,5798,5501,5271,5006,4758,4525,4268,4030,3775,3508,3263,3010,2752,2517,2256,1998,1763,1512,1249,994,749,497,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +#define DEFAULT_LEVEL 70 #define MAX_1x7135 130 -#define DEFAULT_LEVEL 50 #define HALFSPEED_LEVEL 12 #define QUARTERSPEED_LEVEL 4 @@ -37,7 +38,7 @@ #define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable #define RAMP_SMOOTH_CEIL 130 -// 10, 30, [50], 70, 90, 110, 130 +// 10, 30, 50, [70], 90, 110, 130 #define RAMP_DISCRETE_FLOOR 10 #define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL #define RAMP_DISCRETE_STEPS 7 @@ -65,8 +66,8 @@ // the power regulator is a bit slow, so push it harder for a quick response from off #define DEFAULT_JUMP_START_LEVEL 21 -#define BLINK_BRIGHTNESS DEFAULT_LEVEL +#define BLINK_BRIGHTNESS 50 #define BLINK_ONCE_TIME 12 -// can't reset the normal way because power is connected before the button +// added for convenience #define USE_SOFT_FACTORY_RESET -- cgit v1.2.3 From 3a8557dc1e514d4f04b2a6e0ef9da3bce1286c86 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Wed, 8 Dec 2021 12:49:44 -0700 Subject: fixed Ramp 3H with Anduril 2 style turbo (it was going to ceiling instead of full power) (also had to disable battcheck calibration on some large builds to make room) --- spaghetti-monster/anduril/cfg-ff-rot66.h | 6 ++++++ spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h | 5 +++++ spaghetti-monster/anduril/ramp-mode.c | 5 +++++ 3 files changed, 16 insertions(+) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-ff-rot66.h b/spaghetti-monster/anduril/cfg-ff-rot66.h index 48541a7..03b74db 100644 --- a/spaghetti-monster/anduril/cfg-ff-rot66.h +++ b/spaghetti-monster/anduril/cfg-ff-rot66.h @@ -44,4 +44,10 @@ // too big, remove stuff to make room #undef USE_RAMP_AFTER_MOON_CONFIG #undef USE_RAMP_SPEED_CONFIG +#undef USE_VOLTAGE_CORRECTION //#undef USE_2C_STYLE_CONFIG +//#undef USE_TACTICAL_STROBE_MODE + +// reduce size a bit +#define NO_LOWPASS_WHILE_ASLEEP + diff --git a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h index 86e8c26..09b684f 100644 --- a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h +++ b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h @@ -55,4 +55,9 @@ // too big, remove stuff to make room #undef USE_RAMP_AFTER_MOON_CONFIG #undef USE_RAMP_SPEED_CONFIG +#undef USE_VOLTAGE_CORRECTION //#undef USE_2C_STYLE_CONFIG + +// reduce size a bit +#define NO_LOWPASS_WHILE_ASLEEP + diff --git a/spaghetti-monster/anduril/ramp-mode.c b/spaghetti-monster/anduril/ramp-mode.c index 93b936a..8c49b11 100644 --- a/spaghetti-monster/anduril/ramp-mode.c +++ b/spaghetti-monster/anduril/ramp-mode.c @@ -396,7 +396,12 @@ uint8_t steady_state(Event event, uint16_t arg) { // 3H: momentary turbo (on lights with no tint ramping) else if (event == EV_click3_hold) { if (! arg) { // first frame only, to allow thermal regulation to work + #ifdef USE_2C_STYLE_CONFIG + uint8_t tl = style_2c ? MAX_LEVEL : turbo_level; + set_level_and_therm_target(tl); + #else set_level_and_therm_target(turbo_level); + #endif } return MISCHIEF_MANAGED; } -- cgit v1.2.3 From 3f6a9fe82d892a1fca198169a7d3ed7bba58f902 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Wed, 8 Dec 2021 15:31:00 -0700 Subject: added a compile option for USE_LOWPASS_WHILE_ASLEEP, but it doesn't actually fix the issue I was hoping it'd fix, so it's disabled by default (when the battery is right on a threshold between colors for aux LED "voltage" mode, it can bounce between colors until the cell isn't on the boundary any more... but a simple lowpass doesn't really help) (but I also didn't want to throw out the code, in case it's useful later as a reference for a more effective solution) --- spaghetti-monster/anduril/cfg-ff-rot66.h | 5 +++-- .../anduril/cfg-mateminco-mf01-mini.h | 4 +++- spaghetti-monster/anduril/config-default.h | 4 ++++ spaghetti-monster/fsm-adc.c | 22 ++++++++++++++++++++-- spaghetti-monster/fsm-standby.c | 2 ++ 5 files changed, 32 insertions(+), 5 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-ff-rot66.h b/spaghetti-monster/anduril/cfg-ff-rot66.h index 03b74db..e2d5ff7 100644 --- a/spaghetti-monster/anduril/cfg-ff-rot66.h +++ b/spaghetti-monster/anduril/cfg-ff-rot66.h @@ -49,5 +49,6 @@ //#undef USE_TACTICAL_STROBE_MODE // reduce size a bit -#define NO_LOWPASS_WHILE_ASLEEP - +#ifdef USE_LOWPASS_WHILE_ASLEEP +#undef USE_LOWPASS_WHILE_ASLEEP +#endif diff --git a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h index 09b684f..b5c3b12 100644 --- a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h +++ b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h @@ -59,5 +59,7 @@ //#undef USE_2C_STYLE_CONFIG // reduce size a bit -#define NO_LOWPASS_WHILE_ASLEEP +#ifdef USE_LOWPASS_WHILE_ASLEEP +#undef USE_LOWPASS_WHILE_ASLEEP +#endif diff --git a/spaghetti-monster/anduril/config-default.h b/spaghetti-monster/anduril/config-default.h index 406e98b..77b5c6b 100644 --- a/spaghetti-monster/anduril/config-default.h +++ b/spaghetti-monster/anduril/config-default.h @@ -189,5 +189,9 @@ // (defined here so config files can override it) #define USE_DYNAMIC_UNDERCLOCKING +// if the aux LEDs oscillate between "full battery" and "empty battery" +// while in "voltage" mode, enable this to reduce the amplitude of +// those oscillations +//#define USE_LOWPASS_WHILE_ASLEEP #endif diff --git a/spaghetti-monster/fsm-adc.c b/spaghetti-monster/fsm-adc.c index 975d12e..c5401ea 100644 --- a/spaghetti-monster/fsm-adc.c +++ b/spaghetti-monster/fsm-adc.c @@ -306,10 +306,28 @@ static inline void ADC_voltage_handler() { uint16_t measurement; // latest ADC value - if (adc_reset) { // while asleep, or just after waking, don't lowpass + if (adc_reset) { // just after waking, don't lowpass measurement = adc_raw[0]; - adc_smooth[0] = measurement; // no lowpass while asleep + adc_smooth[0] = measurement; // no lowpass, just use the latest value } + #ifdef USE_LOWPASS_WHILE_ASLEEP + else if (go_to_standby) { // weaker lowpass while asleep + // occasionally the aux LED color can oscillate during standby, + // while using "voltage" mode ... so try to reduce the oscillation + uint16_t m = adc_raw[0]; + uint16_t v = adc_smooth[0]; + #if 0 + // fixed-rate lowpass, slow, more stable but takes longer to settle + if (m < v) { v -= 64; } + if (m > v) { v += 64; } + #else + // weighted lowpass, faster but less stable + v = (m>>1) + (v>>1); + #endif + adc_smooth[0] = v; + measurement = v; + } + #endif else measurement = adc_smooth[0]; // values stair-step between intervals of 64, with random variations diff --git a/spaghetti-monster/fsm-standby.c b/spaghetti-monster/fsm-standby.c index c450bca..0ae6a2f 100644 --- a/spaghetti-monster/fsm-standby.c +++ b/spaghetti-monster/fsm-standby.c @@ -73,7 +73,9 @@ void sleep_until_eswitch_pressed() go_to_standby = 0; } if (irq_adc) { // ADC done measuring + #ifndef USE_LOWPASS_WHILE_ASLEEP adc_reset = 1; // don't lowpass while asleep + #endif adc_deferred_enable = 1; adc_deferred(); //ADC_off(); // takes care of itself -- cgit v1.2.3 From 752b7d7c91acad00a2ae988909133d10bbdc9cf1 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Wed, 8 Dec 2021 15:36:58 -0700 Subject: enabled SOS mode on lights which have enough room for it --- spaghetti-monster/anduril/cfg-ff-rot66.h | 1 + spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h | 1 + spaghetti-monster/anduril/config-default.h | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/cfg-ff-rot66.h b/spaghetti-monster/anduril/cfg-ff-rot66.h index e2d5ff7..481808a 100644 --- a/spaghetti-monster/anduril/cfg-ff-rot66.h +++ b/spaghetti-monster/anduril/cfg-ff-rot66.h @@ -42,6 +42,7 @@ #undef BLINK_AT_RAMP_CEIL // too big, remove stuff to make room +#undef USE_SOS_MODE #undef USE_RAMP_AFTER_MOON_CONFIG #undef USE_RAMP_SPEED_CONFIG #undef USE_VOLTAGE_CORRECTION diff --git a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h index b5c3b12..83b2614 100644 --- a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h +++ b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h @@ -53,6 +53,7 @@ // too big, remove stuff to make room +#undef USE_SOS_MODE #undef USE_RAMP_AFTER_MOON_CONFIG #undef USE_RAMP_SPEED_CONFIG #undef USE_VOLTAGE_CORRECTION diff --git a/spaghetti-monster/anduril/config-default.h b/spaghetti-monster/anduril/config-default.h index 77b5c6b..0e70347 100644 --- a/spaghetti-monster/anduril/config-default.h +++ b/spaghetti-monster/anduril/config-default.h @@ -166,9 +166,9 @@ // (these replace the fun strobe group, // so don't enable them at the same time as any of the above strobes) //#define USE_POLICE_STROBE_MODE -//#define USE_SOS_MODE +#define USE_SOS_MODE //#define USE_SOS_MODE_IN_FF_GROUP // put SOS in the "boring strobes" mode -//#define USE_SOS_MODE_IN_BLINKY_GROUP // put SOS in the blinkies mode group +#define USE_SOS_MODE_IN_BLINKY_GROUP // put SOS in the blinkies mode group // enable a mode for locking the light for safe carry #define USE_LOCKOUT_MODE -- cgit v1.2.3 From b0d0d7f036f895e40451e8a923a109c7edd422c0 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Mon, 13 Dec 2021 15:19:19 -0700 Subject: Added "Lockout 3C -> Off", changed Lockout 4H blink (light) to a blip (dark), adjusted a couple builds which overflowed. --- spaghetti-monster/anduril/anduril-manual.txt | 4 ++++ spaghetti-monster/anduril/cfg-blf-gt-mini.h | 8 ++++++++ spaghetti-monster/anduril/cfg-blf-q8.h | 7 +++++++ spaghetti-monster/anduril/lockout-mode.c | 10 +++++++++- 4 files changed, 28 insertions(+), 1 deletion(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/anduril-manual.txt b/spaghetti-monster/anduril/anduril-manual.txt index 8d6ad75..1873b8d 100644 --- a/spaghetti-monster/anduril/anduril-manual.txt +++ b/spaghetti-monster/anduril/anduril-manual.txt @@ -75,6 +75,7 @@ In Lockout mode with Simple UI, there are a few functions: - 1H: Momentary moon - 2H: Momentary low + - 3C: Unlock and turn off - 4C: Unlock and turn on - 4H: Unlock and turn on at low level - 5C: Unlock and turn on at high level @@ -296,6 +297,8 @@ To exit lockout mode, click 4 times. The light should blink briefly and then turn on at the memorized level. Or hold the final press to turn on at the floor level instead: + - 3C: Unlock and go to "Off" mode + - 4C: Go to ramp mode (memorized level). (uses manual mem level if there is one) @@ -788,6 +791,7 @@ Ramp Full 10H Ramp Extras config menu: Lockout Any 1C/1H Momentary moon (lowest floor) Lockout Any 2C/2H Momentary moon (highest floor, or manual mem level) +Lockout Any 3C Unlock (go to "Off" mode) Lockout Any 4C On (ramp mode, memorized level) Lockout Any 4H On (ramp mode, floor level) Lockout Any 5C On (ramp mode, ceiling level) diff --git a/spaghetti-monster/anduril/cfg-blf-gt-mini.h b/spaghetti-monster/anduril/cfg-blf-gt-mini.h index af16f2c..a647ea5 100644 --- a/spaghetti-monster/anduril/cfg-blf-gt-mini.h +++ b/spaghetti-monster/anduril/cfg-blf-gt-mini.h @@ -10,3 +10,11 @@ // the button is visible while main LEDs are on #define USE_INDICATOR_LED_WHILE_RAMPING +// too big, remove stuff to make room +#undef USE_SOS_MODE +//#undef USE_RAMP_AFTER_MOON_CONFIG +//#undef USE_RAMP_SPEED_CONFIG +//#undef USE_VOLTAGE_CORRECTION +//#undef USE_2C_STYLE_CONFIG +//#undef USE_TACTICAL_STROBE_MODE + diff --git a/spaghetti-monster/anduril/cfg-blf-q8.h b/spaghetti-monster/anduril/cfg-blf-q8.h index d4243ee..851d930 100644 --- a/spaghetti-monster/anduril/cfg-blf-q8.h +++ b/spaghetti-monster/anduril/cfg-blf-q8.h @@ -36,3 +36,10 @@ // stop panicking at ~75% power or ~3000 lm, this light has high thermal mass #define THERM_FASTER_LEVEL (RAMP_SIZE*9/10) // throttle back faster when high +// too big, remove stuff to make room +#undef USE_SOS_MODE +//#undef USE_RAMP_AFTER_MOON_CONFIG +//#undef USE_RAMP_SPEED_CONFIG +//#undef USE_VOLTAGE_CORRECTION +//#undef USE_2C_STYLE_CONFIG +//#undef USE_TACTICAL_STROBE_MODE diff --git a/spaghetti-monster/anduril/lockout-mode.c b/spaghetti-monster/anduril/lockout-mode.c index 8c83cff..e3e3fed 100644 --- a/spaghetti-monster/anduril/lockout-mode.c +++ b/spaghetti-monster/anduril/lockout-mode.c @@ -88,9 +88,16 @@ uint8_t lockout_state(Event event, uint16_t arg) { } #endif + // 3 clicks: exit and turn off + else if (event == EV_3clicks) { + blink_once(); + set_state(off_state, 0); + return MISCHIEF_MANAGED; + } // 4 clicks: exit and turn on else if (event == EV_4clicks) { #ifdef USE_MANUAL_MEMORY + // FIXME: memory timer is totally ignored if (manual_memory) set_state(steady_state, manual_memory); else @@ -100,7 +107,8 @@ uint8_t lockout_state(Event event, uint16_t arg) { } // 4 clicks, but hold last: exit and start at floor else if (event == EV_click4_hold) { - blink_once(); + //blink_once(); + blip(); // reset button sequence to avoid activating anything in ramp mode current_event = 0; // ... and back to ramp mode -- cgit v1.2.3 From 274b615fc35b0c6256fc647422e98f721a06e8ce Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Mon, 13 Dec 2021 15:54:30 -0700 Subject: fixed bug where tint-ramping could end up 1 brightness ramp step different than it started --- spaghetti-monster/anduril/tint-ramping.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'spaghetti-monster') diff --git a/spaghetti-monster/anduril/tint-ramping.c b/spaghetti-monster/anduril/tint-ramping.c index 6cc0616..d270d9d 100644 --- a/spaghetti-monster/anduril/tint-ramping.c +++ b/spaghetti-monster/anduril/tint-ramping.c @@ -22,7 +22,6 @@ #include "tint-ramping.h" - uint8_t tint_ramping_state(Event event, uint16_t arg) { static int8_t tint_ramp_direction = 1; static uint8_t prev_tint = 0; @@ -92,6 +91,9 @@ uint8_t tint_ramping_state(Event event, uint16_t arg) { else if (tint >= 254) tint_ramp_direction = -1; // remember tint after battery change save_config(); + // bug?: for some reason, brightness can seemingly change + // from 1/150 to 2/150 without this next line... not sure why + set_level(actual_level); return EVENT_HANDLED; } -- cgit v1.2.3