summaryrefslogtreecommitdiffstats
path: root/watch-library/simulator/watch
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'silicon-errata' into advancedMatheus Afonso Martins Moreira2024-03-081-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements the recommended workarounds for numerous silicon errata, reducing power consumption and preventing freezes and hard faults. Tested-by: Alex Maestas <git@se30.xyz> Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Tested-on-hardware-by: Alex Maestas <git@se30.xyz> Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com> Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com> GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/340 GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/361 GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/359 Reference: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/Errata/SAM-L22-Family-Silicon-Errata-and-Data-Sheet-Clarification-DS80000782.pdf
| * annotate TRNG erratum, address review commentAlex Maestas2024-01-221-1/+1
| |
| * fix simulator build by declaring Trng type as a void pointerAlex Maestas2023-12-171-0/+2
| |
* | buzzer: fix simulator build, refactor sequence_length.Wesley Aptekar-Cassels2024-01-091-0/+1
|/
* fix undefined behavior found by clang's sanitizeAlex Maestas2023-12-071-2/+2
|
* Simulator: Add keyboard arrows as buttons shortcutsHugo Chargois2023-11-191-18/+40
|
* Simulator: Allow typing a, l & m in console inputHugo Chargois2023-11-191-3/+7
| | | | | | | | These keys are the shortcuts to "press" the alarm, light and mode buttons. However, they prevent these letters from being input in the debug console to send filesystem commands. Strangely, there was already some code to allow typing these letters in the console output, but not in the input.
* Merge pull request #276 from hchargois/simulator-volume-sliderWesley Aptekar-Cassels2023-11-181-1/+1
|\ | | | | Simulator volume slider
| * Add a volume slider in the simulatorHugo Chargois2023-09-161-1/+1
| |
* | Fix simulator and hardware divergence in callback handling (#252)Victor Graf2023-11-181-3/+2
|/ | | | | | | | | | | | | When using the simulator, I encountered cases where the light would become stuck on, and the watch would be unresponsive. In particular, this would occur when pressing the light button on the sunrise sunset watch face. I appears that this is caused by a divergence in out the callback mask is interpreted by the hardware interface, and in the simulator in the following function. void watch_rtc_disable_matching_periodic_callbacks(uint8_t mask) In particular, a mask of 0xFE is intended to disable all except the 128hz callback at index 0, but instead disables all except the 1hz callback at index 7 in the simulator.
* Play sound sequences asynchronously (#122)TheOnePerson2023-01-111-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* Precision watch update (#152)Mikhail Svarichevsky2023-01-101-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* remove errant console.logTom Hodson2022-11-221-1/+0
|
* WIP: Add support for bicolor led in the simulatorTom Hodson2022-11-221-1/+10
| | | | | | | | | | | | I noticed that the bicolor led isn't supported in the simulator. Here is a quick mockup of how I would add support for it. I added an SVG filter to the #light rectangle in the SVG which lets us multiply the colours by a matrix in code. I then insert values so that the original green colour gets mixed into the combination of red and green requested by `watch_set_led_color` # Testing So far I've only tested this with the standard firmware build but it seems to work. # Possible issues I wasn't 100% sure what to do when red + green > 255, current behaviour is that it gets clamped to 255 in the simulator.
* add delay_ms function for simulatorjoeycastillo2022-10-111-0/+2
|
* add watch_reset_to_bootloader function (resolves #81)Joey Castillo2022-08-141-0/+4
|
* simulator: add USB serial input fieldJoey Castillo2022-05-091-0/+4
|
* simulator: fix _read function signatureJoey Castillo2022-05-091-2/+2
|
* add support for a small filesystem on the watchJoey Castillo2022-05-061-0/+32
|
* remove all deprecated functionsJoey Castillo2022-04-106-79/+0
|
* movement: final list of watch faces for stock firmwareJoey Castillo2022-04-021-1/+1
|
* remove obsolete low battery function from simulatorJoey Castillo2022-02-131-4/+0
|
* Adjust function semantics by "flipping" bit orderAlexsander Akers2022-01-271-1/+1
|
* Add new function to disable certain RTC periodic callbacksAlexsander Akers2022-01-271-2/+6
|
* Update main loop to fix reentrancy runtime errorsAlexsander Akers2022-01-275-34/+72
|
* Implement buzzer methods with AudioContext APIAlexsander Akers2022-01-272-20/+63
|
* implement SPI flash chipJoey Castillo2022-01-261-2/+4
|
* watch library: implement SPIJoey Castillo2022-01-261-0/+33
|
* watch library: implement UARTJoey Castillo2022-01-261-28/+21
|
* Sensor Watch Simulator (#35)Alexsander Akers2022-01-2512-0/+1049
* 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