aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiteRelEnby2024-09-24 09:56:55 -0500
committerSiteRelEnby2024-09-24 09:56:55 -0500
commit6430249a85ef8e5205ef21984da1311f89f466f0 (patch)
treed779ba0cdac1f66b82d011130e9be53b9c7f0bea
parentMerge branch 'main' into rgb-voltage-configurable (diff)
parentMerge branch 'pr90-SammysHP-wurkkos-ts10-lowfet' into trunk (diff)
downloadanduril-6430249a85ef8e5205ef21984da1311f89f466f0.tar.gz
anduril-6430249a85ef8e5205ef21984da1311f89f466f0.tar.bz2
anduril-6430249a85ef8e5205ef21984da1311f89f466f0.zip
Merge branch 'main' into rgb-voltage-configurable
Diffstat (limited to '')
-rw-r--r--MODELS1
-rw-r--r--docs/anduril-manual.md12
-rw-r--r--hw/wurkkos/ts10/rgbaux-lowfet/README.md12
-rw-r--r--hw/wurkkos/ts10/rgbaux-lowfet/anduril.h16
-rw-r--r--hw/wurkkos/ts10/rgbaux-lowfet/model1
-rw-r--r--hw/wurkkos/ts10/rgbaux/anduril.h3
-rw-r--r--ui/anduril/off-mode.c26
7 files changed, 50 insertions, 21 deletions
diff --git a/MODELS b/MODELS
index 2a6e114..caa4bf5 100644
--- a/MODELS
+++ b/MODELS
@@ -70,6 +70,7 @@ Model MCU Name
0623 attiny1616 sofirn-lt1s-pro
0631 attiny1616 sofirn-sp10-pro
0632 attiny1616 sofirn-sc21-pro
+0712 attiny1616 wurkkos-ts10-rgbaux-lowfet
0713 attiny1616 wurkkos-ts10-rgbaux
0714 attiny1616 wurkkos-ts10
0715 attiny1616 wurkkos-ts25 (may need 0716 / 0717 on some models)
diff --git a/docs/anduril-manual.md b/docs/anduril-manual.md
index 9ede671..4a1723b 100644
--- a/docs/anduril-manual.md
+++ b/docs/anduril-manual.md
@@ -142,17 +142,13 @@ manufacturer's request. This typically includes:
- `Ramp -> 3C`: Toggle smooth or stepped ramp shape.
- `Ramp -> 5H`: Sunset timer.
- - `Off -> 3H`: Access the strobe/mood modes.
- `Off -> 7C/7H`: Change the aux LED pattern.
- `Lockout -> 7C/7H`: Change the aux LED pattern.
-If your light uses Extended Simple UI, *think twice about letting kids use it*,
-because the strobe/mood modes were not intended to be used in simple mode, and
-can reach full power with no thermal regulation.
-
-It is likely that strobe/mood modes will be removed from Extended Simple UI in
-the future, for safety reasons, or maybe have already been removed. But that
-doesn't help with older firmware, so be careful.
+Old versions (before 2024-08) also allowed access to strobe/mood modes, which
+can be dangerous, so if you have one of those, *think twice about letting kids
+use it*. Those modes were never intended to be child-safe, and can reach full
+power with no thermal regulation.
### Configuring Simple UI
diff --git a/hw/wurkkos/ts10/rgbaux-lowfet/README.md b/hw/wurkkos/ts10/rgbaux-lowfet/README.md
new file mode 100644
index 0000000..2173723
--- /dev/null
+++ b/hw/wurkkos/ts10/rgbaux-lowfet/README.md
@@ -0,0 +1,12 @@
+# Wurkkos TS10 w/ RGB aux + reduced-power FET
+
+Starting in mid-2024, some TS10 models were built with LEDs with lower Vf, and
+they destroy themselves when operated at full power from the direct-drive FET.
+This branch runs at half power instead, to avoid hardware damage.
+
+Regardless, sustained turbo is not recommended on any TS10 models, because they
+are overpowered for their size and LED type.
+
+- https://budgetlightforum.com/t/psa-anyone-with-a-new-ts10-do-not-flash-it-with-tks-ts10-rgbaux-firmware-or-turbo-will-fry-its-leds/225124
+- https://www.reddit.com/r/flashlight/comments/1emyyq9/psa_dont_flash_wurkkosts10rgbauxhex_to_your_new/
+
diff --git a/hw/wurkkos/ts10/rgbaux-lowfet/anduril.h b/hw/wurkkos/ts10/rgbaux-lowfet/anduril.h
new file mode 100644
index 0000000..5d012a5
--- /dev/null
+++ b/hw/wurkkos/ts10/rgbaux-lowfet/anduril.h
@@ -0,0 +1,16 @@
+// Wurkkos TS10 (RGB aux version with reduced FET output) config options for Anduril
+// Copyright (C) 2024 Selene ToyKeeper
+// SPDX-License-Identifier: GPL-3.0-or-later
+#pragma once
+
+// most things are the same as TS10-rgbaux
+#include "wurkkos/ts10/rgbaux/anduril.h"
+
+#undef PWM1_LEVELS
+#undef PWM2_LEVELS
+#undef PWM_TOPS
+
+#define PWM1_LEVELS 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 8, 9, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 23, 24, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 36, 37, 38, 40, 41, 43, 45, 47, 50, 53, 56, 60, 63, 67, 71, 75, 79, 84, 89, 94, 99,104,110,116,122,129,136,143,150,158,166,174,183,192,202,211,222,232,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
+// FET half power:
+#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, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 44, 46, 48, 51, 53, 55, 58, 60, 63, 65, 68, 70, 73, 75, 78, 81, 84, 86, 89, 92, 95, 98,101,103,106,109,112,116,119,122,125,128
+#define PWM_TOPS 4095,2893,3917,2806,3252,2703,2684,2660,2640,2370,3000,2900,2630,2549,2246,2193,2030,1961,1889,1716,1642,1569,1497,1428,1290,1232,1176,1122,1070,976,932,890,849,779,745,685,656,605,579,536,514,476,457,424,407,379,364,340,327,314,302,291,280,276,266,262,257,253,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
diff --git a/hw/wurkkos/ts10/rgbaux-lowfet/model b/hw/wurkkos/ts10/rgbaux-lowfet/model
new file mode 100644
index 0000000..ef15105
--- /dev/null
+++ b/hw/wurkkos/ts10/rgbaux-lowfet/model
@@ -0,0 +1 @@
+0712
diff --git a/hw/wurkkos/ts10/rgbaux/anduril.h b/hw/wurkkos/ts10/rgbaux/anduril.h
index a9d4f90..df0935a 100644
--- a/hw/wurkkos/ts10/rgbaux/anduril.h
+++ b/hw/wurkkos/ts10/rgbaux/anduril.h
@@ -31,7 +31,10 @@
// level_calc.py 5.7895 2 150 7135 0 0.1 125.25 FET 1 10 1200 --pwm dyn:61:4096:255:2.5 --clock 5:11:2.0
// (with heavy manual tweaks up to ~15/150)
#define PWM1_LEVELS 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 8, 9, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 23, 24, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 36, 37, 38, 40, 41, 43, 45, 47, 50, 53, 56, 60, 63, 67, 71, 75, 79, 84, 89, 94, 99,104,110,116,122,129,136,143,150,158,166,174,183,192,202,211,222,232,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
+// FET full power:
#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, 2, 3, 5, 7, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 29, 31, 34, 37, 39, 42, 45, 48, 51, 54, 58, 61, 65, 68, 72, 76, 80, 84, 88, 93, 97,102,107,112,117,122,127,133,139,145,151,157,163,170,177,183,191,198,205,213,221,229,238,246,255
+// FET limited to 200 / 255:
+//#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, 1, 2, 3, 5, 6, 7, 9, 10, 12, 14, 15, 17, 18, 20, 22, 24, 26, 29, 30, 32, 35, 37, 40, 42, 45, 47, 50, 53, 56, 59, 62, 65, 69, 72, 76, 80, 83, 87, 91, 95, 99,104,109,113,118,123,127,133,138,143,149,155,160,167,173,179,186,192,200
#define PWM_TOPS 4095,2893,3917,2806,3252,2703,2684,2660,2640,2370,3000,2900,2630,2549,2246,2193,2030,1961,1889,1716,1642,1569,1497,1428,1290,1232,1176,1122,1070,976,932,890,849,779,745,685,656,605,579,536,514,476,457,424,407,379,364,340,327,314,302,291,280,276,266,262,257,253,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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 90
#define MIN_THERM_STEPDOWN 60
diff --git a/ui/anduril/off-mode.c b/ui/anduril/off-mode.c
index 36d771c..f699c89 100644
--- a/ui/anduril/off-mode.c
+++ b/ui/anduril/off-mode.c
@@ -264,19 +264,6 @@ uint8_t off_state(Event event, uint16_t arg) {
#endif // ifndef USE_EXTENDED_SIMPLE_UI
#endif // ifdef USE_SIMPLE_UI
- // click, click, long-click: strobe mode
- #ifdef USE_STROBE_STATE
- else if (event == EV_click3_hold) {
- set_state(strobe_state, 0);
- return EVENT_HANDLED;
- }
- #elif defined(USE_BORING_STROBE_STATE)
- else if (event == EV_click3_hold) {
- set_state(boring_strobe_state, 0);
- return EVENT_HANDLED;
- }
- #endif
-
#ifdef USE_INDICATOR_LED
// 7 clicks: change indicator LED mode
else if (event == EV_7clicks) {
@@ -334,6 +321,19 @@ uint8_t off_state(Event event, uint16_t arg) {
}
#endif // ifdef USE_EXTENDED_SIMPLE_UI
+ // click, click, long-click: strobe mode
+ #ifdef USE_STROBE_STATE
+ else if (event == EV_click3_hold) {
+ set_state(strobe_state, 0);
+ return EVENT_HANDLED;
+ }
+ #elif defined(USE_BORING_STROBE_STATE)
+ else if (event == EV_click3_hold) {
+ set_state(boring_strobe_state, 0);
+ return EVENT_HANDLED;
+ }
+ #endif
+
// 10 clicks: enable simple UI
else if (event == EV_10clicks) {
blink_once();