Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Movement 2.0 Refactor #1

Open
22 of 33 tasks
joeycastillo opened this issue Sep 19, 2024 · 0 comments
Open
22 of 33 tasks

Movement 2.0 Refactor #1

joeycastillo opened this issue Sep 19, 2024 · 0 comments

Comments

@joeycastillo
Copy link
Owner

joeycastillo commented Sep 19, 2024

This issue is to track the progress of the Movement 2.0 refactor. The high-level goals:

  1. Refactor the internals to pay down technical debt, migrating from brittle Atmel Start boilerplate to the more flexible gossamer framework.
  2. With this flexibility, add support for new products like Sensor Watch Pro, the custom LCD and the accelerometer.
  3. Streamline watch face creation and maintenance by cleaning up the API.
  4. Once these tasks are complete: improve core Movement features.

Refactor the internals

Each of these check marks indicate a task related to tearing out old Atmel Start code and reimplementing the feature with the gossamer framework. Items that are unchecked do not currently work in Second Movement — but will soon!

  • GPIO functions
  • LED backlight control
  • Piezo buzzer
  • Real-time clock
  • External interrupt controller
  • Segment LCD
  • Analog to Digital Converter
  • USB CDC
  • RWW Flash memory / Little File System / shell interface
  • I²C interface
  • SPI interface
  • UART

There's the major issue of simulator support; this is going to require some upstream work in gossamer to support the emscripten workflow, but it's a must have before general release.

  • Simulator support

Add support for new products

Sensor Watch Pro

  • Board definition
  • Light sensing
  • Piezo volume control (possible??)

Custom LCD

  • New segment mapping
  • Functions for semantic string display with fallback
  • Functions for semantic use of indicators
  • New sleep mode indicator

Accelerometer Sensor

  • Accelerometer driver
  • Interrupt count watch face (for testing)
  • Refactor buzzer sequence and "Stock Stopwatch" to use TC0 and TC1 (free up TC2 and TC3 for accelerometer)
  • Add new events for tap and double tap
  • Wake on tap, double tap or motion (exact UX pending)

API Cleanup

  • Watch face callbacks: clean up function signatures
  • Store Movement settings on Little File System (not backup registers)
  • Seek feedback on new string display functions before finalizing
  • Unify style around enums, variable types and names

Movement improvements

  • Implement time zones with utz
  • Improve secondary carousel experience (array of watch face arrays, not just two?)
  • Expose LFS as a USB mass storage device?
  • WebSerial configuration interface?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant