~gabe/flashlight-firmware/anduril2

« back to all changes in this revision

Viewing changes to Flintrock/bistro-hd/configs/config_dual-switch-turboclick-TA-HD.h

  • Committer: Selene Scriven
  • Date: 2018-05-09 05:27:55 UTC
  • mfrom: (188.1.17 trunk)
  • Revision ID: bzr@toykeeper.net-20180509052755-06y2fnsgrq96k8nc
merged trunk, prep for merging back

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef config_bistro_H
 
2
#define config_bistro_H
 
3
/*
 
4
 *  Firmware configuration header. 
 
5
 *
 
6
 * Bistro configuration file for dual switch TA-based triple driver, (C) Flintrock (FR).
 
7
 * 
 
8
 * To work with tk-bistro and other compatible software.
 
9
 *
 
10
 * This program is free software: you can redistribute it and/or modify
 
11
 * it under the terms of the GNU General Public License as published by
 
12
 * the Free Software Foundation, either version 3 of the License, or
 
13
 * (at your option) any later version.
 
14
 *
 
15
 * This program is distributed in the hope that it will be useful,
 
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
 * GNU General Public License for more details.
 
19
 *
 
20
 * You should have received a copy of the GNU General Public License
 
21
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
22
 *
 
23
 */
 
24
 
 
25
 
 
26
/*
 
27
 * =========================================================================
 
28
 * Settings to modify per driver
 
29
 */
 
30
 
 
31
/////////////// Choose a layout////////////////
 
32
 
 
33
//#define FET_7135_LAYOUT  //FET+1
 
34
#define TRIPLEDOWN_LAYOUT  //TA triple
 
35
//#define NANJG105D_LAYOUT      // biscotti/convoy/nanjg105D
 
36
//#define BLFA6_LAYOUT      // BLFA6, FET+1, OTC and star3
 
37
//#define NANJG_LAYOUT  // specify an I/O pin layout
 
38
//#define QUADRUPLEDOWN_LAYOUT                     // Yes, that right :)
 
39
//#define CUSTOM_LAYOUT  // go define it for however you want to wire your driver.
 
40
//**** You can now easily customize layouts in fr-tk-attiny.h :
 
41
 
 
42
// choose the file that defines your modegruops (so we can easily keep more)
 
43
#define MODEGROUPS_H "modegroups/modegroups-TA-triple-v1.3plus.h"
 
44
//#define MODEGROUPS_H "modegroups/modegroups-biscotti.h"
 
45
//#define MODEGROUPS_H "modegroups/modegroups-BLFA6.h"
 
46
 
 
47
/*************************  Misc utility configs*************************************/
 
48
//#define VOLTAGE_CAL  // builds a driver that just blinks ADC reading, set the VOLTAGE mode below.
 
49
//#define STRIPPED // use for debugging, strips many features to make more space for debug compiler options or testing functions.
 
50
                   // customize it below
 
51
//#define OTSM_debug //may require STRIPPED to fit. //Will blink out number of wakes (see SLEEP_TIME_EXPONENT) on short clicks, before entering mode.
 
52
 
 
53
/************************************OFF-TIME CONFIGS**********************************/
 
54
 
 
55
#define OFFTIM3      // Use short/med/long off-time presses instead of just short/long
 
56
 
 
57
 
 
58
//#define USE_OTC // use off time cap. 
 
59
 
 
60
// Off-time sleep mode by -FR, thanks to flashy Mike and Mike C for early feasibility test with similar methods.
 
61
//#define USE_OTSM  // USE OTSM.  Pin must be defined in the layout too.
 
62
 
 
63
//#define OTSM_USES_OTC // use OTC cap for extra power on OTSM (sets it output high to charge up)
 
64
#define POWERSAVE // Also works without OTSM to reduce moon-mode drain. 
 
65
             // Squeeze out a bit more off-time by saving power during
 
66
             // shutoff detection (so at all times).  Implements ms resolution (could be less) idle sleeps in place of delay.
 
67
             // Seems to add at 0.5s of sleep at 3.1V 30uF cap, starting with only 0.75 that matters.  
 
68
                         // But at higher voltages, it's still only 0.5s additional, not multiplicative.
 
69
             // Also adds about 12 bytes that could be used for about two more mode groups instead :P
 
70
 
 
71
 
 
72
// Traditionally Cap values defined in tk-calibration
 
73
// But wake times in OTSM are not a calibration, just a configuration, so they go here.
 
74
// Times are in decimal seconds.  short (med) wakes are <, not = to wake_time_short(med)
 
75
#define SLEEP_TIME_EXPONENT 4   // OTSM clicky sleep will be increments of 16ms*2^STE  
 
76
                               // so 0 is 16, 1 is 32, 2 is 64, 3 is 128, 4 is 0.25s, 5 is 0.5s etc.
 
77
// To allow long click times use 4. For 1/8s resolution, use 3.
 
78
#define wake_time_short 0.5   // 0.5s : Short press is up to 0.5 s
 
79
#define wake_time_med   1.5   // this is limited by cap performance, but setting it high won't hurt 
 
80
                              // Since anything beyond the cap capacity will be read as long anyway.
 
81
                                                          // It's also the long-press off-threshold for e-switch operation.
 
82
 
 
83
/*****************************END OTSM CONGIGS*********************************/
 
84
#define USE_ESWITCH  // pin must be defined in the layout too.
 
85
//  #define USE_ESWITCH_LOCKOUT_TOGGLE  // enables menu to turn off eswitch, experimental, maybe be removed.
 
86
 
 
87
//  #define DUAL_SWITCH_NOINIT // clicking switch on dual switch light uses noinit to measure long/short presses.
 
88
                             //No OTSM or OTC.
 
89
 
 
90
//  #define DUMB_CLICK   //Power switch on dual-switch light doesn't change the mode.
 
91
                        //Better not use it with USE_ESWITCH_LOCKOUT_TOGGLE
 
92
 
 
93
  #define TURBO_CLICK  // Power switch always goes to first hidden mode in dual-switch light.
 
94
 
 
95
/**********************VOLTAGE CONFIG****************************************/
 
96
 
 
97
#define VOLTAGE_MON         // Comment out to disable LVP
 
98
//You should leave one (but only one) of the next two uncommented.  
 
99
//#define READ_VOLTAGE_FROM_VCC  // inverted "internal" Vcc voltage monitoring
 
100
                               // Works well for 1S lights without worrying about resistor values.
 
101
#define READ_VOLTAGE_FROM_DIVIDER  // classic voltage reading
 
102
//#define REFERENCE_DIVIDER_READS_TO_VCC // default is 1.1V, but this is needed for divider reading with OTSM on the voltage pin.
 
103
                                         // This should normally be used with an LDO.  For 1S (non-LDO or 5.0VLDO) just avoid the problem with READ_VOLTAGE_FROM_VCC.
 
104
 
 
105
/***** Choose a battery indicator style (if enabled in modegroups)*******/
 
106
//#define BATTCHECK_4bars  // up to 4 blinks
 
107
//#define BATTCHECK_8bars  // up to 8 blinks
 
108
#define BATTCHECK_VpT  // Volts + tenths
 
109
/***** Choose a battery indicator style (if enabled in modegroups)*******/
 
110
//#define BATTCHECK_4bars  // up to 4 blinks
 
111
//#define BATTCHECK_8bars  // up to 8 blinks
 
112
#define BATTCHECK_VpT  // Volts + tenths
 
113
 
 
114
/******thermal protection:  ***/
 
115
#define TEMPERATURE_MON          // You can set starting temperature in the "maxtemp" setting in config options first boot options.
 
116
  #define USE_TEMP_CAL    // include a TEMP_CAL mode in the menu.  
 
117
  #define TEMP_STEP_DOWN //Requires TEMPERATURE_MON, Use step-down and tap-up instead of oscillate
 
118
    #define MINIMUM_TURBO_TIME  10 //Turbo will never run less than this long. Requires TEMP_STEP_DOWN
 
119
 
 
120
/*******Mode features***********/
 
121
#define USE_MUGGLE_MODE  // compile in use of muggle mode
 
122
#define USE_REVERSE_MODES  // compile in use of reverse modes
 
123
#define USE_MOON  // compile in moon mode control
 
124
 
 
125
// Options for first bootup/default:
 
126
 
 
127
#define USE_FIRSTBOOT //Enables reset menu option, only costs a couple of bytes.
 
128
 
 
129
#define INIT_MODEGROUP      11       // which mode group will be default, mode groups below start at zero, select the mode group you want and subtract one from the number to get it by defualt here
 
130
#define INIT_ENABLE_MOON    1       // Should we add moon to the set of modes?
 
131
#define INIT_REVERSE_MODES  0       // flip the mode order?
 
132
#define INIT_MEMORY         0       // mode memory, or not
 
133
#define INIT_OFFTIM3        1       // enable medium-press by default?
 
134
#define INIT_MUGGLE_MODE    0       // simple mode designed for mugglesotsm
 
135
#define INIT_LOCKSWITCH     0       // 0 => E-swtich enabled, 1 => locked.
 
136
#define INIT_MAXTEMP       88       // maximum temperature
 
137
 
 
138
#define BLINK_SPEED         750
 
139
 
 
140
 
 
141
 
 
142
 
 
143
#ifdef STRIPPED  // define what you want to remove in stripped mode
 
144
#undef TEMPERATURE_MON
 
145
#undef VOLTAGE_MON
 
146
#define NO_STROBES  // don't use strobes (not automatically stripped from modes though, result can be undefined) 
 
147
#undef USE_BATTCHECK
 
148
#endif
 
149
 
 
150
 
 
151
/**********************************************************************************
 
152
**********************END OF CONFIGURATION*****************************************
 
153
***********************************************************************************/
 
154
 
 
155
 
 
156
#endif
 
 
b'\\ No newline at end of file'