~toykeeper/flashlight-firmware/fsm

« back to all changes in this revision

Viewing changes to ToyKeeper/spaghetti-monster/anduril/cfg-noctigon-dm11-sbt90.h

  • Committer: Selene ToyKeeper
  • Date: 2023-11-02 17:05:02 UTC
  • mfrom: (483.12.159 multi-channel)
  • mto: This revision was merged to the branch mainline in revision 491.
  • Revision ID: bzr@toykeeper.net-20231102170502-sinkm18qjxlorsxa
merged multi-channel branch with a major refactor and half a year of updates

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
// Noctigon DM11-SBT90.2 config options for Anduril
 
2
// Copyright (C) 2021-2023 Selene ToyKeeper
 
3
// SPDX-License-Identifier: GPL-3.0-or-later
 
4
#pragma once
 
5
 
 
6
#include "cfg-noctigon-kr4.h"
 
7
#undef MODEL_NUMBER
2
8
#define MODEL_NUMBER "0274"
3
 
#include "hwdef-Noctigon_DM11-SBT90.h"
4
 
#include "hank-cfg.h"
5
9
// ATTINY: 1634
6
10
 
7
11
// this light has three aux LED channels: R, G, B
13
17
#undef USE_INDICATOR_LED_WHILE_RAMPING
14
18
#endif
15
19
 
16
 
 
17
20
// power channels:
18
21
// - linear: 5A?
19
22
// - FET: DD
20
 
#define RAMP_LENGTH 150
21
 
#define USE_DYN_PWM
22
 
 
23
 
// 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
24
 
// (plus one extra level at the beginning for moon)
25
 
#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
26
 
#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
27
 
#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
28
 
 
 
23
 
 
24
#undef DEFAULT_LEVEL
29
25
#define DEFAULT_LEVEL 70
30
 
#define MAX_1x7135 130
31
 
#define HALFSPEED_LEVEL 12
32
 
#define QUARTERSPEED_LEVEL 4
33
 
 
34
 
// don't blink halfway up
35
 
#ifdef BLINK_AT_RAMP_MIDDLE
36
 
#undef BLINK_AT_RAMP_MIDDLE
37
 
#endif
38
 
 
 
26
 
 
27
#undef RAMP_SMOOTH_FLOOR
39
28
#define RAMP_SMOOTH_FLOOR 10  // low levels may be unreliable
40
 
#define RAMP_SMOOTH_CEIL  130
41
29
// 10, 30, 50, [70], 90, 110, 130
 
30
#undef RAMP_DISCRETE_FLOOR
42
31
#define RAMP_DISCRETE_FLOOR 10
43
 
#define RAMP_DISCRETE_CEIL  RAMP_SMOOTH_CEIL
44
 
#define RAMP_DISCRETE_STEPS 7
45
32
 
46
33
// safe limit ~75% power
47
 
#define SIMPLE_UI_FLOOR RAMP_DISCRETE_FLOOR
 
34
#undef SIMPLE_UI_CEIL
48
35
#define SIMPLE_UI_CEIL RAMP_DISCRETE_CEIL
49
 
#define SIMPLE_UI_STEPS 5
50
 
 
51
 
// make candle mode wobble more
52
 
#define CANDLE_AMPLITUDE 30
53
36
 
54
37
// stop panicking at ~70% power or ~600 lm
 
38
#undef THERM_FASTER_LEVEL
55
39
#define THERM_FASTER_LEVEL 130
56
 
#define MIN_THERM_STEPDOWN 66  // must be > end of dynamic PWM range
57
 
 
58
 
//#define THERM_RESPONSE_MAGNITUDE 32  // smaller adjustments, this host changes temperature slowly
59
 
//#define THERM_NEXT_WARNING_THRESHOLD 32  // more error tolerance before adjusting
60
 
 
61
 
// slow down party strobe; this driver can't pulse for 1ms or less
62
 
// (only needed on no-FET build)
63
 
//#define PARTY_STROBE_ONTIME 2
64
 
 
65
 
#define THERM_CAL_OFFSET 5
66
 
 
67
 
// the power regulator is a bit slow, so push it harder for a quick response from off
68
 
#define DEFAULT_JUMP_START_LEVEL 21
 
40
 
 
41
#undef BLINK_BRIGHTNESS
69
42
#define BLINK_BRIGHTNESS 50
70
 
#define BLINK_ONCE_TIME 12
71
 
 
72
 
// added for convenience
73
 
#define USE_SOFT_FACTORY_RESET
74
 
 
75
 
 
76
 
// work around bizarre bug: lockout mode fails when set to solid color blinking
77
 
#define USE_K93_LOCKOUT_KLUDGE
 
43
 
 
44
#undef CANDLE_AMPLITUDE
 
45
#define CANDLE_AMPLITUDE 30
 
46