31 Commits

Author SHA1 Message Date
Ronny Lam
eca75cfb23 Added option to use_iso_8601_weeknumber 2023-02-10 15:18:39 -06:00
TheOnePerson
47812f462d
Play sound sequences asynchronously (#122)
* buzzer sequences: first draft, does not work on hardware yet (but in simulator)

* buzzer sequences: add changes to movement.c

* buzzer sequences: add demo face to Makefile

* buzzer sequences: fix problem of interrupted sounds. Add logic for repeating sub sequences. Tidy up (move logic to watch_buzzer files, remove buzzer_demo_face)

* buzzer sequences: tidy up even more

* buzzer sequences: disable registering a 32 Hz tick callback for watch faces, so it will be used exclusively by the buzzer sequences functionality

* buzzer sequences: add callback slot functionality to watch_rtc and make watch_buzzer use it. Switch internal buzzer sequences tick frequency to 64 Hz. Revert changes to movement.c

* buzzer sequences: fix parameter sanity check in watch_rtc code

* buzzer sequences/watch_rtc: optimize calling tick callbacks in RTC_Handler

* buzzer sequences/watch_rtc: fix error in calling callback functions

* buzzer sequences: revert changes to watch_rtc logic. Instead, use TC3 as the source for timing the sound sequences.

* buzzer sequences: fix frequency of callback

* buzzer sequences: integrate changes from PR #162 (set both CCBUF and PERFBUF for correct buzzer tone)
2023-01-11 15:26:33 -05:00
Mikhail Svarichevsky
6b71711079
Precision watch update (#152)
* Intermediate changes

* Databank working

* Main commit for precision timing

First version where all functions are supposed to be working

* Fix math error in nanosec. File storage for location.

* Remove obsolete comments

* Missing page name on pages rotation - thanks to jeremy

* Delete file.diff

* Cleanup+tempchart

1) finetune must always reset last calibration time when doing non-0 time correction, even when you are not applying ppm correction.
2) Dithers over 31 periods not 10, more resolution with still no risk of overflow
3) Minute-boundery finetune fix. I also just got this 1-minute error after finetune...
4) Write frequency calibration value in 1 operation rather than 2. All RTC writes must be single operations to avoid partially correct data.
5) Some code cleanup
6) Tempchart face is added for temperature statistics

* Update set_time_hackwatch_face.c

* Math error in display code of finetune, allow to update correction time even without correction - by long alarm press

* Increase reliability of stopping & starting RTC timer

As it's quite dangerous operation

* hackwatch - days adjust down fix by long alarm

* unify style

* More comments & last style change

* Simulator support

RTC operations (watch_rtc_enable and watch_rtc_freqcorr_write) are in common libs.

* Unicode fix

* Crystal aging is now adjustable (AA page in nanosec - annual aging, ppm/year)

Aging is baked into fixed offset every time finetune is performed, as it relies on last adjustment time.

* Blink on non-0 page every minute in finetune to measure clock error

* Rolling back private changes

* Cleanup

* Cleanup

* Quality of life changes in nanosec

1. Does not calculate & apply ppm correction if less than 6 hours passed since previous adjustment (as it gives very high correction values which are unrealistic and unhelpful)
2. Idle timeout resets to face 0 only if no correction was made

* unify style

* Fix low-power errors in nanosec infrastructure, faster display in finetune

* Merge fix

* unify style

Co-authored-by: Jeremy O'Brien <neutral@fastmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-01-10 16:56:26 -05:00
Slim
a69547805b Weeknumber watch face
Same as simple clock, but has iso 8601 week number instead of seconds counter
2022-12-02 19:45:53 +01:00
joeycastillo
b399f4ca45 only include watch_main_loop.h in simulator builds 2022-10-11 22:06:02 -05:00
Joey Castillo
7fc4395298 add watch_reset_to_bootloader function (resolves #81) 2022-08-14 15:23:32 -05:00
Joey Castillo
22b1ac0283 simulator: add USB serial input field 2022-05-09 13:00:15 -04:00
Joey Castillo
661e2b6a73 add ability to read from USB serial 2022-05-08 20:19:20 -04:00
Joey Castillo
d4ebe64af0 add support for a small filesystem on the watch 2022-05-06 17:12:14 -04:00
Joey Castillo
6bdaff5d2a remove all deprecated functions 2022-04-10 15:56:45 -04:00
Joey Castillo
d502a030e1 charset tweaks: no need to run deeper checks 2022-04-10 14:38:15 -04:00
Joey Castillo
5f0ebd8c66 character map tweaks: add some ligatures and symbols 2022-04-06 15:51:06 -04:00
Wesley Ellis
1ec1f2e420
Add tomato face: a pomodoro style timer (#61) 2022-04-06 14:33:24 -04:00
joeycastillo
ccdf08da87
Movement: Astronomy and Orrery watch faces (#55) 2022-03-04 14:52:49 -06:00
David Keck
b8e191b615
Updated function brief 2022-02-22 21:37:16 -06:00
Joey Castillo
15cbe09410 move pins.h include to watch.h 2022-02-17 11:59:19 -05:00
Joey Castillo
203850104d remove obsolete low battery check 2022-02-13 14:01:21 -05:00
Joey Castillo
df3db08021 sleep / deepsleep: update low power numbers 2022-02-13 11:25:28 -05:00
Joey Castillo
aae9160422 utility: add function for formatting a duration in days + HMS 2022-02-06 15:00:58 -05:00
Joey Castillo
a3085cb136 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch 2022-02-01 00:24:20 -05:00
Joey Castillo
518a9aa919 add function for converting to 12 hour time 2022-01-31 21:17:10 -08:00
Alexsander Akers
a4cb3c8594 Adjust function semantics by "flipping" bit order 2022-01-27 12:06:06 -05:00
Alexsander Akers
a559d089f1 Add new function to disable certain RTC periodic callbacks 2022-01-27 12:06:06 -05:00
Alexsander Akers
a0f8e9c8bc Implement buzzer methods with AudioContext API 2022-01-27 11:12:01 -05:00
Joey Castillo
14e4562b7a add SPI to the index 2022-01-27 10:51:15 -05:00
Joey Castillo
523a5d2f0b implement SPI flash chip 2022-01-26 22:40:49 -05:00
Joey Castillo
a11275d84c watch library: implement SPI 2022-01-26 21:33:05 -05:00
Joey Castillo
fe5a3eecff Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into main 2022-01-26 20:36:49 -05:00
Joey Castillo
0c78fdf535 watch library: implement UART 2022-01-26 19:31:49 -05:00
Alexsander Akers
84b65cb699 Remove ADC_* defines in favor of hardware-specific mapping 2022-01-25 17:28:15 -05:00
Alexsander Akers
b8de35658f
Sensor Watch Simulator (#35)
* Put something on screen

* Use the 32bit watch_date_time repr to pass from JS

* Implement periodic callbacks

* Clear display on enabling

* Hook up watch_set_led_color() to SVG (green-only)

* Make debug output full-width

* Remove default Emscripten canvas

* Implement sleep and button clicks

* Fix time zone conversion bug in beats-time app

* Clean up warnings

* Fix pin levels

* Set time zone to browser value (if available)

* Add basic backup data saving

* Silence format specifier warnings in both targets

* Remove unnecessary, copied files

* Use RTC pointer to clear callbacks (if available)

* Use preprocessor define to avoid hardcoding MOVEMENT_NUM_FACES

* Change each face to const preprocessor definition

* Remove Intl.DateTimeFormat usage

* Update shell.html title, header

* Add touch start/end event handlers on SVG buttons

* Update shell.html

* Update folder structure (shared, simulator, hardware under watch-library)

* Tease out shared components from watch_slcd

* Clean up simulator watch_slcd.c inline JS calls

* Fix missing newlines at end of file

* Add simulator warnings (except format, unused-paremter)

* Implement remaining watch_rtc functions

* Fix button bug on mouse down then drag out

* Implement remaining watch_slcd functions

* Link keyboard events to buttons (for keys A, L, M)

* Rewrite event handling (mouse, touch, keyboard) in C

* Set explicit text UTF-8 charset in shell.html

* Address PR comments

* Remove unused directories from include paths
2022-01-25 15:03:22 -05:00