1
// Noctigon K9.3 config options for Anduril
2
#define MODEL_NUMBER "0261"
3
#include "hwdef-Noctigon_K9.3.h"
5
// this model requires some special code
6
#define OVERRIDES_FILE cfg-noctigon-k9.3.c
7
#define OVERRIDE_SET_LEVEL
8
#define OVERRIDE_GRADUAL_TICK
9
inline void set_level_override(uint8_t level);
12
// this light has three aux LED channels: R, G, B
13
#define USE_AUX_RGB_LEDS
14
#define RGB_LED_OFF_DEFAULT 0x18 // low, rainbow
15
// the aux LEDs are front-facing, so turn them off while main LEDs are on
16
//#define USE_AUX_RGB_LEDS_WHILE_ON
17
// it also has an independent LED in the button
18
#define USE_BUTTON_LED
19
// TODO: the whole "indicator LED" thing needs to be refactored into
20
// "aux LED(s)" and "button LED(s)" since they work a bit differently
21
// enabling this option breaks the button LED on D4v2.5
22
#ifdef USE_INDICATOR_LED_WHILE_RAMPING
23
#undef USE_INDICATOR_LED_WHILE_RAMPING
26
// enable blinking aux LEDs
27
#define TICK_DURING_STANDBY
28
#define STANDBY_TICK_SPEED 3 // every 0.128 s
30
// has two channels of independent LEDs
31
#define USE_TINT_RAMPING
32
// ... but it doesn't make sense to ramp between; only toggle
33
#define TINT_RAMP_TOGGLE_ONLY
36
// max regulated: ~1750 lm
39
// max regulated: ~1500 lm
40
// maxreg at 120: level_calc.py cube 2 150 7135 0 2.5 1740 FET 1 10 3190
41
#define RAMP_LENGTH 150
43
#define PWM1_LEVELS 0,0,1,1,2,2,3,3,4,4,5,6,7,8,9,10,11,13,14,15,17,19,20,22,24,26,28,30,33,35,38,40,43,46,49,52,55,59,62,66,70,74,78,82,86,91,96,100,105,111,116,121,127,133,139,145,151,158,165,172,179,186,193,201,209,217,225,234,243,251,261,270,280,289,299,310,320,331,342,353,364,376,388,400,412,425,438,451,464,478,492,506,521,536,551,566,582,597,614,630,647,664,681,699,717,735,754,772,792,811,831,851,871,892,913,935,956,978,1001,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,0
44
#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,22,51,79,109,138,168,198,229,260,292,324,357,390,423,457,492,527,562,598,634,671,708,746,784,822,861,901,941,982,1023
46
#define PWM3_LEVELS 0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,11,12,13,15,16,17,18,20,21,23,24,26,27,29,31,33,35,37,39,41,43,45,48,50,53,55,58,61,63,66,69,72,75,79,82,85,89,92,96,100,104,108,112,116,120,125,129,134,138,143,148,153,158,163,169,174,180,185,191,197,203,209,215,222,228,235,242,248,255,263,270,277,285,292,300,308,316,324,333,341,350,359,368,377,386,395,405,414,424,434,444,454,465,475,486,497,508,519,531,542,554,566,578,590,603,615,628,641,654,667,680,694,708,722,736,750,765,779,794,809,825,840,856,872,888,904,920,937,954,971,988,1005,1023
47
#define DEFAULT_LEVEL 46
48
#define MAX_1x7135 120
49
#define MAX_Nx7135 MAX_1x7135
50
#define HALFSPEED_LEVEL 10
51
#define QUARTERSPEED_LEVEL 2
53
#define USE_MANUAL_MEMORY_TIMER_FOR_TINT
54
//#define DEFAULT_MANUAL_MEMORY DEFAULT_LEVEL
55
//#define DEFAULT_MANUAL_MEMORY_TIMER 10
57
#define RAMP_SMOOTH_FLOOR 3 // level 1 is unreliable (?)
58
#define RAMP_SMOOTH_CEIL 120
59
// 10, 28, [46], 65, 83, 101, [120]
60
#define RAMP_DISCRETE_FLOOR 10
61
#define RAMP_DISCRETE_CEIL RAMP_SMOOTH_CEIL
62
#define RAMP_DISCRETE_STEPS 7
64
// safe limit highest regulated power (no FET or turbo)
65
#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR
66
#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL
67
#define SIMPLE_UI_STEPS 5
69
// stop panicking at ~25% power or ~1000 lm
70
#define THERM_FASTER_LEVEL 100
71
#define MIN_THERM_STEPDOWN DEFAULT_LEVEL
72
//#define THERM_NEXT_WARNING_THRESHOLD 16 // accumulate less error before adjusting
73
//#define THERM_RESPONSE_MAGNITUDE 128 // bigger adjustments
75
// use the brightest setting for strobe
76
#define STROBE_BRIGHTNESS MAX_LEVEL
77
// slow down party strobe; this driver can't pulse for 1ms or less
78
#define PARTY_STROBE_ONTIME 2
80
#define BLINK_ONCE_TIME 12 // longer blink, since main LEDs are slow
82
#define THERM_CAL_OFFSET 5
84
// for consistency with KR4 (not otherwise necessary though)
85
#define USE_SOFT_FACTORY_RESET