Adds a watch face that allows playing the classic Simon game
with the watch's buzzer and RGB LED.
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/398
* Check that color is valid
Instead of merely checking that COLOR is set, check that it is one of
RED, BLUE or GREEN
* Added ability to turn off sound and timer with modes
* Added enum for mode
---------
Co-authored-by: Wesley Ellis <tahnok@gmail.com>
* Sensor Watch Pro board definition
* Disable hot-plugging on SWCLK
* Add rainbow test
* Move interrupt mapping to board config
* New color definition for Pro boards in makefile
Completely refactors the simple clock face
and lays the foundations for new features.
Also adds a compile time 24 hour mode only feature.
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-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/373
The clock watch face can now be configured at build time
to only display the time in 24h mode. Also enabled in forced 24h mode.
This should result in smaller code size due to dead code elimination.
* Introduce shell module for basic serial shell with argument parsing
* Introduce shell_cmd_list module for basic compile-time command
registration
* Harden USB handling to hang less and drop fewer inputs
- Service tud_task() with periodic TC0 timer interrupt
- Service cdc_task() with periodic TC1 timer interrupt
- Handle shell servicing in main app loop
- Add a circular buffering layer for reads/writes
* Change newline prints to also send carriage return
* Refactor filesystem commands for shell subsystem
* Introduce new shell commands:
- 'help' command
- 'flash' command to reset into bootloader
- 'stress' command to stress CDC writes
Testing:
* Shell validated on Sensor Watch Blue w/ Linux host
* Shell validated in emscripten emulator
* Tuned by spamming inputs during `stress` cmd until stack didn't crash
* initial commit, added opt3001 light meter test app
* tested working light meter board, i2c communication still has issues
* fixed i2c; rudimentary lightmeter works!
* added aperture priority ui
* added aperture priority ui
* added README
* adjusted cal
* fixed bugs (HI shutter speed, lux mode toggle)
* made it possible to advance to the next face
* initialized lux variable
* lowered tolerance for HI and LO
* Changed EV display from always showing EV100 to showing EV[iso setting]
* dont display old ev when ISO changes
* changed mode and light behavior
* updated readme
* fixed indentation
* made lightmeter display logic more consistent
* made lightmeter display logic more consistent
* reverted rules.mk (for merge into upstream)
* reverted rules.mk (for merge into upstream)
* removed OPT3001 PCB model
* made lux mode default, corrected timeout behavior
---------
Co-authored-by: Christian Chapman <user@debian>
Makefile != bourne shell, I think.
At least on my systems, this was causing a raw -j, which meant
that make had no restriction on its parallelism
(i.e. tried to build everything at once).
Instead of calling python use python3.
On a default debian 11 install there is no python binary, only python3.
Given that the uf2conv script is written for python 3 I think this is a
safe change to make
* 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