]> Devi Nivas Git - smartwatch.git/commitdiff
Update README
authorAdvaith Menon <noreply-git@bp4k.net>
Mon, 1 Dec 2025 21:48:05 +0000 (16:48 -0500)
committerAdvaith Menon <noreply-git@bp4k.net>
Mon, 1 Dec 2025 21:48:05 +0000 (16:48 -0500)
* Make README into a report per 4180 guidelines

README [deleted file]
README.asciidoc [new file with mode: 0644]
README.old [new file with mode: 0644]

diff --git a/README b/README
deleted file mode 100644 (file)
index 98ac93f..0000000
--- a/README
+++ /dev/null
@@ -1,115 +0,0 @@
-===============================================================================
-                               ESP32 SMART WATCH
-                          Georgia Tech Class Project
-===============================================================================
-
-Authors:
-    Advaith Menon
-    Anish Gajula
-
-Task List
-===========
-
-Anish 
-
-- Workouts App
-- RTC & AM/PM logic
-- Rings (Move, Exercise, and Standing) (extra)
-- Snake Game (extra)
-- Messaging (extra)
-- 2035le (extra)
-- Pedometer 
-- Calories burned
-
-Advaith
-- Button Shortcuts
-- Simon Says (extra)
-- Settings
-- Wireless app
-
-
-Together:
-- Inkscape for graphics/UI
-- Color coded key for button controls 
-- Haptics
-- Battery 
-- Threads
-
-DESCRIPTION
-===========
-
-APPS:
-Clock face
-Pedometer 
-Settings
-Compass
-Messaging
-Simon Says Color Game
-Snake Game
-Wireless App (for now)
-Wordle game from 2035
-Also have a color coded key for button controls 
-
-    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.
-* Adding a compass app into the watch
-
-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.
-* Display the battery percentage/charge level
-* 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.
diff --git a/README.asciidoc b/README.asciidoc
new file mode 100644 (file)
index 0000000..b6ca94e
--- /dev/null
@@ -0,0 +1,73 @@
+= The Go Smart Watch
+Diego Fratta <dfratta3@gatech.edu>; Anish Gajula <agajula7@gatech.edu>; Advaith Menon <advaith@gatech.edu>
+v0.1.0, 2025-12-01
+:toc:
+
+[.text-center]
+Authors: {authors}
+
+This document can also be accessed in PDF form via an AWS bucket. Normal GitHub
+uses Asciidoctor, the standard Asciidoc renderer to render AsciiDoc. If this
+feature is not supported, Asciidoc is very readable as plain text. This is also
+why it was chosen over Markdown.
+
+== Abstract
+This document acts as a report to describe the purpose of the project, what each
+component in the project does and why said components are necessary. The report
+also details on similarities and differences from this project to other
+real-world embedded systems, and also talks about how certain things might have
+been done differently.
+
+== Purpose
+The Go Smart Watch is intended to be the "jack of all trades" smartwatch. Not
+only can it act as a fitness tracker by keeping track of the steps taken and the
+calories while wearing it, but also has a framework which enables potential for
+many more apps, such as utility apps and games.
+
+== Component Description
+. Espressif `ESP32-C6` (or `ESP32-C6-MINI-1U`): main microcontroller
+. SparkFun Battery Babysitter: battery power for the smartwatch. A smartwatch
+  must be portable and easily reusable. This board allows using a rechargeable
+  LiPo battery with the smartwatch.
+. Push Buttons: Act as user input. Two buttons mimic a rotary encoder and the
+  third one acts as a 'select'. There is a global 'back' button and an
+  application specific 'red' button.
+. SD Card: User-configurable settings that would be hard to change in the watch
+  interface. This includes things like Wi-Fi usernames and passwords that would
+  be annoying to type using the 5-button controls.
+. IMU: Accelorometer whose data can be extrapolated to form a step count. 
+. uLCD-144-G2: This is a display which shows watch output. Using a screen
+  instead of a mechanical watch face allows a lot of versatility.
+
+== Similarities and Differences
+* **Apple Watch:** The Apple Watch is an IoT-enabled wearable device
+  manufactured by the Cupertino based company of the same name. Other than
+  showing the time, this watch has a versatile collection of apps that enable it
+  to be used for a plethora of other purposes, including but not limited to
+  contactless payments, calling, messaging and fitness tracking.
++
+While SWOS (the FreeRTOS-based OS Go runs) does not have an App Store, it does
+not take much effort to add new apps. There is a built-in Clock app that can
+sync to the current time using Wi-Fi, and a pedometer that can count the steps
+and calories one has taken.
++
+Due to cost limitations, the Go does not have the plethora of sensors that the
+Apple Watch has, such as a heart rate sensor. It also does not have a proper
+implementation of a rotary encoder, substituting it with pushbuttons instead.
++
+The Apple Watch does not have expandable storage support with SD cards.
+
+== Improvements
+* **Rotary Encoder:** If the part could've been procured in time, the team would
+  have used a rotary encoder as the primary scrolling and selection interface to
+  the watch in lieu of the triple-button system.
+* **Settings App:** A user-friendly Settings app would have been added that
+  would allow the user to change their weight, height and adjust the current
+  time zone.
+* **Icons:** The team was unable to get the `BLIT` instruction of the uLCD to
+  work. If they had gotten these to work, apps would have had icons displayed.
+* **Printed Curcuit Board:** Due to the time constraints of the class, the team
+  was unable to get the printed circuit board and its necessary SMD components
+  ordered in time. The team would have made a simpler, less compact THT version
+  which would not have required as many complications, worrying about space
+  layout in a future release.
diff --git a/README.old b/README.old
new file mode 100644 (file)
index 0000000..98ac93f
--- /dev/null
@@ -0,0 +1,115 @@
+===============================================================================
+                               ESP32 SMART WATCH
+                          Georgia Tech Class Project
+===============================================================================
+
+Authors:
+    Advaith Menon
+    Anish Gajula
+
+Task List
+===========
+
+Anish 
+
+- Workouts App
+- RTC & AM/PM logic
+- Rings (Move, Exercise, and Standing) (extra)
+- Snake Game (extra)
+- Messaging (extra)
+- 2035le (extra)
+- Pedometer 
+- Calories burned
+
+Advaith
+- Button Shortcuts
+- Simon Says (extra)
+- Settings
+- Wireless app
+
+
+Together:
+- Inkscape for graphics/UI
+- Color coded key for button controls 
+- Haptics
+- Battery 
+- Threads
+
+DESCRIPTION
+===========
+
+APPS:
+Clock face
+Pedometer 
+Settings
+Compass
+Messaging
+Simon Says Color Game
+Snake Game
+Wireless App (for now)
+Wordle game from 2035
+Also have a color coded key for button controls 
+
+    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.
+* Adding a compass app into the watch
+
+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.
+* Display the battery percentage/charge level
+* 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.