~digitalcircuit/flashlight-firmware/anduril2_define_autolock

« back to all changes in this revision

Viewing changes to ToyKeeper/spaghetti-monster/anduril/cfg-noctigon-k9.3.h

  • Committer: Selene Scriven
  • Date: 2021-01-25 05:21:06 UTC
  • mfrom: (575.1.13 k9.3)
  • Revision ID: bzr@toykeeper.net-20210125052106-g6la42mdcu9dl42r
merged noctigon k9.3 branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Noctigon K9.3 config options for Anduril
 
2
#define MODEL_NUMBER "0261"
 
3
#include "hwdef-Noctigon_K9.3.h"
 
4
// ATTINY: 1634
 
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);
 
10
 
 
11
 
 
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
 
24
#endif
 
25
 
 
26
// enable blinking aux LEDs
 
27
#define TICK_DURING_STANDBY
 
28
#define STANDBY_TICK_SPEED 3  // every 0.128 s
 
29
 
 
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
 
34
 
 
35
// main LEDs
 
36
//   max regulated: ~1750 lm
 
37
//   FET: ~8000 lm
 
38
// 2nd LEDs
 
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
 
42
// main LEDs
 
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
 
45
// 2nd LEDs
 
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
 
52
 
 
53
#define USE_MANUAL_MEMORY_TIMER_FOR_TINT
 
54
//#define DEFAULT_MANUAL_MEMORY        DEFAULT_LEVEL
 
55
//#define DEFAULT_MANUAL_MEMORY_TIMER  10
 
56
 
 
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
 
63
 
 
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
 
68
 
 
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
 
74
 
 
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
 
79
 
 
80
#define BLINK_ONCE_TIME 12  // longer blink, since main LEDs are slow
 
81
 
 
82
#define THERM_CAL_OFFSET 5
 
83
 
 
84
// for consistency with KR4 (not otherwise necessary though)
 
85
#define USE_SOFT_FACTORY_RESET
 
86