aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spaghetti-monster/anduril/battcheck-mode.c9
-rw-r--r--spaghetti-monster/anduril/cfg-wurkkos-ts10.h5
-rw-r--r--spaghetti-monster/anduril/load-save-config-fsm.h3
-rw-r--r--spaghetti-monster/anduril/load-save-config.h4
-rw-r--r--spaghetti-monster/fsm-misc.c10
-rw-r--r--spaghetti-monster/fsm-misc.h13
6 files changed, 39 insertions, 5 deletions
diff --git a/spaghetti-monster/anduril/battcheck-mode.c b/spaghetti-monster/anduril/battcheck-mode.c
index 9eb82fe..7e25f79 100644
--- a/spaghetti-monster/anduril/battcheck-mode.c
+++ b/spaghetti-monster/anduril/battcheck-mode.c
@@ -31,6 +31,15 @@ uint8_t battcheck_state(Event event, uint16_t arg) {
return MISCHIEF_MANAGED;
}
+ #ifdef DEFAULT_BLINK_CHANNEL
+ // 3 clicks: next channel mode (specific to number blinky modes)
+ else if (event == EV_3clicks) {
+ cfg.blink_channel = (cfg.blink_channel + 1) % NUM_CHANNEL_MODES;
+ save_config();
+ return EVENT_HANDLED;
+ }
+ #endif // ifdef DEFAULT_BLINK_CHANNEL
+
#ifdef USE_VOLTAGE_CORRECTION
// 7H: voltage config mode
else if (event == EV_click7_hold) {
diff --git a/spaghetti-monster/anduril/cfg-wurkkos-ts10.h b/spaghetti-monster/anduril/cfg-wurkkos-ts10.h
index 4b82949..8e3462e 100644
--- a/spaghetti-monster/anduril/cfg-wurkkos-ts10.h
+++ b/spaghetti-monster/anduril/cfg-wurkkos-ts10.h
@@ -55,7 +55,7 @@
#define RAMP_SMOOTH_CEIL 150
// 20 38 56 [75] 93 111 130
#define RAMP_DISCRETE_FLOOR 20
-#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL
+#define RAMP_DISCRETE_CEIL 130
#define RAMP_DISCRETE_STEPS 7
// at Wurkkos's request, reduce the Simple UI ceiling a little bit
@@ -74,6 +74,9 @@
// 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_AUX
+
// enable SOS in the blinkies group
#define USE_SOS_MODE
#define USE_SOS_MODE_IN_BLINKY_GROUP
diff --git a/spaghetti-monster/anduril/load-save-config-fsm.h b/spaghetti-monster/anduril/load-save-config-fsm.h
index ceb9d76..df46fc5 100644
--- a/spaghetti-monster/anduril/load-save-config-fsm.h
+++ b/spaghetti-monster/anduril/load-save-config-fsm.h
@@ -52,6 +52,9 @@ typedef struct Config {
#ifdef USE_MANUAL_MEMORY
uint8_t manual_memory_channel_mode;
#endif
+ #ifdef DEFAULT_BLINK_CHANNEL
+ uint8_t blink_channel;
+ #endif
#endif
#ifdef USE_CHANNEL_MODE_ARGS
// this is an array, needs a few bytes
diff --git a/spaghetti-monster/anduril/load-save-config.h b/spaghetti-monster/anduril/load-save-config.h
index 60612d3..278d286 100644
--- a/spaghetti-monster/anduril/load-save-config.h
+++ b/spaghetti-monster/anduril/load-save-config.h
@@ -77,6 +77,10 @@ Config cfg = {
// reset w/ manual memory
.manual_memory_channel_mode = DEFAULT_CHANNEL_MODE,
#endif
+ #ifdef DEFAULT_BLINK_CHANNEL
+ // blink numbers in a specific channel (user configurable)
+ .blink_channel = DEFAULT_BLINK_CHANNEL,
+ #endif
#endif
#ifdef USE_CHANNEL_MODE_ARGS
// one byte of extra data per channel mode, like for tint value
diff --git a/spaghetti-monster/fsm-misc.c b/spaghetti-monster/fsm-misc.c
index 80652b3..1c40b81 100644
--- a/spaghetti-monster/fsm-misc.c
+++ b/spaghetti-monster/fsm-misc.c
@@ -32,6 +32,11 @@ uint8_t blink_digit(uint8_t num) {
uint8_t ontime = BLINK_SPEED * 2 / 12;
if (!num) { ontime = 8; num ++; }
+ #ifdef BLINK_CHANNEL
+ uint8_t old_channel = CH_MODE;
+ set_channel_mode(BLINK_CHANNEL);
+ #endif
+
for (; num>0; num--) {
// TODO: allow setting a blink channel mode per build target
set_level(BLINK_BRIGHTNESS);
@@ -39,6 +44,11 @@ uint8_t blink_digit(uint8_t num) {
set_level(0);
nice_delay_ms(BLINK_SPEED * 3 / 12);
}
+
+ #ifdef BLINK_CHANNEL
+ set_channel_mode(old_channel);
+ #endif
+
return nice_delay_ms(BLINK_SPEED * 8 / 12);
}
#endif
diff --git a/spaghetti-monster/fsm-misc.h b/spaghetti-monster/fsm-misc.h
index 68929c2..8988337 100644
--- a/spaghetti-monster/fsm-misc.h
+++ b/spaghetti-monster/fsm-misc.h
@@ -9,10 +9,15 @@ void auto_clock_speed();
#endif
#if defined(USE_BLINK_NUM) || defined(USE_BLINK_DIGIT)
-#ifndef BLINK_BRIGHTNESS
-#define BLINK_BRIGHTNESS (MAX_LEVEL/6)
-#endif
-uint8_t blink_digit(uint8_t num);
+ #ifndef BLINK_BRIGHTNESS
+ #define BLINK_BRIGHTNESS (MAX_LEVEL/6)
+ #endif
+ #if defined(USE_CFG) && defined(DEFAULT_BLINK_CHANNEL)
+ #define BLINK_CHANNEL cfg.blink_channel
+ #elif defined(DEFAULT_BLINK_CHANNEL)
+ #define BLINK_CHANNEL DEFAULT_BLINK_CHANNEL
+ #endif
+ uint8_t blink_digit(uint8_t num);
#endif
#ifdef USE_BLINK_NUM