aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-05-02 08:47:42 -0600
committerSelene ToyKeeper2023-05-02 08:47:42 -0600
commitfbed17d3260d1fca312d655818cc2394654615aa (patch)
tree314a65aca488c6a235f2afeddd19a4b3d8eb22f2
parentmade "post-off voltage display" user-configurable in battcheck 7H menu item 2 (diff)
downloadanduril-fbed17d3260d1fca312d655818cc2394654615aa.tar.gz
anduril-fbed17d3260d1fca312d655818cc2394654615aa.tar.bz2
anduril-fbed17d3260d1fca312d655818cc2394654615aa.zip
D4v2: added the rest of the aux RGB colors as channel modes,
and set aux "white" as the mode it uses to blink out numbers
-rw-r--r--hwdef-emisar-d4v2.h34
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4v2.h3
-rw-r--r--spaghetti-monster/chan-rgbaux.c22
-rw-r--r--spaghetti-monster/chan-rgbaux.h4
4 files changed, 52 insertions, 11 deletions
diff --git a/hwdef-emisar-d4v2.h b/hwdef-emisar-d4v2.h
index 813dbf3..a502421 100644
--- a/hwdef-emisar-d4v2.h
+++ b/hwdef-emisar-d4v2.h
@@ -40,13 +40,23 @@
// channel modes:
// * 0. FET+7135 stacked
// * 1. aux red
-// * 2. aux green
-// * 3. aux blue
-#define NUM_CHANNEL_MODES 4
-#define CM_MAIN 0
-#define CM_AUXRED 1
-#define CM_AUXGRN 2
-#define CM_AUXBLU 3
+// * 2. aux yellow
+// * 3. aux green
+// * 4. aux cyan
+// * 5. aux blue
+// * 6. aux purple
+// * 7. aux white
+#define NUM_CHANNEL_MODES 8
+enum CHANNEL_MODES {
+ CM_MAIN = 0,
+ CM_AUXRED,
+ CM_AUXYEL,
+ CM_AUXGRN,
+ CM_AUXCYN,
+ CM_AUXBLU,
+ CM_AUXPRP,
+ CM_AUXWHT,
+};
#define DEFAULT_CHANNEL_MODE CM_MAIN
@@ -58,12 +68,20 @@
#define SET_LEVEL_MODES set_level_main, \
set_level_auxred, \
+ set_level_auxyel, \
set_level_auxgrn, \
- set_level_auxblu
+ set_level_auxcyn, \
+ set_level_auxblu, \
+ set_level_auxprp, \
+ set_level_auxwht
// gradual ticking for thermal regulation
#define GRADUAL_TICK_MODES gradual_tick_main, \
gradual_tick_null, \
gradual_tick_null, \
+ gradual_tick_null, \
+ gradual_tick_null, \
+ gradual_tick_null, \
+ gradual_tick_null, \
gradual_tick_null
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2.h b/spaghetti-monster/anduril/cfg-emisar-d4v2.h
index 69023d1..f68e50f 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4v2.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4v2.h
@@ -45,6 +45,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_AUXWHT
+
// use aux red + aux blue for police strobe
#define USE_POLICE_COLOR_STROBE_MODE
#define POLICE_STROBE_USES_AUX
diff --git a/spaghetti-monster/chan-rgbaux.c b/spaghetti-monster/chan-rgbaux.c
index 355f246..19d18a6 100644
--- a/spaghetti-monster/chan-rgbaux.c
+++ b/spaghetti-monster/chan-rgbaux.c
@@ -4,15 +4,31 @@
#pragma once
void set_level_auxred(uint8_t level) {
- rgb_led_set(!(!(level)) << 1); // red, high (or off)
+ rgb_led_set(!(!(level)) * 0b000010); // red, high (or off)
+}
+
+void set_level_auxyel(uint8_t level) {
+ rgb_led_set(!(!(level)) * 0b001010); // red+green, high (or off)
}
void set_level_auxgrn(uint8_t level) {
- rgb_led_set(!(!(level)) << 3); // green, high (or off)
+ rgb_led_set(!(!(level)) * 0b001000); // green, high (or off)
+}
+
+void set_level_auxcyn(uint8_t level) {
+ rgb_led_set(!(!(level)) * 0b101000); // green+blue, high (or off)
}
void set_level_auxblu(uint8_t level) {
- rgb_led_set(!(!(level)) << 5); // blue, high (or off)
+ rgb_led_set(!(!(level)) * 0b100000); // blue, high (or off)
+}
+
+void set_level_auxprp(uint8_t level) {
+ rgb_led_set(!(!(level)) * 0b100010); // red+blue, high (or off)
+}
+
+void set_level_auxwht(uint8_t level) {
+ rgb_led_set(!(!(level)) * 0b101010); // red+green+blue, high (or off)
}
bool gradual_tick_null(uint8_t gt) { return true; } // do nothing
diff --git a/spaghetti-monster/chan-rgbaux.h b/spaghetti-monster/chan-rgbaux.h
index 5c1c5c3..d19f6ad 100644
--- a/spaghetti-monster/chan-rgbaux.h
+++ b/spaghetti-monster/chan-rgbaux.h
@@ -4,8 +4,12 @@
#pragma once
void set_level_auxred(uint8_t level);
+void set_level_auxyel(uint8_t level);
void set_level_auxgrn(uint8_t level);
+void set_level_auxcyn(uint8_t level);
void set_level_auxblu(uint8_t level);
+void set_level_auxprp(uint8_t level);
+void set_level_auxwht(uint8_t level);
bool gradual_tick_null(uint8_t gt);