diff options
| author | Selene ToyKeeper | 2023-04-29 01:19:42 -0600 |
|---|---|---|
| committer | Selene ToyKeeper | 2023-04-29 01:19:42 -0600 |
| commit | 9765caab66ab628d763a5148efde80b3c3930b31 (patch) | |
| tree | 5ec21fdf9a521b0d72820540e81263efc3028da3 /spaghetti-monster | |
| parent | just a todo note for later (diff) | |
| download | anduril-9765caab66ab628d763a5148efde80b3c3930b31.tar.gz anduril-9765caab66ab628d763a5148efde80b3c3930b31.tar.bz2 anduril-9765caab66ab628d763a5148efde80b3c3930b31.zip | |
Noctigon KR4: updated to use new channel system
(also tweaked D4v2 build to match KR4 as much as possible)
(also added Extended Simple UI to Hank's config)
Diffstat (limited to '')
| -rw-r--r-- | spaghetti-monster/anduril/cfg-emisar-2ch.h | 12 | ||||
| -rw-r--r-- | spaghetti-monster/anduril/cfg-emisar-d4v2.h | 7 | ||||
| -rw-r--r-- | spaghetti-monster/anduril/cfg-noctigon-kr4.h | 32 | ||||
| -rw-r--r-- | spaghetti-monster/anduril/hank-cfg.h | 8 | ||||
| -rw-r--r-- | spaghetti-monster/fsm-ramping.h | 7 |
5 files changed, 42 insertions, 24 deletions
diff --git a/spaghetti-monster/anduril/cfg-emisar-2ch.h b/spaghetti-monster/anduril/cfg-emisar-2ch.h index 4704072..97e46fc 100644 --- a/spaghetti-monster/anduril/cfg-emisar-2ch.h +++ b/spaghetti-monster/anduril/cfg-emisar-2ch.h @@ -71,19 +71,10 @@ #define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL #define SIMPLE_UI_STEPS 5 -// Allow 3C (or 6C) in Simple UI (toggle smooth or stepped ramping) -#define USE_SIMPLE_UI_RAMPING_TOGGLE - -// allow Aux Config and Strobe Modes in Simple UI -#define USE_EXTENDED_SIMPLE_UI - // stop panicking at ~1500 lm #define THERM_FASTER_LEVEL 130 #define MIN_THERM_STEPDOWN 65 // should be above highest dyn_pwm level -// enable 2 click turbo (Anduril 1 style) -#define DEFAULT_2C_STYLE 1 - #define USE_POLICE_COLOR_STROBE_MODE #undef TACTICAL_LEVELS #define TACTICAL_LEVELS 120,30,(RAMP_SIZE+3) // high, low, police strobe @@ -107,6 +98,3 @@ #undef BLINK_AT_RAMP_MIDDLE #endif -// for consistency with KR4 (not otherwise necessary though) -#define USE_SOFT_FACTORY_RESET - diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2.h b/spaghetti-monster/anduril/cfg-emisar-d4v2.h index ecc39ed..69023d1 100644 --- a/spaghetti-monster/anduril/cfg-emisar-d4v2.h +++ b/spaghetti-monster/anduril/cfg-emisar-d4v2.h @@ -20,6 +20,7 @@ #define PWM_TOPS 4095,2701,3200,3586,2518,2778,2834,2795,2705,2587,2455,2582,2412,2247,2256,2091,2062,1907,1860,1802,1737,1605,1542,1477,1412,1347,1284,1222,1162,1105,1050,997,946,898,853,810,768,730,693,658,625,594,564,536,503,485,462,439,418,398,384,366,353,340,327,319,307,298,292,284,280,273,269,266,263,260,258,256,256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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 75 +#define DEFAULT_LEVEL 50 #define MIN_THERM_STEPDOWN 70 // should be above highest dyn_pwm level #define HALFSPEED_LEVEL 20 #define QUARTERSPEED_LEVEL 5 @@ -41,6 +42,9 @@ #define THERM_CAL_OFFSET 5 +// show each channel while it scroll by in the menu +#define USE_CONFIG_COLORS + // use aux red + aux blue for police strobe #define USE_POLICE_COLOR_STROBE_MODE #define POLICE_STROBE_USES_AUX @@ -50,9 +54,6 @@ // the default of 26 looks a bit rough, so increase it to make it smoother #define CANDLE_AMPLITUDE 33 -// show each channel while it scroll by in the menu -#define USE_CONFIG_COLORS - // don't blink while ramping #ifdef BLINK_AT_RAMP_MIDDLE #undef BLINK_AT_RAMP_MIDDLE diff --git a/spaghetti-monster/anduril/cfg-noctigon-kr4.h b/spaghetti-monster/anduril/cfg-noctigon-kr4.h index d5d7f8c..bfecbea 100644 --- a/spaghetti-monster/anduril/cfg-noctigon-kr4.h +++ b/spaghetti-monster/anduril/cfg-noctigon-kr4.h @@ -5,14 +5,13 @@ #pragma once #define MODEL_NUMBER "0211" -#include "hwdef-Noctigon_KR4.h" +#include "hwdef-noctigon-kr4.h" #include "hank-cfg.h" // ATTINY: 1634 // this light has three aux LED channels: R, G, B #define USE_AUX_RGB_LEDS // the aux LEDs are front-facing, so turn them off while main LEDs are on -//#define USE_AUX_RGB_LEDS_WHILE_ON // it also has an independent LED in the button (D4v2.5 titanium/brass only) #define USE_BUTTON_LED // TODO: the whole "indicator LED" thing needs to be refactored into @@ -22,26 +21,27 @@ #undef USE_INDICATOR_LED_WHILE_RAMPING #endif - // brightness w/ SST-20 4000K LEDs: // 0/1023: 0.35 lm // 1/1023: 2.56 lm // max regulated: 1740 lm // FET: ~3700 lm -#define RAMP_LENGTH 150 -#define USE_DYN_PWM +#define RAMP_SIZE 150 + // nice low lows, but might have visible ripple on some lights: // 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 + // less ripple, but lows are a bit higher than ideal: // maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:4096:255 // (plus one extra level at the beginning for moon) //#define PWM1_LEVELS 0,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5,5,6,6,7,8,8,9,10,11,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,32,33,33,34,34,34,34,34,34,33,32,31,30,28,26,24,21,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 4095,4095,3760,3403,3020,2611,2176,3582,3062,2515,1940,3221,2761,2283,2998,2584,3004,2631,2899,2555,2735,2836,2538,2606,2636,2638,2387,2382,2361,2328,2286,2238,2185,2129,2070,2010,1949,1887,1826,1766,1706,1648,1591,1536,1482,1429,1379,1329,1242,1199,1122,1084,1016,953,895,842,791,723,659,602,549,482,422,367,302,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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 @@ -66,16 +66,30 @@ //#define THERM_NEXT_WARNING_THRESHOLD 16 // accumulate less error before adjusting //#define THERM_RESPONSE_MAGNITUDE 128 // bigger adjustments -// 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 +// show each channel while it scroll by in the menu +#define USE_CONFIG_COLORS + +// slow down party strobe; this driver can't pulse for 1ms or less +// (only needed on no-FET build) +//#define PARTY_STROBE_ONTIME 2 + +// use aux red + aux blue for police strobe +#define USE_POLICE_COLOR_STROBE_MODE +#define POLICE_STROBE_USES_AUX +#define POLICE_COLOR_STROBE_CH1 CM_AUXRED +#define POLICE_COLOR_STROBE_CH2 CM_AUXBLU + +// the default of 26 looks a bit rough, so increase it to make it smoother +#define CANDLE_AMPLITUDE 33 + // can't reset the normal way because power is connected before the button #define USE_SOFT_FACTORY_RESET + diff --git a/spaghetti-monster/anduril/hank-cfg.h b/spaghetti-monster/anduril/hank-cfg.h index f6b626a..86ac605 100644 --- a/spaghetti-monster/anduril/hank-cfg.h +++ b/spaghetti-monster/anduril/hank-cfg.h @@ -16,7 +16,15 @@ // half a second per color in rainbow mode //#define RGB_RAINBOW_SPEED 0x03 +// Allow 3C (or 6C) in Simple UI (toggle smooth or stepped ramping) +#define USE_SIMPLE_UI_RAMPING_TOGGLE + +// allow Aux Config and Strobe Modes in Simple UI +#define USE_EXTENDED_SIMPLE_UI // double click while on goes to full-power turbo, not ramp ceiling #define DEFAULT_2C_STYLE 1 +// for consistency with KR4 (not otherwise necessary though) +#define USE_SOFT_FACTORY_RESET + diff --git a/spaghetti-monster/fsm-ramping.h b/spaghetti-monster/fsm-ramping.h index 7b3722d..3003ecb 100644 --- a/spaghetti-monster/fsm-ramping.h +++ b/spaghetti-monster/fsm-ramping.h @@ -109,6 +109,13 @@ void gradual_tick(); if (PWM < TARGET) PWM ++; \ else if (PWM > TARGET) PWM --; +// tick to a specific value, except when immediate 0 to 255 is needed +#define GRADUAL_ADJUST_STACKED(TARGET,PWM,TOP) \ + if ( ((PWM == 0) && (TARGET == TOP)) \ + || ((PWM == TOP) && (TARGET == 0))) \ + PWM = TOP; \ + else GRADUAL_ADJUST_SIMPLE(TARGET,PWM) + // tick the top layer of the stack #define GRADUAL_ADJUST_1CH(TABLE,PWM) \ target = PWM_GET(TABLE, gt); \ |
