aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spaghetti-monster/anduril/MODELS9
-rw-r--r--spaghetti-monster/anduril/Makefile8
-rw-r--r--spaghetti-monster/anduril/cfg-blf-gt-mini.h2
-rw-r--r--spaghetti-monster/anduril/cfg-blf-gt.h1
-rw-r--r--spaghetti-monster/anduril/cfg-blf-lantern.h1
-rw-r--r--spaghetti-monster/anduril/cfg-blf-q8.h1
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d1.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d18.h3
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d1s.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d1v2.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4-219c.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4.h1
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4s-219c.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4s.h1
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4sv2-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4sv2.h1
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4v2-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4v2-nofet.h2
-rw-r--r--spaghetti-monster/anduril/cfg-emisar-d4v2.h1
-rw-r--r--spaghetti-monster/anduril/cfg-ff-e01.h2
-rw-r--r--spaghetti-monster/anduril/cfg-ff-pl47-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-ff-pl47.h1
-rw-r--r--spaghetti-monster/anduril/cfg-ff-pl47g2.h1
-rw-r--r--spaghetti-monster/anduril/cfg-ff-rot66-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-ff-rot66.h1
-rw-r--r--spaghetti-monster/anduril/cfg-ff-rot66g2.h2
-rw-r--r--spaghetti-monster/anduril/cfg-fw3a-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-fw3a-nofet.h2
-rw-r--r--spaghetti-monster/anduril/cfg-fw3a.h1
-rw-r--r--spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h1
-rw-r--r--spaghetti-monster/anduril/cfg-mateminco-mf01s.h1
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-k1-12v.h1
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-k1-sbt90.h1
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-k1.h1
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-kr4-219.h2
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-kr4-nofet.h2
-rw-r--r--spaghetti-monster/anduril/cfg-noctigon-kr4.h1
-rw-r--r--spaghetti-monster/anduril/cfg-sofirn-sp36.h2
-rw-r--r--spaghetti-monster/anduril/version-check-mode.h8
39 files changed, 79 insertions, 2 deletions
diff --git a/spaghetti-monster/anduril/MODELS b/spaghetti-monster/anduril/MODELS
new file mode 100644
index 0000000..b74ddab
--- /dev/null
+++ b/spaghetti-monster/anduril/MODELS
@@ -0,0 +1,9 @@
+Vendor / Model IDs for version check function
+
+Undefined 0000
+Emisar 0100 - 0199
+Noctigon 0200 - 0199
+Lumintop 0300 - 0399
+Fireflies 0400 - 0499
+Mateminco 0500 - 0599
+Sofirn 0600 - 0699
diff --git a/spaghetti-monster/anduril/Makefile b/spaghetti-monster/anduril/Makefile
index 9b77601..0e0cd7b 100644
--- a/spaghetti-monster/anduril/Makefile
+++ b/spaghetti-monster/anduril/Makefile
@@ -7,4 +7,12 @@ clean:
todo:
@egrep 'TODO:|FIXME:' *.[ch]
+models:
+ @echo 'Model numbers:'
+ @grep '^#define MODEL_NUMBER' cfg-*.h | perl -ne '/cfg-(.*)\.h:#define MODEL_NUMBER "(.*)"/ && print "$$2\t$$1\n";' | sort -n
+ @echo 'Duplicates:'
+ @cat cfg-*.h | grep '^#define MODEL_NUMBER' | sort | uniq -c | grep -v ' 1 ' || true
+ @echo 'Missing:'
+ @for f in cfg-*.h ; do grep --silent '^#define MODEL_NUMBER' $$f ; if [ "$$?" = "1" ] ; then echo " $$f" ; fi ; done
+
.phony: clean todo
diff --git a/spaghetti-monster/anduril/cfg-blf-gt-mini.h b/spaghetti-monster/anduril/cfg-blf-gt-mini.h
index 3728f98..45dfe36 100644
--- a/spaghetti-monster/anduril/cfg-blf-gt-mini.h
+++ b/spaghetti-monster/anduril/cfg-blf-gt-mini.h
@@ -2,6 +2,8 @@
#include "hwdef-BLF_GT_Mini.h"
// Same as an Emisar D1S, except it has a lighted button
#include "cfg-emisar-d1s.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0322"
// the button lights up
#define USE_INDICATOR_LED
diff --git a/spaghetti-monster/anduril/cfg-blf-gt.h b/spaghetti-monster/anduril/cfg-blf-gt.h
index a255073..061685c 100644
--- a/spaghetti-monster/anduril/cfg-blf-gt.h
+++ b/spaghetti-monster/anduril/cfg-blf-gt.h
@@ -1,4 +1,5 @@
// BLF GT config options for Anduril
+#define MODEL_NUMBER "0321"
#include "hwdef-BLF_GT.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-blf-lantern.h b/spaghetti-monster/anduril/cfg-blf-lantern.h
index b2cc1b0..6be8ec7 100644
--- a/spaghetti-monster/anduril/cfg-blf-lantern.h
+++ b/spaghetti-monster/anduril/cfg-blf-lantern.h
@@ -1,4 +1,5 @@
// BLF Lantern config options for Anduril
+#define MODEL_NUMBER "0621"
/* BLF Lantern pinout
* ----
* Reset -|1 8|- VCC
diff --git a/spaghetti-monster/anduril/cfg-blf-q8.h b/spaghetti-monster/anduril/cfg-blf-q8.h
index a907d02..408c305 100644
--- a/spaghetti-monster/anduril/cfg-blf-q8.h
+++ b/spaghetti-monster/anduril/cfg-blf-q8.h
@@ -1,4 +1,5 @@
// BLF Q8 config options for Anduril
+#define MODEL_NUMBER "0611"
#include "hwdef-BLF_Q8.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-emisar-d1.h b/spaghetti-monster/anduril/cfg-emisar-d1.h
index 4b894d7..2427773 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d1.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d1.h
@@ -2,6 +2,8 @@
#include "hwdef-Emisar_D1.h"
// same as Emisar D4, mostly
#include "cfg-emisar-d4.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0121"
// safe limit ~50% power
#undef SIMPLE_UI_CEIL
diff --git a/spaghetti-monster/anduril/cfg-emisar-d18.h b/spaghetti-monster/anduril/cfg-emisar-d18.h
index 5f29270..6aaa693 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d18.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d18.h
@@ -1,4 +1,5 @@
-// Emisar FET+13+1 config options for Anduril
+// Emisar D18 (FET+13+1) config options for Anduril
+#define MODEL_NUMBER "0141"
#include "hwdef-Emisar_D18.h"
// level_calc.py seventh 3 150 7135 1 1.4 117.99 7135 6 1 1706.86 FET 3 10 13000
diff --git a/spaghetti-monster/anduril/cfg-emisar-d1s.h b/spaghetti-monster/anduril/cfg-emisar-d1s.h
index cc25ddd..e6ca0f1 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d1s.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d1s.h
@@ -2,6 +2,8 @@
#include "hwdef-Emisar_D1S.h"
// same as Emisar D4, mostly
#include "cfg-emisar-d4.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0122"
// safe limit ~50% power
#undef SIMPLE_UI_CEIL
diff --git a/spaghetti-monster/anduril/cfg-emisar-d1v2.h b/spaghetti-monster/anduril/cfg-emisar-d1v2.h
index 42f6ab8..c2815fd 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d1v2.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d1v2.h
@@ -2,6 +2,8 @@
// ATTINY: 1634
// same as Emisar D4v2, mostly
#include "cfg-emisar-d4v2.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0123"
// there are no aux LEDs on a D1
#undef USE_AUX_RGB_LEDS
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4-219c.h b/spaghetti-monster/anduril/cfg-emisar-d4-219c.h
index cf245a2..1f07008 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4-219c.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4-219c.h
@@ -2,6 +2,8 @@
// same as D4S but with FET modes limited to 80% power
// to avoid destroying the LEDs
#include "cfg-emisar-d4.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0112"
#undef PWM2_LEVELS
#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,2,3,4,5,6,7,8,9,11,12,13,15,16,17,19,20,21,23,24,26,28,29,31,32,34,36,38,40,41,44,45,47,49,51,53,56,57,60,62,64,67,69,72,74,76,79,81,84,87,89,92,95,97,100,103,106,109,112,115,118,121,124,128,132,135,138,141,145,148,152,156,160,164,167,171,175,179,183,187,191,195,200,204
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4.h b/spaghetti-monster/anduril/cfg-emisar-d4.h
index 3ee7c73..caabb0e 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4.h
@@ -1,4 +1,5 @@
// Emisar D4 config options for Anduril
+#define MODEL_NUMBER "0111"
#include "hwdef-Emisar_D4.h"
// ../../bin/level_calc.py 1 65 7135 1 0.8 150
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4s-219c.h b/spaghetti-monster/anduril/cfg-emisar-d4s-219c.h
index 0c68bc4..ef783d8 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4s-219c.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4s-219c.h
@@ -2,6 +2,8 @@
// same as D4S but with FET modes limited to 80% power
// to avoid destroying the LEDs
#include "cfg-emisar-d4s.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0132"
#undef PWM2_LEVELS
#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,2,3,4,5,6,8,8,10,11,12,14,15,16,18,20,21,23,24,27,28,30,32,34,36,38,40,43,45,48,50,52,55,57,60,63,66,69,72,76,79,82,85,89,92,96,100,104,108,112,116,121,126,130,135,140,145,150,156,161,167,172,178,184,191,197,204
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4s.h b/spaghetti-monster/anduril/cfg-emisar-d4s.h
index 80f557d..fdab906 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4s.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4s.h
@@ -1,4 +1,5 @@
// Emisar D4S config options for Anduril
+#define MODEL_NUMBER "0131"
#include "hwdef-Emisar_D4S.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4sv2-219.h b/spaghetti-monster/anduril/cfg-emisar-d4sv2-219.h
index 9898246..65bf116 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4sv2-219.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4sv2-219.h
@@ -1,5 +1,7 @@
// Emisar D4Sv2-219 config options for Anduril
#include "cfg-emisar-d4sv2.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0134"
// ATTINY: 1634
#undef PWM1_LEVELS
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4sv2.h b/spaghetti-monster/anduril/cfg-emisar-d4sv2.h
index 2702261..ad6de03 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4sv2.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4sv2.h
@@ -1,4 +1,5 @@
// Emisar D4S V2 config options for Anduril
+#define MODEL_NUMBER "0133"
#include "hwdef-Emisar_D4Sv2.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2-219.h b/spaghetti-monster/anduril/cfg-emisar-d4v2-219.h
index 0770935..cef89be 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4v2-219.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4v2-219.h
@@ -1,5 +1,7 @@
// Emisar D4v2-219 config options for Anduril
#include "cfg-emisar-d4v2.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0114"
// ATTINY: 1634
#undef PWM1_LEVELS
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2-nofet.h b/spaghetti-monster/anduril/cfg-emisar-d4v2-nofet.h
index c53e2e9..717afcf 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4v2-nofet.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4v2-nofet.h
@@ -1,5 +1,7 @@
// Emisar D4v2-noFET config options for Anduril
#include "cfg-emisar-d4v2.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0115"
// ATTINY: 1634
#undef PWM_CHANNELS
diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2.h b/spaghetti-monster/anduril/cfg-emisar-d4v2.h
index b7093af..6e389aa 100644
--- a/spaghetti-monster/anduril/cfg-emisar-d4v2.h
+++ b/spaghetti-monster/anduril/cfg-emisar-d4v2.h
@@ -1,4 +1,5 @@
// Emisar D4 config options for Anduril
+#define MODEL_NUMBER "0113"
#include "hwdef-Emisar_D4v2.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-ff-e01.h b/spaghetti-monster/anduril/cfg-ff-e01.h
index 7db369c..c035180 100644
--- a/spaghetti-monster/anduril/cfg-ff-e01.h
+++ b/spaghetti-monster/anduril/cfg-ff-e01.h
@@ -1,6 +1,8 @@
// Fireflies E01 SST-40 thrower config options for Anduril
// most of the good stuff is in the FFUI config; just copy it
#include "../fireflies-ui/cfg-ff-e01.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0441"
#ifndef BLINK_AT_RAMP_CEIL
#define BLINK_AT_RAMP_CEIL
diff --git a/spaghetti-monster/anduril/cfg-ff-pl47-219.h b/spaghetti-monster/anduril/cfg-ff-pl47-219.h
index ad66adb..efba8d3 100644
--- a/spaghetti-monster/anduril/cfg-ff-pl47-219.h
+++ b/spaghetti-monster/anduril/cfg-ff-pl47-219.h
@@ -2,6 +2,8 @@
// same as PL47 but with FET modes limited to 67% power
// to avoid destroying the LEDs
#include "cfg-ff-pl47.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0422"
#undef PWM1_LEVELS
#undef PWM2_LEVELS
diff --git a/spaghetti-monster/anduril/cfg-ff-pl47.h b/spaghetti-monster/anduril/cfg-ff-pl47.h
index 2636b71..1bb6a2f 100644
--- a/spaghetti-monster/anduril/cfg-ff-pl47.h
+++ b/spaghetti-monster/anduril/cfg-ff-pl47.h
@@ -1,4 +1,5 @@
// Fireflies PL47 config options for Anduril
+#define MODEL_NUMBER "0421"
#include "hwdef-FF_PL47.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-ff-pl47g2.h b/spaghetti-monster/anduril/cfg-ff-pl47g2.h
index 87b3c07..7e63ec3 100644
--- a/spaghetti-monster/anduril/cfg-ff-pl47g2.h
+++ b/spaghetti-monster/anduril/cfg-ff-pl47g2.h
@@ -1,4 +1,5 @@
// Fireflies PL47 G2 config options for Anduril
+#define MODEL_NUMBER "0423"
#include "hwdef-FF_PL47.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-ff-rot66-219.h b/spaghetti-monster/anduril/cfg-ff-rot66-219.h
index efaad94..086f8ac 100644
--- a/spaghetti-monster/anduril/cfg-ff-rot66-219.h
+++ b/spaghetti-monster/anduril/cfg-ff-rot66-219.h
@@ -1,6 +1,8 @@
// Fireflies ROT66-219 (7x7135) config options for Anduril
// same as regular ROT66, but calibrated for Nichia 219B with 7x7135 chips
#include "cfg-ff-rot66.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0412"
// driver is a FET+N+1,
// where N=6 for the 219b version
diff --git a/spaghetti-monster/anduril/cfg-ff-rot66.h b/spaghetti-monster/anduril/cfg-ff-rot66.h
index d43c260..9922681 100644
--- a/spaghetti-monster/anduril/cfg-ff-rot66.h
+++ b/spaghetti-monster/anduril/cfg-ff-rot66.h
@@ -1,4 +1,5 @@
// Fireflies ROT66 (14x7135) config options for Anduril
+#define MODEL_NUMBER "0411"
#include "hwdef-FF_ROT66.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-ff-rot66g2.h b/spaghetti-monster/anduril/cfg-ff-rot66g2.h
index 8dd6d9c..8a97c87 100644
--- a/spaghetti-monster/anduril/cfg-ff-rot66g2.h
+++ b/spaghetti-monster/anduril/cfg-ff-rot66g2.h
@@ -1,5 +1,7 @@
// Fireflies ROT66 G2 config options for Anduril
#include "cfg-ff-rot66.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0413"
// ROM is too big... remove something
#undef USE_VOLTAGE_CORRECTION
diff --git a/spaghetti-monster/anduril/cfg-fw3a-219.h b/spaghetti-monster/anduril/cfg-fw3a-219.h
index 1d8e4a1..c9bf0c1 100644
--- a/spaghetti-monster/anduril/cfg-fw3a-219.h
+++ b/spaghetti-monster/anduril/cfg-fw3a-219.h
@@ -1,5 +1,7 @@
// FW3A-219 config options for Anduril
#include "cfg-fw3a.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0312"
#undef PWM1_LEVELS
#undef PWM2_LEVELS
diff --git a/spaghetti-monster/anduril/cfg-fw3a-nofet.h b/spaghetti-monster/anduril/cfg-fw3a-nofet.h
index 10d8902..7752c10 100644
--- a/spaghetti-monster/anduril/cfg-fw3a-nofet.h
+++ b/spaghetti-monster/anduril/cfg-fw3a-nofet.h
@@ -1,5 +1,7 @@
// FW3A with the FET disabled
#include "cfg-fw3a.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0313"
// don't use channel 3 (FET)
#undef PWM_CHANNELS
diff --git a/spaghetti-monster/anduril/cfg-fw3a.h b/spaghetti-monster/anduril/cfg-fw3a.h
index e47a8f0..0ef2e15 100644
--- a/spaghetti-monster/anduril/cfg-fw3a.h
+++ b/spaghetti-monster/anduril/cfg-fw3a.h
@@ -1,4 +1,5 @@
// FW3A config options for Anduril
+#define MODEL_NUMBER "0311"
#include "hwdef-FW3A.h"
// ../../bin/level_calc.py 1 65 7135 1 0.8 150
diff --git a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h
index 2634a34..9b39af1 100644
--- a/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h
+++ b/spaghetti-monster/anduril/cfg-mateminco-mf01-mini.h
@@ -1,4 +1,5 @@
// Mateminco/Astrolux MF01-Mini options for Anduril
+#define MODEL_NUMBER "0521"
#include "hwdef-Mateminco_MF01-Mini.h"
// ROM is too big... remove something
diff --git a/spaghetti-monster/anduril/cfg-mateminco-mf01s.h b/spaghetti-monster/anduril/cfg-mateminco-mf01s.h
index b3c58e8..9a8b641 100644
--- a/spaghetti-monster/anduril/cfg-mateminco-mf01s.h
+++ b/spaghetti-monster/anduril/cfg-mateminco-mf01s.h
@@ -1,4 +1,5 @@
// Mateminco/Astrolux MF01S options for Anduril
+#define MODEL_NUMBER "0511"
#include "hwdef-Mateminco_MF01S.h"
// the button lights up
diff --git a/spaghetti-monster/anduril/cfg-noctigon-k1-12v.h b/spaghetti-monster/anduril/cfg-noctigon-k1-12v.h
index b1fb136..d0281c5 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-k1-12v.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-k1-12v.h
@@ -1,4 +1,5 @@
// Noctigon K1 12V config options for Anduril
+#define MODEL_NUMBER "0253"
#include "hwdef-Noctigon_K1-12V.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-noctigon-k1-sbt90.h b/spaghetti-monster/anduril/cfg-noctigon-k1-sbt90.h
index 9e52fa6..0d7ad2b 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-k1-sbt90.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-k1-sbt90.h
@@ -1,5 +1,6 @@
// Noctigon K1-SBT90.2 config options for Anduril
// (is a K1 host with a KR4-like driver and a really high-powered LED)
+#define MODEL_NUMBER "0252"
#include "hwdef-Noctigon_K1-SBT90.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-noctigon-k1.h b/spaghetti-monster/anduril/cfg-noctigon-k1.h
index d3c199e..187049b 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-k1.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-k1.h
@@ -1,4 +1,5 @@
// Noctigon K1 config options for Anduril
+#define MODEL_NUMBER "0251"
// (originally known as Emisar D1S v2)
#include "hwdef-Noctigon_K1.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-noctigon-kr4-219.h b/spaghetti-monster/anduril/cfg-noctigon-kr4-219.h
index 0cfccf2..083995f 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-kr4-219.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-kr4-219.h
@@ -1,5 +1,7 @@
// Noctigon KR4 (75% FET) config options for Anduril
#include "cfg-noctigon-kr4.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0213"
// ATTINY: 1634
// don't turn off first channel at turbo level
diff --git a/spaghetti-monster/anduril/cfg-noctigon-kr4-nofet.h b/spaghetti-monster/anduril/cfg-noctigon-kr4-nofet.h
index f09d952..3043035 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-kr4-nofet.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-kr4-nofet.h
@@ -2,6 +2,8 @@
// (and Noctigon KR1)
// (and Emisar D4v2 E21A, a.k.a. "D4v2.5")
#include "cfg-noctigon-kr4.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0212"
// ATTINY: 1634
// brightness w/ SST-20 4000K LEDs:
diff --git a/spaghetti-monster/anduril/cfg-noctigon-kr4.h b/spaghetti-monster/anduril/cfg-noctigon-kr4.h
index 0cf520e..afc0fa9 100644
--- a/spaghetti-monster/anduril/cfg-noctigon-kr4.h
+++ b/spaghetti-monster/anduril/cfg-noctigon-kr4.h
@@ -1,5 +1,6 @@
// Noctigon KR4 config options for Anduril
// (and Emisar D4v2.5, which uses KR4 driver plus a button LED)
+#define MODEL_NUMBER "0211"
#include "hwdef-Noctigon_KR4.h"
// ATTINY: 1634
diff --git a/spaghetti-monster/anduril/cfg-sofirn-sp36.h b/spaghetti-monster/anduril/cfg-sofirn-sp36.h
index 0bd5a5f..af8c18b 100644
--- a/spaghetti-monster/anduril/cfg-sofirn-sp36.h
+++ b/spaghetti-monster/anduril/cfg-sofirn-sp36.h
@@ -1,6 +1,8 @@
// Sofirn SP36 (small Q8) config options for Anduril
// same as the BLF Q8, mostly
#include "cfg-blf-q8.h"
+#undef MODEL_NUMBER
+#define MODEL_NUMBER "0612"
// voltage readings were a little high with the Q8 value
#undef VOLTAGE_FUDGE_FACTOR
diff --git a/spaghetti-monster/anduril/version-check-mode.h b/spaghetti-monster/anduril/version-check-mode.h
index 7e89d73..ce02b73 100644
--- a/spaghetti-monster/anduril/version-check-mode.h
+++ b/spaghetti-monster/anduril/version-check-mode.h
@@ -22,8 +22,14 @@
#define USE_BLINK_DIGIT // FIXME: does nothing unless defined earlier
+#ifndef MODEL_NUMBER
+// if no model number, it's a build error
+//#define MODEL_NUMBER "0000"
+#error MODEL_NUMBER undefined
+#endif
+
#include "version.h"
-const PROGMEM uint8_t version_number[] = VERSION_NUMBER;
+const PROGMEM uint8_t version_number[] = VERSION_NUMBER MODEL_NUMBER;
uint8_t version_check_state(Event event, uint16_t arg);
inline void version_check_iter();
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.