~toykeeper/flashlight-firmware/fsm

« back to all changes in this revision

Viewing changes to ToyKeeper/spaghetti-monster/anduril/cfg-emisar-d18.h

  • Committer: Selene ToyKeeper
  • Date: 2023-11-04 15:09:10 UTC
  • mfrom: (483.1.175 anduril2)
  • Revision ID: bzr@toykeeper.net-20231104150910-ddd3afw4nhfvof2l
merged anduril2 branch -> fsm, with *years* of changes
(this also means this code is now Anduril 2 instead of Anduril 1)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Emisar FET+13+1 config options for Anduril
2
 
#include "hwdef-Emisar_D18.h"
3
 
 
4
 
// front-facing aux LEDs
5
 
#define USE_INDICATOR_LED
6
 
//#define USE_INDICATOR_LED_WHILE_RAMPING
7
 
// enable blinking indicator LED while off
8
 
#define TICK_DURING_STANDBY
9
 
#define STANDBY_TICK_SPEED 3  // every 0.128 s
10
 
#define USE_FANCIER_BLINKING_INDICATOR
11
 
// off mode: low (1)
12
 
// lockout: blinking (3)
13
 
#define INDICATOR_LED_DEFAULT_MODE ((3<<2) + 1)
14
 
 
15
 
// Emisar wanted a shortcut to this
16
 
#define USE_TENCLICK_THERMAL_CONFIG
17
 
 
 
1
// Emisar D18 (FET+13+1) config options for Anduril
 
2
// Copyright (C) 2019-2023 Selene ToyKeeper
 
3
// SPDX-License-Identifier: GPL-3.0-or-later
 
4
#pragma once
 
5
 
 
6
#define MODEL_NUMBER "0141"
 
7
#include "hwdef-emisar-d18.h"
 
8
#include "hank-cfg.h"
 
9
 
 
10
#define RAMP_SIZE 150
18
11
 
19
12
// level_calc.py seventh 3 150 7135 1 1.4 117.99 7135 6 1 1706.86 FET 3 10 13000
20
13
// (designed to make 1x hit at level 50, and Nx hit at level 100)
21
 
#define RAMP_LENGTH 150
22
14
#define PWM1_LEVELS 1,1,2,2,3,4,4,5,6,7,8,9,10,11,15,16,18,20,22,24,26,28,30,33,36,39,43,47,51,56,61,66,72,78,85,92,99,107,116,125,135,145,156,168,180,194,208,222,238,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
23
15
#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,7,8,10,11,13,14,16,18,19,21,23,26,28,30,33,35,38,41,44,47,51,54,58,62,66,70,75,79,84,90,95,101,106,112,119,126,133,140,147,155,164,172,181,190,200,210,221,232,243,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,0
24
16
#define PWM3_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,5,7,9,11,13,15,18,20,23,25,28,31,34,37,40,44,47,51,54,58,62,66,70,75,79,84,89,94,99,104,110,115,121,127,134,140,147,154,161,168,176,183,191,200,208,217,226,235,245,255
25
 
#define MAX_1x7135 50
26
 
#define MAX_Nx7135 100
27
 
#define HALFSPEED_LEVEL 15
28
 
#define QUARTERSPEED_LEVEL 6
 
17
 
 
18
#define DEFAULT_LEVEL       50
 
19
#define MAX_1x7135          50
 
20
#define MAX_Nx7135          100
 
21
#define HALFSPEED_LEVEL     15
 
22
#define QUARTERSPEED_LEVEL  6
29
23
 
30
24
// start at ~2000 lm after battery change, not ~150 lm (at Emisar's request)
31
25
//#define DEFAULT_LEVEL MAX_Nx7135
32
26
 
33
 
// higher floor than default, and stop at highest regulated level
34
 
#define RAMP_DISCRETE_FLOOR 25
35
 
#define RAMP_DISCRETE_CEIL MAX_Nx7135
 
27
// go up to ~4000 lm
 
28
#define RAMP_SMOOTH_FLOOR 1
 
29
#define RAMP_SMOOTH_CEIL  117
 
30
// 20 36 52 68 84 [100] 117
 
31
#define RAMP_DISCRETE_FLOOR 20
 
32
#define RAMP_DISCRETE_CEIL  RAMP_SMOOTH_CEIL
36
33
#define RAMP_DISCRETE_STEPS 7
37
34
 
 
35
// safe limit ~20% power / max regulated
 
36
// 20 40 60 80 100
 
37
#define SIMPLE_UI_FLOOR  20
 
38
#define SIMPLE_UI_CEIL   MAX_Nx7135
 
39
#define SIMPLE_UI_STEPS  5
 
40
 
38
41
// only blink at max regulated level and ceiling
39
 
#define BLINK_AT_RAMP_MIDDLE
40
 
#define BLINK_AT_RAMP_MIDDLE_1 MAX_Nx7135
41
 
#define BLINK_AT_RAMP_CEILING
 
42
//#define BLINK_AT_RAMP_MIDDLE
 
43
//#define BLINK_AT_RAMP_MIDDLE_1 MAX_Nx7135
 
44
#define BLINK_AT_RAMP_CEIL
 
45
#ifdef BLINK_AT_RAMP_MIDDLE
 
46
#undef BLINK_AT_RAMP_MIDDLE
 
47
#endif
42
48
 
43
49
// stop panicking at about ~40% power or ~5000 lm
44
50
#define THERM_FASTER_LEVEL 125
 
51
 
 
52
// enable extra features
 
53
#define USE_SMOOTH_STEPS
 
54
 
 
55
// for compatibility with other models
 
56
#define USE_SOFT_FACTORY_RESET
 
57
 
 
58
// too big, turn off extra features
 
59
#undef USE_TACTICAL_MODE
 
60
#undef USE_SOS_MODE
 
61