aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-07-22 18:08:12 -0600
committerSelene ToyKeeper2023-07-22 18:08:12 -0600
commit5c2fc000a5081b203174b79d09044665fd0483ff (patch)
tree61cd52b973753b8439e2e2371cf9452565ec496b /spaghetti-monster
parentconverted noctigon-k1 to multi-channel (diff)
downloadanduril-5c2fc000a5081b203174b79d09044665fd0483ff.tar.gz
anduril-5c2fc000a5081b203174b79d09044665fd0483ff.tar.bz2
anduril-5c2fc000a5081b203174b79d09044665fd0483ff.zip
converted noctigon-dm11-* builds to multi-channel
(but I could only test dm11-boost on actual hardware) (also, it looks like dm11-sbt90 is almost identical to the base kr4 build, so I removed its hwdef)
Diffstat (limited to 'spaghetti-monster')
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-dm11-boost.h37
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h5
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h52
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-dm11.h56
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-kr4.h5
5 files changed, 66 insertions, 89 deletions
diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-boost.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-boost.h
index 231944c..5c5db00 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-dm11-boost.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-boost.h
@@ -19,8 +19,9 @@
#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 DEFAULT_LEVEL 70
+#define MIN_THERM_STEPDOWN 80 // must be > end of dynamic PWM range
#define HALFSPEED_LEVEL 12
#define QUARTERSPEED_LEVEL 4
@@ -39,18 +40,24 @@
// 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_CAL_OFFSET 5
-//#define THERM_RESPONSE_MAGNITUDE 32 // smaller adjustments, this host changes temperature slowly
-//#define THERM_NEXT_WARNING_THRESHOLD 32 // more error tolerance before adjusting
+// 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
// show each channel while it scroll by in the menu
#define USE_CONFIG_COLORS
-// blink numbers on the aux LEDs by default
-#define DEFAULT_BLINK_CHANNEL CM_AUXWHT
+// blink numbers on the main LEDs by default (but allow user to change it)
+#define DEFAULT_BLINK_CHANNEL CM_MAIN
+
+// slow down party strobe; this driver can't pulse for 2ms or less
+#define PARTY_STROBE_ONTIME 3
// use aux red + aux blue for police strobe
#define USE_POLICE_COLOR_STROBE_MODE
@@ -61,21 +68,11 @@
// the default of 26 looks a bit rough, so increase it to make it smoother
#define CANDLE_AMPLITUDE 33
-// slow down party strobe; this driver can't pulse for 2ms or less
-#define PARTY_STROBE_ONTIME 3
-
-// 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
-#define USE_SOFT_FACTORY_RESET
-
-// don't blink halfway up
+// don't blink while ramping
#ifdef BLINK_AT_RAMP_MIDDLE
#undef BLINK_AT_RAMP_MIDDLE
#endif
+// 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
index ad71fa9..b2fdfdb 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-nofet.h
@@ -1,8 +1,10 @@
-// Noctigon DM11-noFET config options for Anduril
+// Noctigon DM11 (no DD FET) config options for Anduril
// Copyright (C) 2021-2023 Selene ToyKeeper
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
+// same support functions as a KR4
+#define HWDEF_C_FILE hwdef-noctigon-kr4-nofet.c
#include "cfg-noctigon-dm11.h"
#undef MODEL_NUMBER
#define MODEL_NUMBER "0272"
@@ -11,6 +13,7 @@
// turn off the DD FET
#undef PWM_CHANNELS
#define PWM_CHANNELS 1
+#define RAMP_SIZE 150
// level_calc.py 5.01 1 149 7135 1 0.3 1740 --pwm dyn:78:16384:255
#undef PWM1_LEVELS
diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h b/spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h
index 94c9a52..9fac446 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h
@@ -3,9 +3,9 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
+#include "cfg-noctigon-kr4.h"
+#undef MODEL_NUMBER
#define MODEL_NUMBER "0274"
-#include "hwdef-Noctigon_DM11-SBT90.h"
-#include "hank-cfg.h"
// ATTINY: 1634
// this light has three aux LED channels: R, G, B
@@ -17,62 +17,30 @@
#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
+#undef DEFAULT_LEVEL
#define DEFAULT_LEVEL 70
-#define MAX_1x7135 130
-#define HALFSPEED_LEVEL 12
-#define QUARTERSPEED_LEVEL 4
-
-// don't blink halfway up
-#ifdef BLINK_AT_RAMP_MIDDLE
-#undef BLINK_AT_RAMP_MIDDLE
-#endif
+#undef RAMP_SMOOTH_FLOOR
#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable
-#define RAMP_SMOOTH_CEIL 130
// 10, 30, 50, [70], 90, 110, 130
+#undef RAMP_DISCRETE_FLOOR
#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
+#undef SIMPLE_UI_CEIL
#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
+#undef THERM_FASTER_LEVEL
#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
+#undef BLINK_BRIGHTNESS
#define BLINK_BRIGHTNESS 50
-#define BLINK_ONCE_TIME 12
-// added for convenience
-#define USE_SOFT_FACTORY_RESET
+#undef CANDLE_AMPLITUDE
+#define CANDLE_AMPLITUDE 30
diff --git a/spaghetti-monster/anduril/cfg-noctigon-dm11.h b/spaghetti-monster/anduril/cfg-noctigon-dm11.h
index 5f3cb80..cd6bc9d 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-dm11.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-dm11.h
@@ -4,7 +4,7 @@
#pragma once
#define MODEL_NUMBER "0271"
-#include "hwdef-Noctigon_DM11.h"
+#include "hwdef-noctigon-dm11.h"
#include "hank-cfg.h"
// ATTINY: 1634
@@ -17,29 +17,24 @@
#undef USE_INDICATOR_LED_WHILE_RAMPING
#endif
+#define RAMP_SIZE 150
// 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 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 MIN_THERM_STEPDOWN 66 // should be above highest dyn_pwm level
-#define DEFAULT_LEVEL 70
#define MAX_1x7135 130
+#define DEFAULT_LEVEL 70
#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
@@ -52,27 +47,42 @@
#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 50
#define BLINK_ONCE_TIME 12
+// show each channel while it scroll by in the menu
+#define USE_CONFIG_COLORS
+
+// there is usually no lighted button, so
+// blink numbers on the main LEDs by default (but allow user to change it)
+#define DEFAULT_BLINK_CHANNEL CM_MAIN
+
+// 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
+
+// make candle mode wobble more
+#define CANDLE_AMPLITUDE 30
+
+// don't blink while ramping
+#ifdef BLINK_AT_RAMP_MIDDLE
+#undef BLINK_AT_RAMP_MIDDLE
+#endif
+
// added for convenience
#define USE_SOFT_FACTORY_RESET
diff --git a/spaghetti-monster/anduril/cfg-noctigon-kr4.h b/spaghetti-monster/anduril/cfg-noctigon-kr4.h
index 7a8ea5a..5b24ef5 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-kr4.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-kr4.h
@@ -33,7 +33,6 @@
#define MAX_1x7135 130
#define DEFAULT_LEVEL 50
-//#define MIN_THERM_STEPDOWN 66 // should be above highest dyn_pwm level
#define HALFSPEED_LEVEL 12
#define QUARTERSPEED_LEVEL 4
@@ -63,8 +62,8 @@
// show each channel while it scroll by in the menu
#define USE_CONFIG_COLORS
-// there is usually no lighted button,
-// so blink numbers on the main LEDs by default (but allow user to change it)
+// there is usually no lighted button, so
+// blink numbers on the main LEDs by default (but allow user to change it)
#define DEFAULT_BLINK_CHANNEL CM_MAIN
// slow down party strobe; this driver can't pulse for 1ms or less
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.