483.9.7
by Selene ToyKeeper
renamed MD11 -> DM11 because Hank changed the product name |
1 |
// Noctigon DM11 config options for Anduril
|
483.12.14
by Selene ToyKeeper
switched the rest of FSM + Anduril to use SPDX license headers |
2 |
// Copyright (C) 2021-2023 Selene ToyKeeper
|
3 |
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
4 |
#pragma once
|
|
5 |
||
483.9.2
by Selene Scriven
just a few adjustments to start with |
6 |
#define MODEL_NUMBER "0271"
|
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
7 |
#include "hwdef-noctigon-dm11.h" |
483.9.1
by Selene Scriven
copied Noctigon K1 -> MD11 to start defining a new light |
8 |
#include "hank-cfg.h" |
9 |
// ATTINY: 1634
|
|
10 |
||
11 |
// this light has three aux LED channels: R, G, B
|
|
12 |
#define USE_AUX_RGB_LEDS
|
|
483.9.2
by Selene Scriven
just a few adjustments to start with |
13 |
// ... and a single LED in the button
|
14 |
#define USE_BUTTON_LED
|
|
15 |
// don't use aux LEDs while main LED is on
|
|
16 |
#ifdef USE_INDICATOR_LED_WHILE_RAMPING
|
|
17 |
#undef USE_INDICATOR_LED_WHILE_RAMPING
|
|
18 |
#endif
|
|
483.9.1
by Selene Scriven
copied Noctigon K1 -> MD11 to start defining a new light |
19 |
|
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
20 |
#define RAMP_SIZE 150
|
483.9.1
by Selene Scriven
copied Noctigon K1 -> MD11 to start defining a new light |
21 |
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
22 |
// power channels:
|
23 |
// - linear: 5A?
|
|
24 |
// - FET: DD
|
|
483.9.11
by Selene ToyKeeper
a bit more fine-tuning for DM11 |
25 |
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
26 |
// maxreg at 130, dynamic PWM: level_calc.py 5.01 2 149 7135 1 0.3 1740 FET 1 10 3190 --pwm dyn:64:16384:255
|
27 |
// (plus one extra level at the beginning for moon)
|
|
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
28 |
#define PWM1_LEVELS 0,1,1,2,2,3,4,5,6,7,8,9,11,12,14,16,17,19,22,24,26,29,31,34,37,40,43,46,49,53,56,60,63,67,71,74,78,82,86,89,93,96,99,103,105,108,110,112,114,115,116,116,115,114,112,109,106,101,95,89,81,71,60,48,34,19,20,21,22,23,24,26,27,28,30,31,32,34,36,37,39,41,43,45,47,49,51,53,56,58,61,63,66,69,72,75,78,81,84,88,91,95,99,103,107,111,115,119,124,129,133,138,143,149,154,159,165,171,177,183,189,196,203,210,217,224,231,239,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
|
29 |
#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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,20,30,41,52,63,75,87,99,112,125,138,151,165,179,194,208,224,239,255
|
|
30 |
#define PWM_TOPS 16383,16383,11750,14690,9183,12439,13615,13955,13877,13560,13093,12529,13291,12513,12756,12769,11893,11747,12085,11725,11329,11316,10851,10713,10518,10282,10016,9729,9428,9298,8971,8794,8459,8257,8043,7715,7497,7275,7052,6753,6538,6260,5994,5798,5501,5271,5006,4758,4525,4268,4030,3775,3508,3263,3010,2752,2517,2256,1998,1763,1512,1249,994,749,497,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
|
|
31 |
#define MIN_THERM_STEPDOWN 66 // should be above highest dyn_pwm level |
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
32 |
|
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
33 |
#define MAX_1x7135 130
|
483.9.11
by Selene ToyKeeper
a bit more fine-tuning for DM11 |
34 |
#define DEFAULT_LEVEL 70
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
35 |
#define HALFSPEED_LEVEL 12
|
36 |
#define QUARTERSPEED_LEVEL 4
|
|
37 |
||
38 |
#define RAMP_SMOOTH_FLOOR 10 // low levels may be unreliable |
|
483.9.1
by Selene Scriven
copied Noctigon K1 -> MD11 to start defining a new light |
39 |
#define RAMP_SMOOTH_CEIL 130
|
483.9.11
by Selene ToyKeeper
a bit more fine-tuning for DM11 |
40 |
// 10, 30, 50, [70], 90, 110, 130
|
483.9.1
by Selene Scriven
copied Noctigon K1 -> MD11 to start defining a new light |
41 |
#define RAMP_DISCRETE_FLOOR 10
|
42 |
#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL
|
|
43 |
#define RAMP_DISCRETE_STEPS 7
|
|
44 |
||
45 |
// safe limit ~75% power
|
|
46 |
#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR
|
|
47 |
#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL
|
|
48 |
#define SIMPLE_UI_STEPS 5
|
|
49 |
||
50 |
// stop panicking at ~70% power or ~600 lm
|
|
51 |
#define THERM_FASTER_LEVEL 130
|
|
52 |
||
53 |
#define THERM_CAL_OFFSET 5
|
|
54 |
||
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
55 |
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
56 |
// the power regulator is a bit slow, so push it harder for a quick response from off
|
57 |
#define DEFAULT_JUMP_START_LEVEL 21
|
|
483.9.11
by Selene ToyKeeper
a bit more fine-tuning for DM11 |
58 |
#define BLINK_BRIGHTNESS 50
|
483.9.5
by Selene Scriven
added MD11-noFET, tweaked values in MD11-FET build too |
59 |
#define BLINK_ONCE_TIME 12
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
60 |
|
483.12.86
by Selene ToyKeeper
converted noctigon-dm11-* builds to multi-channel |
61 |
// show each channel while it scroll by in the menu
|
62 |
#define USE_CONFIG_COLORS
|
|
63 |
||
64 |
// there is usually no lighted button, so
|
|
65 |
// blink numbers on the main LEDs by default (but allow user to change it)
|
|
66 |
#define DEFAULT_BLINK_CHANNEL CM_MAIN
|
|
67 |
||
68 |
// slow down party strobe; this driver can't pulse for 1ms or less
|
|
69 |
// (only needed on no-FET build)
|
|
70 |
//#define PARTY_STROBE_ONTIME 2
|
|
71 |
||
72 |
// use aux red + aux blue for police strobe
|
|
73 |
#define USE_POLICE_COLOR_STROBE_MODE
|
|
74 |
#define POLICE_STROBE_USES_AUX
|
|
75 |
#define POLICE_COLOR_STROBE_CH1 CM_AUXRED
|
|
76 |
#define POLICE_COLOR_STROBE_CH2 CM_AUXBLU
|
|
77 |
||
78 |
// make candle mode wobble more
|
|
79 |
#define CANDLE_AMPLITUDE 30
|
|
80 |
||
81 |
// don't blink while ramping
|
|
82 |
#ifdef BLINK_AT_RAMP_MIDDLE
|
|
83 |
#undef BLINK_AT_RAMP_MIDDLE
|
|
84 |
#endif
|
|
85 |
||
483.9.11
by Selene ToyKeeper
a bit more fine-tuning for DM11 |
86 |
// added for convenience
|
483.9.3
by Selene Scriven
added dynamic PWM and FET to MD11 |
87 |
#define USE_SOFT_FACTORY_RESET
|
483.1.169
by Selene ToyKeeper
allow supporting single-color and RGB side button in the same build |
88 |