DESCRIPTION
===========
- This project aims to create a prototype of a modern day smart watch/fitness
- tracker. We aim to achieve the following features:
- * Display interface with the uLCD-144-G2 unit
- * 5-button UI
- * Up, down, select to mimic crown
- * Two other "hot" buttons
- * Simple Pedometer with the ICM-20948 IMU
- * Vibration Motor (to receive notifications)
- * Read/Write stats to a (Micro) SD Card via SPI
- * Battery powered by a TBD mAh Li-Po battery
+ Startup & Watch Face UI
+Design the startup and primary display screens on the uLCD (SPI communication).
+* Display a startup splash screen on boot.
+* Implement a watch face with an analog clock and moving hands.
+* Use RTC module to keep accurate time.
+
+Application Grid UI
+Create a 2 × 3 grid menu interface on the uLCD showing all available watch applications.
+* Use graphic assets stored on microSD card.
+* Optimize loading for efficient battery use.
+
+Menu Navigation via Buttons
+Implement menu control using hardware input buttons.
+* Up, Down, Left, Right buttons → Navigate the grid apps.
+* Select button → Open selected app.
+* Back button → Return to previous screen.
+* Support interrupts & digital input.
+* Implement shortcuts from watch face (e.g., long press to open an app quickly).
+
+Pedometer & IMU Functionality
+Use IMU for activity recognition.
+* Detect basic movement for pedometer app.
+* Differentiate running, walking, and sitting/standing.
+* Display step count in pedometer app.
+
+Messaging App with Serial Communication
+Enable messaging functionality between two ESP modules.
+* Implement wireless communication via Bluetooth, WiFi, or ESP-NOW.
+* Display incoming messages in the messaging app.
+* Optional: Basic message composing via UI.
+
+Settings App
+Allow user configuration.
+* Adjust settings such as time sync, haptic intensity, brightness, etc.
+* Store settings on microSD or in flash memory.
+
+Battery & Power Efficiency
+Design to operate using a battery power source.
+* Optimize firmware for low power consumption.
+* Consider sleep modes and screen power-down.
+* Manage charging/power regulation.
+
+Haptic Feedback System
+Control vibration motor via PWM.
+* Provide tactical feedback on app selection.
+* Trigger a vibration every hour using RTC timing.
+
+MicroSD Storage Integration
+Use microSD module for storing graphics and configuration files.
+* Load UI element images from SD card.
+* Store saved preferences or logs if needed.
+
+Threaded System Architecture
+Implement the firmware using multithreading, not sequential execution.
+* Separate threads for UI refresh, IMU data processing, communication, RTC update, and user input.
+* Ensure safe data sharing between threads.
+
+RTC Integration
+Accurately maintain time across operations.
+* Constantly update watch face time.
+* Provide time reference for vibrating every hour.