// ****************** MBR 2026-07-02 *******************************

// m here = minute = 60 * second
// h here = hour   = 60 * minute
// K               = 1000
// KK works as 10^6
// s here = second = 1000


// ******** infrastructure *************

Analog.NBits                 =    12   // 8, 10, 12, or 13
Analog.ReadAveraging         =     1   // 1(1)32
Board.LoggingToUSD           =     0
Board.msBlinkLength          =   200
Board.Name                   =   'MBR'
Board.Nominal3V3             =     3.304  // for fudging analog read
Board.SendingToBase          =     1
Board.Speedup                =     0
Board.Tag                    =   'M'
DS1307.msJogDelay            =     6s // ******** not checked ***********
XBee.BaudRate                = 38400

// ****************************************************      MBR BoardReboot
BoardReboot.InUse                    =  1
BoardReboot.usStandardReadInterval   = 15mK

// *************************************************       (ACDetect1 (furnace))
ACDetect_1.InUse                     =  0
ACDetect_1.SensorTag                 =  'F'
ACDetect_1.TrueIfBELOWThreshhold     =  1
ACDetect_1.Threshhold                =  0.5
ACDetect_1.Furnace                   =    1
ACDetect_1.Observed                  =  'furnace'
ACDetect_1.usStandardReadInterval    =    1mK
// resistor 4.7K


// ****************************************************        (ACDetect2 (A/C))
ACDetect_2.InUse                     =  0     // A/C
ACDetect_2.TrueIfBELOWThreshhold     =  1
ACDetect_2.Threshhold                =  0.5
ACDetect_2.SensorTag                 =  'A'
ACDetect_2.AC                        =    1
ACDetect_2.Observed                  =  'A/C'
ACDetect_2.usStandardReadInterval    =    3mK
// resistor 4.7K


// ********************************************************        (cool intent)
CoolIntent.InUse                    =  0      // A/C intent
CoolIntent.TrueIfBELOWThreshhold    =  0
CoolIntent.msStandardReportInterval =  2m
CoolIntent.Observed                 = 'A/C intent'
CoolIntent.SensorTag                =  'a'
CoolIntent.Threshhold               =  0.3
CoolIntent.usStandardReadInterval   =  1mK


// *********************************************************       (heat intent)
HeatIntent.InUse                    =  0
HeatIntent.msStandardReportInterval =  2m
HeatIntent.TrueIfBELOWThreshhold    =  0
HeatIntent.Observed                 = 'heat intent'
HeatIntent.SensorTag                =  'f'
HeatIntent.Threshhold               =  0.3
HeatIntent.usStandardReadInterval   =  1mK


// **********************************************************       (anemometer)
Anemometer.InUse                     =  0
Anemometer.SensorTag                 =  'W'
Anemometer.msStandardReportInterval  =  10m
Anemometer.usMinLowTime              =   1K
Anemometer.usStandardReadInterval    =   1mK
Anemometer.Damping                   =   0.9
Anemometer.MaxPlausibleHz            =  60
Anemometer.WindMPHPerHz              =   1.492

// ********************************************************             (BMP085)
BMP085.InUse                         =   0
BMP085.MaxPressureInches             =  35
BMP085.MaxTempC                      =  50
BMP085.MinPressureInches             =  22
BMP085.MinTempC                      = -40
BMP085.msStandardReportInterval      =  20m
BMP085.PressureDamping               = 0.9        // added 2025-02-16, to 0.9 3/1
BMP085.ReportTemp                    =   0
BMP085.SensorTag                     = 'B'
BMP085.usStandardReadInterval        =   3mK


// ************************************************************          (depth)
depth.InUse                          =     0
// dry resistance 4.9K
// wet resistance 4K
depth.Damping                        =     0.9
depth.Debugging                      =     0  // verbose TeensyView
depth.DryAnalogReading               =  2433  // water just reaching gauge
depth.DryInches                      =    16.2  // ..
depth.msStandardReportInterval       =     5m
depth.SensorTag                      =  'd'
depth.usStandardReadInterval         =     1mK
depth.WetAnalogReading               =  3218
depth.WetInches                      =    21.25


// *************************************************************         (DHT20)
DHT20.InUse                          =   0
DHT20.Damping                        =   0.9
DHT20.MaxTempC                       =  50
DHT20.MinTempC                       = -40
DHT20.ReportRH                       =   1
DHT20.SensorTag                      = 'D'
DHT20.Singleton                      =   1
DHT20.usStandardReadInterval         =   5mK


// **************************************************************        (DHT22)
DHT22_1.InUse                        =   0
DHT22_1.Damping                      =   0.9
DHT22_1.MaxTempC                     =  50
DHT22_1.MinTempC                     = -40
DHT22_1.msStandardReportInterval     =  10m
DHT22_1.ReportRH                     =   0
DHT22_1.SensorTag                    = 'E'
DHT22_1.Singleton                    =   0
DHT22_1.usStandardReadInterval       =  10mK


// **********************************************************       (left power)
voltage_1.InUse                  =   0
voltage_1.Battery                =   0       // never checked
voltage_1.DividerRatio           =   0.6
voltage_1.MultiplyBy             =  20.6897
voltage_1.ProtectionDiodeDrop    =   0        // 0.504
voltage_1.SensorTag              =  'P'
voltage_1.ThenAdd                =  10.05          // -0.3690
voltage_1.usStandardReadInterval =  10mK

// *********************************************************       (MemoryCheck)
MemoryCheck.InUse                    =  0
MemoryCheck.usStandardReadInterval   =  1mK

// *********************************************************        (nightlight)
NightLight.LightHigh                 =  41
NightLight.LightLow                  =  35
NightLight.MilTimeOff                = 2359
NightLight.MilTimeOn                 = 0800
NightLight.msMinimumHold             =    5m
NightLight.SensorTag                 = 'r';
NightLight.msStandardReportInterval  =    2m        // seems unresponsive at 5m
NightLight.usStandardReadInterval    =   15KK


// **********************************************************        (photocell)
photocell.InUse                      =  0
photocell.CalledBlack                =    4      // was 5 (OK) then 3 (too low)
photocell.Damping                    =    0.9
photocell.msStandardReportInterval   =   10m
photocell.Observed                   = 'outside'
photocell.SensorTag                  = 'L'
photocell.UpperOhms                  =   4.7K
photocell.usStandardReadInterval     =    1mK


// **********************************************************       (rain gauge)
RainGauge.InUse                      = 0
RainGauge.SensorTag                  = 'R';
// RainGauge.JammedLowDefined
// RainGauge.usJammedLowThreshhold
RainGauge.MaxNewEvents               =   3
RainGauge.usMinLowTime               =   1K
RainGauge.msStandardReportInterval   =   2m   // ignored
RainGauge.usStandardReadInterval     =   1Ks  // read every loop cycle, report when data found


// ***********************************************************     (right power)
voltage_2.InUse                  =  0
voltage_2.Battery                =  0
voltage_2.DividerRatio           =  0.6
voltage_2.MultiplyBy             = 21.673
voltage_2.ProtectionDiodeDrop    =  0               // 0.506
voltage_2.SensorTag              = 'p'
voltage_2.ThenAdd                = 10.8             // -0.1715
voltage_2.usStandardReadInterval = 10mK

// **********************************************************          MBR SCD30
SCD30.InUse                          = 1
SCD30.Damping                        =    0.95
SCD30.CO2Damping                     =    0.97
SCD30.Observed                       =  'MBR'
SCD30.usStandardReadInterval         =    1mK
SCD30.msStandardReportInterval       =   10m
SCD30.SensorTag                      = 'C'
SCD30.Singleton                      =    0
SCD30.TempCOffset                    =    4.3


// ************************************************************          (SHT45)
SHT45.InUse                        =   0
SHT45.Damping                      =   0.9
SHT45.DangerousRH                  =  85     // use heater above this
SHT45.MaxTempF                     =  120
SHT45.MinTempF                     = -40
SHT45.msEquilibration              =   2m
SHT45.msStandardReportInterval     =  10m
SHT45.Observed                     = 'outside'
SHT45.RelayControl                 =  1         // waterfall per outside temp
SHT45.ReportRH                     =   1
SHT45.SensorTag                    = 's'
SHT45.Singleton                    =   0
SHT45.uppressReport                =   0
SHT45.usStandardReadInterval       =  1mK


// *****************************************************                 (SPS30)
SPS30.InUse                          =    0     // particulates
SPS30.AutoCleanDisabled              =    0
SPS30.AutoCleanImmediately           =    1
SPS30.AutoCleanIntervalHours         =   43
SPS30.msStandardReportInterval       =   10m
SPS30.SensorTag                      =  'S'
SPS30.SizeDamping                    =    0.9
SPS30.usStandardReadInterval         =   5mK


// ***********************************************************      (thermostat)
Thermostat.InUse                     =    0
Thermostat.HysteresisF               =    0.2
Thermostat.MilTimeOff                = 1700
Thermostat.MilTimeOn                 = 1000
Thermostat.msMinimumHold             =   30s
Thermostat.msStandardReportInterval  =    2m
Thermostat.TempHigh                  =   55
Thermostat.TempLow                   =   40
Thermostat.usStandardReadInterval    =    1mK
Thermostat.SensorTag                 =  'r'


// **************************************************************       (VC0706)
VC0706.InUse                         =  0     // if in use, fires repeatedly
VC0706.160x240                       =     0
VC0706.320x240                       =     0
VC0706.640x480                       =     1
VC0706.MotionDetect                  =     1
VC0706.Snapshot                      =     0
VC0706.MaxFileNumber                 =  5999
VC0706.msMinImageInterval            =    30K
VC0706.msStandardReportInterval      =     5m
VC0706.usStandardReadInterval        =     1KK
VC0706.SensorTag                     = 'V'


// ************************************************************      (waterfall)
Waterfall.InUse                      =  0      // waterfall
Waterfall.LightHigh                  = 41
Waterfall.LightLow                   = 35
Waterfall.msMinimumHold              =  1m
Waterfall.msStandardReportInterval   =  5m
Waterfall.SensorTag                  =  'r'
Waterfall.TempHigh                   = 41
Waterfall.TempLow                    = 39
Waterfall.usStandardReadInterval     = 15KK


//  ***************************************************            (weathervane)
WeatherVane.InUse                    =  0     // wind direction
WeatherVane.Damping                  =    0.9
WeatherVane.msStandardReportInterval =    2m
WeatherVane.SensorTag                =  'w'
WeatherVane.UpperOhms                = 9764
WeatherVane.usStandardReadInterval   =    1mK


// ???????????????????????????????????????????????????????????????????????????????


