42 Commits

Author SHA1 Message Date
Alex Maestas
d96d6f9c91 make the HAL sleep function obey the chip documentation
the sleep mode doesn't get set immediately, and needs to be waited upon.
2023-12-18 03:09:36 +00:00
Alex Maestas
d10fa223b2 address SysTick erratum, which can hard-fault the chip 2023-12-18 01:29:28 +00:00
Alex Maestas
68f3865227 work around silicon erratum in SUPC/VREG 2023-12-17 17:40:19 +00:00
Alex Maestas
89e86fe629 work around silicon erratum in TRNG 2023-12-17 17:39:59 +00:00
Alex Maestas
8206f37fcf fix undefined behavior found by clang's sanitize 2023-12-07 02:24:26 +00:00
joeycastillo
e4ad0e5567 default year to 2023 2023-08-27 17:53:02 -04:00
joeycastillo
5163cf1fe1 Revert "never disable buzzer output"
This reverts commit 851d047c818dacc30c86f4d87f33247dcfb0095c.
2023-01-17 08:52:01 -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
gugray
18de75be5a
fixes 161: sets both CCBUF and PERFBUF for correct buzzer tone (#162) 2023-01-10 16:33:29 -05:00
joeycastillo
851d047c81 never disable buzzer output 2023-01-03 21:24:14 -06:00
Joey Castillo
7fc4395298 add watch_reset_to_bootloader function (resolves #81) 2022-08-14 15:23:32 -05:00
Joey Castillo
bcd3b66684 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch into lfs 2022-08-02 08:17:26 -06:00
Joey Castillo
5b650b9efe reduce flicker of LED by default 2022-07-04 11:23:09 -05:00
Joey Castillo
ed526355f6 fix spaces / tabs 2022-05-10 09:50:44 -04:00
Joey Castillo
22b1ac0283 simulator: add USB serial input field 2022-05-09 13:00:15 -04:00
Joey Castillo
32c6974c0f usb serial: clear whole length of buffer 2022-05-09 10:59:15 -04:00
Joey Castillo
03b616da62 prevent buf from escaping into global namespace 2022-05-09 10:57:16 -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
21026c8eb7 add room for flash filesystem in linker script 2022-05-06 15:17:57 -04:00
Joey Castillo
9c2b3b7c17 make 2022 the default year 2022-04-21 14:18:17 -04:00
Joey Castillo
6bdaff5d2a remove all deprecated functions 2022-04-10 15:56:45 -04:00
Joey Castillo
405f010ade static analysis: add comments to empty while loops 2022-04-10 15:08:47 -04:00
Joey Castillo
15cbe09410 move pins.h include to watch.h 2022-02-17 11:59:19 -05:00
Joey Castillo
c7f6387aee on second thought: keep BOD33 disabled in sleep mode 2022-02-13 16:04:21 -05:00
Joey Castillo
b91f025542 enable high-efficiency low power regulator 2022-02-13 14:15:00 -05:00
Joey Castillo
203850104d remove obsolete low battery check 2022-02-13 14:01:21 -05:00
Joey Castillo
7815b0f64e always turn off PA20 at boot 2022-02-13 13:59:22 -05:00
Joey Castillo
5dac14974c osc32kctrl: implement CONF_SLCDCTRL_SRC setting 2022-02-11 12:22:11 -05:00
Joey Castillo
87be905fee rtc: disable debouncing on external wake inputs 2022-02-11 12:18:16 -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
523a5d2f0b implement SPI flash chip 2022-01-26 22:40:49 -05:00
Joey Castillo
b2dbc4feeb silence compiler warning 2022-01-26 22:15:53 -05:00
Joey Castillo
a11275d84c watch library: implement SPI 2022-01-26 21:33:05 -05:00
Joey Castillo
1b1bba2de0 silence compiler warning 2022-01-26 21:04:56 -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
d65103b03b silence compiler warnings 2022-01-26 20:16:52 -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