Commit Graph

1907 Commits

Author SHA1 Message Date
Daniel Bergman 741e25db0d Handle hour overflow 2025-06-28 18:28:57 +02:00
Daniel Bergman e711fd3e60 Cut the corruption checks. When the user updates the location we should be writing correct values to file. 2025-06-28 18:17:34 +02:00
Daniel Bergman 0234f7a391 Better hundreds handling 2025-06-28 17:50:08 +02:00
Daniel Bergman 0b7f53f99d INCLUDES project root in a Windows friendly way 2025-06-28 14:29:05 +02:00
Daniel Bergman 182db67aeb Stray lf 2025-06-28 12:08:42 +02:00
Daniel Bergman 39ca51eeaa Fix handling of longitude data > 100, including longitude data recovery in sunrise/sunset face
- Added functions to detect and recover from corrupted longitude data.
- Updated the activation process to handle potential corruption by recovering and saving corrected longitude values.
- Ensured that longitude values are reset to zero when exceeding valid limits.
2025-06-28 12:07:04 +02:00
Eirik Stanghelle Morland e3101749c9 Add info on sensorwatch_blue (#14)
Co-authored-by: Joey Castillo <joeycastillo@utexas.edu>
2025-06-26 17:10:23 -04:00
Daniel Bergman 1c89baa8d1 Update Makefile to conditionally require BOARD and DISPLAY only for non-clean targets 2025-06-26 20:48:03 +02:00
Joey Castillo 65c15461b1 peek face: silence warnings 2025-06-25 17:55:34 -04:00
Joey Castillo 8fdcd78a44 acclerometer threshold setting: swap light and alarm button to match wider UI idiom 2025-06-25 17:28:19 -04:00
Joey Castillo eeb31d6fd5 remove light meter face (did not work, could add back later) 2025-06-25 17:24:56 -04:00
Joey Castillo b67867b7ef accelerometer status face: flash decimal when setting threshold 2025-06-25 17:23:31 -04:00
Joey Castillo b1c67bea94 accelerometer: keep threshold across sleeps by tracking it in movement 2025-06-25 17:22:17 -04:00
Joey Castillo 7eef8d18e5 ir upload: time out by default 2025-06-25 17:18:37 -04:00
Joey Castillo 42997ff614 ir upload: display free space instead of 'no data' 2025-06-25 17:08:38 -04:00
Daniel Bergman 7f9a00ef35 fix(lis2dw): Re-initialize accelerometer after waking from sleep (#16)
* fix(lis2dw): Re-initialize accelerometer after waking from sleep

The LIS2DW accelerometer was not being re-initialized correctly after the device woke from sleep mode. When entering sleep, `watch_enter_sleep_mode` disables peripherals and pins, including those for I²C, to conserve power.

Upon waking, the `app_setup` function was designed to re-initialize the hardware. However, the logic only performed the I²C device check once on the initial boot. On subsequent wakes, the `movement_state.has_lis2dw` flag would prevent the I²C bus and the LIS2DW driver from being set up again. This caused any watch face functionality that relied on the accelerometer, such as the countdown face's tap detection, to fail after a sleep/wake cycle.

This commit refactors the initialization logic within `app_setup`. It now uses a static boolean `lis2dw_initialized` to ensure the sensor is detected only once at boot time. On subsequent wakes, if the sensor was originally found to be present, the I²C bus is explicitly re-enabled and the driver is re-initialized with `lis2dw_begin()` before its configuration is reapplied. This ensures the accelerometer is reliably available after every wake-up.

* fix(lis2dw): only check for accelerometer presence once per boot

Previously, devices without the LIS2DW sensor would re-enable I2C and attempt to detect the sensor on every wake from sleep, wasting power and CPU cycles. This change introduces a static `lis2dw_checked` flag that is set after the first detection attempt, regardless of whether the sensor is found. Now, the presence check and I2C enable/disable only occur once per boot, ensuring that devices without the sensor do not repeatedly attempt detection, improving efficiency and battery life.
2025-06-25 09:18:33 -04:00
Joey Castillo 918549a462 accelerometer status: documentation update 2025-06-11 23:27:17 -04:00
Joey Castillo 1a5ccd34a0 accelerometer: don't initialize on wake if already set up 2025-06-11 23:25:08 -04:00
Joey Castillo bb5aa4ff7c accelerometer status face: bug fixes 2025-06-11 23:06:40 -04:00
Joey Castillo e9b7f3f955 mars time: long press to change time zone 2025-06-08 07:48:54 -06:00
Joey Castillo 9459b7d01f temperature display: long press to toggle units 2025-06-08 07:48:46 -06:00
Joey Castillo bf40e46036 bugfix: remove time_offset to get alarm handler working in simulator 2025-06-07 21:25:57 -06:00
Joey Castillo 4160efef70 fast stopwatch: fix overconsumption 2025-06-04 20:48:00 -04:00
Joey Castillo 87a315d936 countdown timer: snap back to clock on timeout, unless running 2025-06-04 00:19:51 -04:00
Joey Castillo 659c73046d mars time: actually update in low energy mode 2025-06-02 20:27:14 -04:00
Joey Castillo fe23ed6e7a add watch face to peek at a memory location 2025-05-29 08:21:18 -04:00
Joey Castillo ca46cb4988 for testing: add NOSLEEP build option to remove sleep mode entirely 2025-05-29 07:22:04 -04:00
Joey Castillo 9a712258f8 world clock: blink colon in low energy mode 2025-05-28 23:43:17 -04:00
Joey Castillo ad3f1e56ed mars time: don't time out, enable low energy animation 2025-05-28 23:42:38 -04:00
Joey Castillo 7cf81ee9e0 set LED's drive strength to high 2025-05-27 20:40:06 -04:00
Joey Castillo e9811a518a bring mars time into Second Movement 2025-05-27 19:30:54 -04:00
Joey Castillo 69b8048790 power down accelerometer unless a watch face requests it 2025-05-26 10:51:11 -04:00
Joey Castillo 6ac2c13098 swap temperature and battery in default firmware 2025-05-26 10:50:07 -04:00
Joey Castillo 6b297e50e4 movement_config: put alarm into standard rotation 2025-05-21 15:44:45 -04:00
Joey Castillo 05080be843 alarm_face: hook alarm up to main clock's alarm indicator 2025-05-21 15:44:16 -04:00
Joey Castillo 5ee0de27cf movement: fire top of minute at top of minute, not bottom of last minute 2025-05-21 15:08:00 -04:00
Joey Castillo bf44c0ae1e bring wake_face into Second Movement (renamed alarm_face) 2025-05-21 15:07:29 -04:00
Joey Castillo 583fae0b30 nanosec: add braces since we declare things 2025-05-21 09:17:38 -04:00
Joey Castillo 310ad3d095 watch_adc: enable ADC when checking battery; let's get rid of this footgun once and for all 2025-05-21 08:51:39 -04:00
Joey Castillo 07a085e90b preferences face: removed in favor of new settings face 2025-05-21 01:19:29 -04:00
Joey Castillo f017462ad4 temperature logger: skip if no temperature sensor is available 2025-05-21 01:15:03 -04:00
Joey Castillo b4730da36b temperature logger: rename stuff to remove thermistor references 2025-05-21 01:12:20 -04:00
Joey Castillo 6c1fa9f4df temperature faces: no need to import thermistor driver 2025-05-21 01:10:09 -04:00
Joey Castillo ea90319180 nanosec: use new Movement API for getting temperature 2025-05-21 01:09:15 -04:00
Joey Castillo f48058568a watch utility: make Friday all caps like the others 2025-05-21 00:53:13 -04:00
Joey Castillo e0010f6760 port nanosec and finetune to Second Movement 2025-05-21 00:50:23 -04:00
Joey Castillo 20a72b4590 default firmware: put stopwatch before countdown 2025-05-21 00:15:19 -04:00
Joey Castillo 287f755edb slcd: we can fit these segment mappings into one byte 2025-05-20 23:50:09 -04:00
Joey Castillo d43c216664 bugfix: need definition of colon as indicator for blinking on custom LCD 2025-05-20 23:42:22 -04:00
Joey Castillo 540222e949 voltage and temperature: clear sleep animation on activate 2025-05-20 23:36:20 -04:00