firmware/src
todd-herbert 33831cd41c
GPS Power State tidy-up (#4161)
* Refactor GPSPowerState enum
Identifies a case where the GPS hardware is awake, but an update is not yet desired

* Change terminology

* Clear old lock-time prediction on triple press

* Use exponential smoothing to predict lock time

* Rename averageLockTime to predictedLockTime

* Attempt: Send PMREQ with duration 0 on MCU deep-sleep

* Attempt 2: Send PMREQ with duration 0 on MCU deep-sleep

* Revert "Attempt 2: Send PMREQ with duration 0 on MCU deep-sleep"

This reverts commit 8b697cd2a4.

* Revert "Attempt: Send PMREQ with duration 0 on MCU deep-sleep"

This reverts commit 9d29ec7603.

* Remove unused notifyGPSSleep Observable
Handled with notifyDeepSleep, and enable() / disable()

* WIP: simplify GPS power management
An initial attempt only.

* Honor #3e9e0fd

* No-op when moving between GPS_IDLE and GPS_ACTIVE

* Ensure U-blox GPS is awake to receive indefinite sleep command

* Longer pause when waking U-blox to send sleep command

* Actually implement soft and hard sleep..

* Dynamically estimate the threshold for GPS_HARDSLEEP

* Fallback to GPS_HARDSLEEP, if GPS_SOFTSLEEP unsupported

* Move "excessive search time" behavior to scheduler class

* Minor logging adjustments

* Promote log to warning

* Gratuitous buffer clearing on boot

* Fix inverted standby pin logic
Specifically the standby pin for L76B, L76K and clones
Discovered during T-Echo testing: totally broken function, probe method failing.

* Remove redundant pin init
Now handled by setPowerState

* Replace max() with if statements
Avoid those platform specific implementations..

* Trunk formatting
New round of settings.json changes keep catching me out, have to remember to re-enable my "clang-format" for windows workaround.

* Remove some asserts from setPowerState
Original aim was to prevent sending a 0 second PMREQ to U-blox hardware as part of a timed sleep (GPS_HARDSLEEP, GPS_SOFTSLEEP). I'm not sure this is super important, and it feels tidier to just allow the 0 second sleeptime here, rather than fudge the sleeptime further up.

* Fix an error determining whether GPS_SOFTSLEEP is supported

* Clarify a log entry

* Set PIN_STANDBY for MCU deep-sleep
Required to reach TTGO's advertised 0.25mA sleep current for T-Echo. Without this change: ~6mA.
2024-07-11 15:26:43 +12:00
..
buzz trunk roundhouse kick 2023-01-21 21:23:24 +01:00
concurrency Tracker role wakeup and sleep cycle when power.is_power_saving true (#2846) 2023-09-30 21:09:17 -05:00
detect Fix SHT41 support (#4222) 2024-07-02 07:03:51 -05:00
Fusion Add support for BMX160/RAK12034 compass module (#4021) 2024-06-11 17:47:45 -05:00
gps GPS Power State tidy-up (#4161) 2024-07-11 15:26:43 +12:00
graphics Trunk fmt 2024-07-09 12:16:56 -05:00
input mask the rescan for portduino 2024-06-19 21:46:29 +02:00
mesh [create-pull-request] automated change (#4263) 2024-07-10 15:15:57 -05:00
modules Fix exclude macros (#4233) 2024-07-05 08:58:16 -05:00
mqtt minor cleanup proposal (#4169) 2024-07-03 17:39:09 -05:00
nimble New new BLE logging characteristic with LogRecord protos (#4220) 2024-07-03 16:29:07 -05:00
platform Add Heltec new boards. (#4226) 2024-07-09 11:56:57 -05:00
AccelerometerThread.h Move waypoint (#4202) 2024-06-29 21:16:07 -05:00
airtime.cpp Remove deprecated MyNodeInfo fields (#2552) 2023-06-08 08:07:32 -05:00
airtime.h Fix various typos (#2607) 2023-07-14 16:25:20 -05:00
AmbientLightingThread.h added NeoPixel support using Adafruit library 2024-04-22 14:42:52 +01:00
AudioThread.h RTTTL ringtones on T-Deck / T-Watch S3 and potentially more I2S audio enabled devices (#2917) 2023-12-12 08:36:37 -06:00
BluetoothCommon.cpp New new BLE logging characteristic with LogRecord protos (#4220) 2024-07-03 16:29:07 -05:00
BluetoothCommon.h New new BLE logging characteristic with LogRecord protos (#4220) 2024-07-03 16:29:07 -05:00
ButtonThread.cpp Display alerts (#4170) 2024-06-25 11:26:02 -05:00
ButtonThread.h T-Echo screen and button performance (#3840) 2024-05-09 08:14:58 -05:00
commands.h Display alerts (#4170) 2024-06-25 11:26:02 -05:00
configuration.h Add PowerMon support (#4155) 2024-07-03 18:02:20 -05:00
DebugConfiguration.cpp minor cleanup proposal (#4169) 2024-07-03 17:39:09 -05:00
DebugConfiguration.h minor cleanup proposal (#4169) 2024-07-03 17:39:09 -05:00
DisplayFormatters.cpp Refactor away some code duplication in screen frames and display formatter for modem presets (#2872) 2023-10-09 20:43:16 -05:00
DisplayFormatters.h Refactor away some code duplication in screen frames and display formatter for modem presets (#2872) 2023-10-09 20:43:16 -05:00
error.h Remove deprecated MyNodeInfo fields (#2552) 2023-06-08 08:07:32 -05:00
freertosinc.h Update core to 3.2.2 and use real FreeRTOS defs (#2558) 2023-06-13 05:44:24 -05:00
FSCommon.cpp Clear vector after complete config state (#4194) 2024-06-28 09:50:22 -05:00
FSCommon.h Send file system manifest up on want_config (#4176) 2024-06-27 07:07:27 -05:00
GPSStatus.h Standardize lat/lon position logs (#4156) 2024-06-21 17:25:54 -05:00
main.cpp Trunk fmt 2024-07-09 12:16:56 -05:00
main.h Pause BLE logging during want_config flow (#4162) 2024-06-22 07:00:48 -05:00
memGet.cpp RP2040: Add getFreeHeap() and getHeapSize() support 2024-05-14 19:04:31 +02:00
memGet.h - Abstract the memory stats into its own class. 2023-02-17 12:31:51 +01:00
meshUtils.cpp Cpp-check warnings cleanup (#3014) 2023-12-14 07:35:46 -06:00
meshUtils.h Portduino work (#3049) 2024-01-12 02:00:31 -06:00
network-stubs.cpp trunk roundhouse kick 2023-01-21 21:23:24 +01:00
NodeStatus.h trunk roundhouse kick 2023-01-21 21:23:24 +01:00
Observer.cpp trunk roundhouse kick 2023-01-21 21:23:24 +01:00
Observer.h Fix: return failure when PhoneAPI times out (#3136) 2024-01-28 07:53:39 -06:00
OSTimer.cpp fixing trunk problems 2023-08-03 10:05:38 +02:00
OSTimer.h
Power.cpp Trunk fmt 2024-07-09 12:16:56 -05:00
power.h trunk fmt 2024-06-16 16:29:45 +02:00
PowerFSM.cpp Add PowerMon support (#4155) 2024-07-03 18:02:20 -05:00
PowerFSM.h Add initial screen for receiving waypoints (#2452) 2023-05-01 16:10:27 -05:00
PowerFSMThread.h Extract default intervals and coalesce methods into their own file / static class methods (#3425) 2024-03-17 08:18:30 -05:00
PowerMon.cpp Add PowerMon support (#4155) 2024-07-03 18:02:20 -05:00
PowerMon.h Add PowerMon support (#4155) 2024-07-03 18:02:20 -05:00
PowerStatus.h User experience improvement - app battery icon (#3979) 2024-05-28 06:30:15 -05:00
RedirectablePrint.cpp Fix BLE logging on nrf52 (#4244) 2024-07-07 06:50:47 -05:00
RedirectablePrint.h New new BLE logging characteristic with LogRecord protos (#4220) 2024-07-03 16:29:07 -05:00
RF95Configuration.h Use LORA_DIO1 as RadioLib GPIO for SX127x chips (#2290) 2023-02-22 10:07:03 +01:00
SerialConsole.cpp When talking via serial, encapsulate log messages in protobufs if necessary (#4187) 2024-06-30 18:41:27 -05:00
SerialConsole.h When talking via serial, encapsulate log messages in protobufs if necessary (#4187) 2024-06-30 18:41:27 -05:00
shutdown.h Display alerts (#4170) 2024-06-25 11:26:02 -05:00
sleep.cpp GPS Power State tidy-up (#4161) 2024-07-11 15:26:43 +12:00
sleep.h GPS Power State tidy-up (#4161) 2024-07-11 15:26:43 +12:00
SPILock.cpp trunk roundhouse kick 2023-01-21 21:23:24 +01:00
SPILock.h
Status.h trunk roundhouse kick 2023-01-21 21:23:24 +01:00
StatusHandler.h
target_specific.h NRF52 bluetooth cleanup and fix (#3328) 2024-03-03 13:56:55 -06:00
xmodem.cpp fixing trunk problems 2023-08-03 10:05:38 +02:00
xmodem.h Wio-e5 wip (#2265) 2023-06-01 07:14:55 -05:00