aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster
diff options
context:
space:
mode:
authorSelene ToyKeeper2020-08-31 16:50:02 -0600
committerSelene ToyKeeper2020-08-31 16:50:02 -0600
commit1987ee9d3e36e9e4ddd3b383be12f82c44197213 (patch)
treef13623aff7ac6e5f33dac57f76d70756102d2576 /spaghetti-monster
parentreduced size 18 bytes by removing unnecessary duplications of blink_once() (diff)
downloadanduril-1987ee9d3e36e9e4ddd3b383be12f82c44197213.tar.gz
anduril-1987ee9d3e36e9e4ddd3b383be12f82c44197213.tar.bz2
anduril-1987ee9d3e36e9e4ddd3b383be12f82c44197213.zip
added model numbers to each build target, and to version check function
Diffstat (limited to '')
-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();