Saleem A. Al Dajani

Week 14

System Integration

System Integration Highlights

Key moments from the final system integration week, showcasing the complete MirrorAge system assembly, testing, and presentation.

Table of Contents

Week 14 System Integration

Final integration week focused on bringing all subsystems together, completing hardware fabrication, firmware integration, and documentation for the MirrorAge system presentation.

Week 14 Day-by-Day System Integration Plan

Positive Possum encouragement meme

Theme of the Week

FINITIATIVE

The act of bringing something to a conclusion or ending in a decisive manner. The ability to efficiently finish tasks and projects with a goal-oriented mindset.

Wednesday

Morning
  • Publish system integration plan on website
  • Update weekly assignment sections on final project page (weeks 10-13)
  • Link final project design files
  • Update reflections and learnings
  • Update picture of prism holder
  • Add final pictures to Slack canvases
  • Create schematic between boards (wired and wireless) — updated system diagram on PPT-like page
  • Start CAD model of system
  • Place final order
Afternoon & Evening
Design:
  • Boards: Combine OLED screen/accelerometer with pulse oximeter board in a new board (maybe upgrade to small TFT as minor)
  • Boards: Speaker board with realtime amplifier and TFT (on the load cell fixed board)
  • Band: Mold design
  • Cases: 3D print mountable cases for the boards
  • Integrate designs into final CAD
  • Document design
  • Finish CAD model of system

Thursday

Fabricate
  • Milling boards
  • Print mold and cast band
  • Print cases
Solder
  • Solder components on milled boards
  • Connect boards with wired (and wireless connection codes)
Finishing
  • Mirror on screen (easy way with the film)
Documentation
  • Document fabrication

Friday

Programming
  • Board level codes
  • Server level codes
Documentation
  • Document codes
Completion
  • Finish anything else

Saturday

Programming & Testing
  • Demo integrated system
  • Test integrated system
Documentation
  • Document testing and evaluation
  • Review and complete documentation (list of questions)
  • Make the video by collaging documentation

Sunday

  • Fill up any gaps
  • Prepare demo on tensegrity table
  • Finalize 1-slide
  • Work on minors
  • If done, work on if there's time

Monday Morning

  • Transport demo on tensegrity table
  • Fill up any gaps
  • Work on minors

Specific Tasks to Complete This Week

Major Tasks
  • CAD model of system
  • Speaker board with realtime amplifier
  • Combine screen/accelerometer with pulse oximeter board in a new board
  • Mold and cast band
  • Design and fabricate casing (print)
  • Schematic between boards (wired and wireless) — updated system diagram on PPT-like page
  • Serial connection between pulse oximeter and tiny blinking heart for BPM (BPM from IR, SpO2 from delta)
  • Combine multiple boards on the same WiFi (switching tabs is easy way, board hosting the webpage querying and update or Python-based server somewhere where everything posting data, Raspberry Pi)
  • Put+program everything together according to the above (with WiFi for now)
  • Mirror on screen (easy way with the film)
  • Document evaluations and costs (plus the rest of the list here: project presentation requirements)
  • Summary slide and one-minute video for documentation
    • Conception
    • Construction
    • Operation
Minor Tasks
  • Program microphone/speaker
  • Fix reaction time delay code
  • Program LoRa connection
  • Fix OLED plus WiFi issue
  • Upgrade to TFT (SPI is very straightforward, design board with either SPI or OLED connection)
  • Fix heart engraving to center
  • Engrave K9 glass mirror if it arrives
  • RD and IRD isolation slit (maybe wick and then cut)
  • Do the calibration curve for the load cell
  • Finish cardboard laser cutter origami big mirror frame
If There's Time
  • Moving base of mirror
Orders
  • Raspberry Pi Zero (or server host, do some research)
Presentation
  • Aim for 2.5 minutes because Neil will ask questions
  • Generally no slides except for 1 open summary slide (have backup slides in case questions come up!)

Related: See the Development Timeline on the final project page for the overall project schedule.

Day 1: Design Integration

Initial system integration work focused on subsystem validation, CAD model consolidation, and design backbone acquisition for band integration.

Subsystem Validation

Conducted comprehensive testing of all subsystems to ensure proper functionality. Identified and resoldered any defective joints, verifying that each subsystem operates correctly before proceeding with full system integration.

CAD Model Consolidation

Exported CAD models of all PCBs in the final design and imported them into a unified CAD assembly. This consolidated model provides a complete view of the system's mechanical integration and spatial relationships.

Exploded isometric view of the integrated CAD model showing all PCBs, housing components, and wearable band assembly
Integrated CAD Model: Exploded isometric view of the complete system assembly, including all PCBs (pulse oximeter, OLED/accelerometer, speaker/amplifier), main housing with transparent enclosure, and wearable band components. The model shows the spatial relationships between electronic subsystems and mechanical structures, enabling precise integration planning.

Band Design Backbone

Acquired CAD design files for Apple Watch form factor integration, enabling compatibility with existing band designs and standardized watch components. This provides a proven mechanical foundation for the wearable subsystem.

Apple Watch Form Factor: MutantW v2 Project · Instructables Guide
Apple Watch Band Design: Thingiverse Band Files

Next Steps

Resuming the daily schedule tomorrow with parallel work streams prioritized according to the critical path. Tasks that cannot be completed during scheduled days will be shifted to buffer days on Saturday and Sunday to maintain project momentum.

Day 2: Electrical and Mechanical Integration

Physical integration of subsystems into the complete demo table assembly, including mechanical component fabrication and electrical board consolidation.

2.1 Mechanical Integration

Mechanical design integration now includes the complete demo table with precise placement of the MirrorAge handgrip subsystem and the aging clock subsystem. The integrated assembly provides a unified platform for system demonstration and testing.

Complete demo table assembly showing integrated MirrorAge handgrip and aging clock subsystems
Complete Demo Table Assembly: Integrated mechanical design showing precise placement of the MirrorAge handgrip subsystem and aging clock subsystem on the demo table. The assembly demonstrates the spatial relationships and mounting configurations for both subsystems within the unified demonstration platform.

3D Additive Manufacturing

All 3D additive mechanical components were printed for rapid iterative development. The fabrication process required specific print settings and support strategies for different components:

The 3D printed watch casing and band designs were adapted from the open-source MutantW V2 ESP32-S3 smartwatch and scaled 2:1 for this project. Reference designs and build details are available in the MutantW V2 repository, Instructables guide, and Arduino community discussion.

Printing Initiation: 3D printer starting the fabrication process for mechanical components
3D printed casing component during fabrication
Casing Print: Casing component during 3D printing process
Print Configuration Requirements:
  • Casing: Required organic support structures for complex overhangs
  • Dock: Required brim adhesion to prevent warping during printing
  • Bands: Printed using TPU (Thermoplastic Polyurethane) material for flexibility (will spiral into molding and casting in future iterations)
Organic support structure configuration for casing print
Organic Support Configuration: Slicer settings showing organic support structures for the casing component
Brim addition to dock component for improved bed adhesion
Brim Addition: Dock component with brim added to prevent warping during printing
Casing component with organic support structures
Casing with Organic Support: Printed casing component showing organic support structures
TPU bands printed for flexible wearable components
TPU Bands: Flexible wearable band components printed using TPU material
Print Failures and Iteration
Failed casing print showing print quality issues
Failed Casing Print: Initial casing print failure requiring support structure adjustments
Failed dock print showing warping issues
Failed Dock Print: Dock print failure due to warping, resolved with brim addition
Collection of printing failures and debugging process
Printing Failures: Documentation of various print failures encountered during iterative development
Successful printing progress showing completed components
Printing Progress: Successful components showing iterative improvement in print quality

2D Subtractive Manufacturing

The first 2D subtractive mechanical component was debugged and fabricated. The display face component required exporting a DXF of the full face to laser cut an acrylic display that fits the casing precisely. The original display part face was too small because it was filleted, so the edges of the aging clock body were traced and exported for accurate laser cutting.

Laser Cutting Process 1: Initial laser cutting of acrylic display component
Laser Cutting Process 2: Continued laser cutting operation for display face
Acrylic display component fitted into casing
Acrylic Display Fit: Laser-cut acrylic display component precisely fitted into the casing, demonstrating successful integration of 2D subtractive and 3D additive manufacturing components.

2.2 Electrical Integration Methods in Spiral Development

Electrical design integration combines multiple subsystems into unified board designs, with progressive upgrades incorporating TFT displays for enhanced visual feedback. The integration follows a spiral development approach, starting with base designs and iteratively adding features like TFT displays as design constraints are validated.

Board Design Evolution

Initial board design showing size constraints
Initial Board Design: First integrated board design showing size constraints relative to casing dimensions
Board design fitted within casing constraints
Board in Casing: Revised board design fitted within casing dimensional constraints
Final integrated aging clock board design
Final Integrated Board Design: Complete aging clock board design combining accelerometer/camera functionality with pulse oximeter sensors in a single unified PCB layout optimized for casing fit and component placement.

TFT Display Integration

Both the aging clock watch board and the MirrorAge load cell-speaker board have been upgraded to include TFT displays for enhanced visual feedback. The displays use SPI communication for straightforward integration with the ESP32-S3 XIAO microcontroller.

TFT to ESP32-S3 XIAO Pin Mapping:

Based on the Seeed Studio XIAO ESP32-C3 ILI9341 wiring guide, adapted for ESP32-S3 XIAO:

TFT Pin ESP32-S3 XIAO Pin
VCC 3V3 or 5V
GND GND
CS D0
RST D2
DC/RS D1
SDI (MOSI) D10
SCK D8
LED (Backlight) 3V3

Note: For both 1.8" and 2.4" TFT displays, the LED backlight pin connects to 3V3. Additional references: 1.8" TFT Guide, 2.8" ILI9341 Guide, ESP32-S3 ILI9341 Guide

Future Improvement: TFT Touchscreen Integration

For future iterations incorporating touchscreen functionality, the ILI9341 TFT with integrated touch controller requires additional pin connections. The touch controller shares the SPI bus with the TFT display and uses a separate chip select pin.

TFT touchscreen wiring diagram for ESP32-C3
Touchscreen Wiring Diagram: Schematic showing ILI9341 TFT with touch controller connections to ESP32-C3, adapted from Arduino Forum ESP32-C3 and ILI9341. The diagram includes backlight brightness control (transistors Q4, Q5, Q6) which can be simplified to a 100Ω resistor for basic operation.
Touchscreen Pin Mapping (ESP32 XIAO):
Touch Pin ESP32 XIAO Pin
T_CLK SCK (GPIO8/D8)
T_CS GPIO21/D21
T_DIN MOSI (GPIO10/D10)
T_DO MISO (GPIO9/D9)

Important Notes:

  • The TFT reset pin can be pulled to 3V3 via a 10kΩ resistor (not 5V as sometimes shown in diagrams)
  • The touch controller uses the same SPI bus as the TFT display, requiring a modified XPT2046_Touchscreen library with reduced SPI clock speed
  • MISO pin (GPIO9) enters bootloading mode after reset—ensure proper initialization sequence
  • Always verify front and back of PCB designs in Bantam Tools software before milling to avoid trace clearance issues

Reference Resources:

1.8 inch TFT display for watch board
1.8" TFT Display: ST7735 controller, 128×160 pixels, for aging clock watch board integration
2.4 inch TFT display for load cell speaker board
2.4" TFT Display: ILI9341 controller, 320×240 pixels, for MirrorAge load cell-speaker board integration
TFT display wiring diagram showing pin connections
TFT Display Wiring: Pin connection diagram showing SPI interface connections between TFT displays and ESP32-S3 XIAO microcontroller for both watch and MirrorAge boards.

MirrorAge Amplifier Board Design

The MirrorAge amplifier board integrates a real-time audio amplifier with load cell interface and TFT display. The base design includes the amplifier circuit and HX711 load cell interface, with an upgraded version adding the 2.4" ILI9341 TFT display.

Base MirrorAge amplifier board design
Base Amplifier Board: Initial design with real-time amplifier and HX711 load cell interface
Base MirrorAge board PCB layout
Base Board Layout: PCB layout showing component placement for amplifier and load cell interface
TFT Display Component:

1.8" TFT LCD: ST7735 controller, 128×160 pixels. CAD model reference: GrabCAD ST7735 Model

MirrorAge board with TFT display integration
TFT-Integrated MirrorAge Board: Upgraded PCB design incorporating the 2.4" ILI9341 TFT display alongside the amplifier and load cell interface, enabling visual feedback for grip strength measurements.

Aging Clock Watch Board Design

The aging clock watch board combines pulse oximeter sensors, accelerometer, and camera functionality. The base design uses an OLED display, with an upgraded version incorporating a 1.8" ST7735 TFT display for enhanced visual feedback.

Aging clock watch board base design
Base Aging Clock Board: Initial design integrating pulse oximeter, accelerometer, and camera with OLED display for wearable watch form factor.

Board Fabrication and Integration

The first version of the aging clock board was milled. The initial board did not fit the casing, requiring either casing adjustment and reprinting, or milling a new miniaturized board with shrunken electronics. Both approaches are being evaluated. The MirrorAge board design has been completed for both base and TFT-integrated versions, ready for milling and testing.

Milled integrated aging clock board showing component placement
Milled Integrated Board: First version of the integrated aging clock board after PCB milling, showing component placement and routing
Board nearly fitting in casing showing dimensional constraints
Board Fit Test: Milled board nearly fitting in casing, demonstrating the need for dimensional optimization
Board Deflection Fixing: Process of addressing board deflection and mechanical fit issues during integration testing, demonstrating iterative refinement of the electrical-mechanical interface.

Day 3: Fabrication Integration

Comprehensive fabrication integration work combining 2D laser cutting, 3D printing, and PCB milling to create fully integrated subsystems ready for assembly and testing.

2.1 2D Fabrication: Laser Cutting

The laser-cut acrylic display component was updated in Day 2 and successfully integrated into the watch assembly. The acrylic display provides a clear protective face for the aging clock watch, precisely fitted to the casing dimensions.

The integrated watch assembly demonstrates successful integration of 2D subtractive manufacturing with 3D printed components, creating a cohesive mechanical structure for the wearable subsystem.

2.2 3D Printing: Rigid and Flexible Components

All 3D printed components were fabricated using both rigid and flexible materials. The bands were printed using TPU (Thermoplastic Polyurethane) for flexibility, while rigid components used standard PLA/PETG materials. Additional print details and configuration requirements are documented in Day 2.

The case should also be printed from TPU to improve interlock part fit. The spring-loaded interlock mechanism enables secure band closure while maintaining flexibility for comfortable wear.

TPU band component printed for flexible wearable
TPU Band Print 1: Flexible wearable band component printed using TPU material for comfort and durability
TPU band component showing flexibility
TPU Band Print 2: Flexible band component demonstrating material properties and print quality
Band closure mechanism showing interlock design
Band Closure: Interlock mechanism enabling secure band closure for wearable integration
Rigid dock component for board mounting
Rigid Dock: 3D printed dock component for secure board mounting and electrical connection
Assembled rigid dock with board integration
Assembled Rigid Dock: Complete dock assembly showing board integration and mechanical mounting
Spring-loaded interlock mechanism detail
Spring-Loaded Interlock: Detailed view of the interlock mechanism enabling secure yet flexible band closure
Spring-Loaded Interlock Operation: Demonstration of the interlock mechanism in action, showing secure closure and release functionality for the wearable band system.

2.3 Milling: Single and Double-Sided Boards

Aging Clock Watch Board

The aging clock watch board was successfully milled. The base design with OLED display worked correctly, and the design has been upgraded to include a TFT display. The new TFT-integrated design will be milled and tested alongside the base OLED version to validate both display options.

Milling Process 1: Initial milling operation for aging clock watch board
Tool probing and Z-axis calibration
Tool Probing: Z-axis calibration and tool location setup for precise milling depth control
Milling Process 2: Continued milling operation showing tool path execution
Milling Process 3: Final milling passes completing board fabrication
Completed Milling: Finished aging clock board after successful milling operation
Vacuuming Debris: Post-milling cleanup process removing copper and substrate debris
Removing completed aging clock board from mill
Board Removal: Completed aging clock watch board removed from milling machine, ready for component soldering and testing.

MirrorAge Amplifier Board

The base MirrorAge amplifier board milling initially failed due to polygon pour isolation settings. The default isolation distance was set to 0 mil, which caused routing issues. After changing the back-side polygon pour isolation to 32 mil, the milling operation succeeded. When the shop closed, the design was upgraded to include a TFT screen. Both the base design and TFT-integrated versions will be milled together and tested.

Milling Process 1: Initial MirrorAge board milling operation
Milling Process 2: Continued milling showing tool path execution
Failed milling showing polygon pour isolation issue
Failed Milling: Initial milling failure caused by polygon pour isolation set to 0 mil
Failed Milling Video: Demonstration of milling failure due to incorrect isolation settings
Fixturing board for second-side milling
Second-Side Fixturing: Board secured for double-sided milling operation
Second-Side Milling: Back-side milling operation for double-sided board
Back-Side Milling: Completing double-sided board fabrication
Fixed polygon pour isolation setting at 32 mil
Fixed Isolation Setting: Polygon pour isolation corrected to 32 mil for proper routing
Successful Milling with Fixed Settings: MirrorAge board milling operation completing successfully after correcting polygon pour isolation to 32 mil, demonstrating the importance of proper PCB design rule configuration.

2.4 Integrating Fabrication

Physical integration of fabricated components demonstrates successful coordination between mechanical and electrical subsystems. The watch board fits within the watch case, and the acrylic display integrates properly. Additional work remains for drilling mounting holes for electronics and routing power connections.

Aging clock watch integration showing board and case fit
Aging Clock Integration: Watch board and case integration showing proper dimensional fit
Integrated watch board within case assembly
Integrated Watch Board: Complete watch board assembly within case, demonstrating successful mechanical integration
Assembled bands with clip mechanism
Assembled Bands: Complete band assembly with clip mechanism for secure attachment
Spring-loaded interlock mechanism in integrated assembly
Interlock Mechanism: Spring-loaded interlock providing secure yet flexible band closure
Interlock Operation: Demonstration of spring-loaded interlock mechanism enabling secure band closure and release for comfortable wearable integration.

TFT Display Upgrades

Both board designs have been upgraded to include TFT displays, and integration testing confirms proper fit. The TFT watch board fits correctly with the TFT display, and both the base and TFT-integrated MirrorAge load cell-speaker boards fit within the gripper enclosure. Additional work is needed for drilling mounting holes and adding hooks for load cell wire routing to the HX711 mounted on the board, as well as routing power connections.

Upgraded aging clock board with TFT display
TFT Aging Clock: Upgraded aging clock board design incorporating 1.8" ST7735 TFT display
TFT aging clock board PCB layout
TFT Board Layout: PCB layout showing TFT display integration with existing components
TFT aging clock board schematic
TFT Board Schematic: Electrical schematic showing TFT display connections and component integration
Upgraded MirrorAge board with TFT display
TFT MirrorAge Board: Upgraded MirrorAge board design incorporating 2.4" ILI9341 TFT display
TFT MirrorAge board schematic
TFT MirrorAge Schematic: Electrical schematic showing TFT display integration with amplifier and load cell interface
Integrated demo system showing all subsystems
Integrated Demo System: Complete system integration showing all subsystems in unified demonstration platform

Day 4: Subsystem Integration

Comprehensive subsystem integration work combining 2D fabrication, 3D printing, PCB milling, and molding/casting to complete all physical components for final assembly and testing.

2.0 Final Electrical Design Upgrades

With the milling machine unavailable, the time was used to upgrade board designs, requiring component rotations and layout optimizations to ensure all components fit properly. As Quentin noted, "you have to get used to rotating it in your head"—a valuable skill for PCB design where spatial reasoning is essential for component placement and routing.

"you have to get used to rotating it in your head" — Quentin

MirrorAge TFT Board Upgrades (v13)

The MirrorAge TFT board design was upgraded to version 13, with component rotations and layout optimizations to improve fit and routing efficiency.

MirrorAge TFT board front side version 13
MirrorAge TFT Front v13: Upgraded front-side layout with optimized component placement and routing
MirrorAge TFT board back side version 13
MirrorAge TFT Back v13: Upgraded back-side routing with improved trace layout and component positioning

Aging Clock TFT Board Upgrades (v16)

The aging clock TFT board design was upgraded to version 16, incorporating component rotations and layout refinements to ensure proper fit within the watch casing constraints.

As part of this upgrade, the board was rotated 90° so that the USB power and programming cable can be routed cleanly through the side button openings of the watch enclosure, avoiding strain on the connector and preserving clearance for the bands.

Aging clock TFT board front side version 16
Aging Clock TFT Front v16: Upgraded front-side design with rotated components for optimal fit
Aging clock TFT board back side version 16
Aging Clock TFT Back v16: Upgraded back-side routing with improved component placement

2.6 I²C Bring-Up and Future Electrical Robustness

Subsystem integration also focused on making the shared I²C bus predictable and debuggable. During flashing, an intermittent serial exception from esptool indicated that the USB device was reporting readiness but returning no data—a classic symptom of a loose cable, port contention, or transient power issue rather than a firmware bug. After power-cycling the board, checking that only one serial monitor was attached, and reseating the USB cable, flashing succeeded reliably.

With stable flashing restored, an I²C scanner sketch confirmed that all devices were present on the bus: the MAX30102 pulse oximeter at address 0x57, the MPU6050 accelerometer at 0x68, and the OLED display at 0x3C once it was wired in. Multiple scans over time reproduced the same addresses, validating bus integrity and confirming that the SDA/SCL routing and pull-up strategy were correct after earlier trace and enclosure fit issues.

Key practices for future spirals:
  • Keep I²C traces short, avoid sharp mechanical pinch points near the enclosure, and leave clearance for solder thickness to prevent pads from lifting under pressure.
  • Standardize on known-good I²C addresses (MAX30102 0x57, MPU6050 0x68, SSD1306 OLED 0x3C) and document them close to the schematic and firmware.
  • Use a simple I²C scanner and a dedicated flashing machine to separate bus-debug issues from USB driver or multi-process serial conflicts.

Reference: esptool Troubleshooting Guide for interpreting serial upload errors and recommended recovery steps.

2.1 2D Fabrication: Laser Cutting

Laser-cut thinner acrylic (1.35mm) was fabricated to improve the fit of the clear display cover for the aging clock subsystem. The thinner material provides better dimensional tolerance and improved integration with the watch casing.

Laser cutting 1.35mm acrylic for display cover
Thin Acrylic Cutting: Laser cutting 1.35mm acrylic sheet for improved display cover fit
Successfully laser-cut acrylic display cover
Successful Cut: Completed laser-cut acrylic display cover with precise dimensions
Laser-cut acrylic showing edge quality
Edge Quality: Clean laser-cut edges demonstrating precise fabrication
Aging clock with improved acrylic display cover fit
Improved Fit: Thinner acrylic display cover providing better integration with watch casing
Laser Cutting Process: Laser cutting operation for thin acrylic display cover
Final Cut: Completion of laser cutting process for display cover component

2.2 3D Printing: Rigid and Flexible Components

Band clips were printed using TPU (Thermoplastic Polyurethane) material for improved fit and flexibility. The flexible material provides better mechanical compliance and secure attachment to the watch body.

TPU band clips for aging clock watch
TPU Band Clips: Flexible band clips printed from TPU material for improved fit
Aging clock with TPU clips integrated
Integrated Clips: TPU clips providing secure and flexible band attachment
Filed and inserted band clips showing fit
Fitted Clips: Band clips filed and inserted for optimal fit and secure attachment
Complete clip assembly showing integration
Clip Assembly: Complete band clip assembly demonstrating successful integration

2.3 Milling: Single and Double-Sided Boards

The TFT aging clock board design was milled, requiring iterative refinement due to initial design issues. The first mill had traces that were too close together, and the rivets were positioned under the microcontroller, requiring manual fixes with an ultrasonic knife before remilling the corrected board.

First Milling Attempt

The initial milling process revealed design issues that required correction. The board was milled on both front and back sides, with careful tool location and fixturing procedures.

Front-Side Milling: Initial front-side milling operation for aging clock board
Tool Location: Tool location procedure for front-side milling setup
Front Milling Start: Beginning of front-side milling operation
Front Milling Progress: Front-side milling operation in progress
Back-Side Tool Location: Tool location for back-side milling setup
Back Milling Start: Beginning of back-side milling operation
Back Milling Progress: Back-side milling operation continuing
Back Milling Completion: Final stages of back-side milling
Board Unloading: Removing completed board from milling machine
Post-Milling Cleanup: Vacuuming debris after milling operation

Design Issues and Manual Fixes

After milling, inspection revealed traces that were too close together and rivets positioned under the microcontroller. These issues were corrected manually using a two-step cutting process: the ultrasonic knife was used to initiate precise cuts on both ends of each problematic trace, establishing the correct penetration direction. A utility knife was then used to cut a straight line between these initiation points, isolating the upper and lower wiring. The challenge with manual trace cutting lies in controlling the initial penetration with the utility knife—the ultrasonic knife's precision in establishing the cut direction made the subsequent utility knife cut smoother and easier to complete from end to end. After these manual corrections, the board design was updated and remilled with the fixed layout.

Removing milled PCB from machine
PCB Removal: Removing milled board for inspection and testing
First side of milled board showing traces
First Side: Initial side of milled board showing trace routing
Missing traces due to design issues
Missing Traces: Traces that were too close together causing milling issues
Close-up of missing trace issue
Trace Detail: Detailed view of trace spacing issues requiring correction
Additional missing trace locations
Multiple Trace Issues: Additional locations with trace spacing problems
Double-sided board showing both sides
Double-Sided Board: Complete double-sided board showing front and back
Ultrasonic knife for trace cutting
Ultrasonic Knife: Used to initiate precise cuts on both ends of problematic traces, establishing the correct penetration direction for subsequent utility knife cuts. This precision makes the utility knife cut smoother and easier to complete from end to end.
Utility knife for board modifications
Utility Knife: Used to cut a straight line between the ultrasonic knife initiation points, isolating upper and lower wiring. The challenge lies in controlling the initial penetration, which is why the ultrasonic knife's precise initiation cuts are essential.
First trace cut using ultrasonic knife
Trace Cut 1: First trace modification using ultrasonic knife
Completed first trace cut
Completed Cut 1: First trace cut completed successfully
Second trace cut in progress
Trace Cut 2: Second trace modification in progress
Completed second trace cut
Completed Cut 2: Second trace cut completed successfully

Corrected Board Design and Remilling

After manual corrections, the board design was updated to move rivets away from the microcontroller and improve trace spacing. The corrected board was successfully milled with proper trace clearances and component placement.

Corrected aging clock board front side
Corrected Front Side: Updated board design with improved trace spacing
Corrected aging clock board back side
Corrected Back Side: Back side of corrected board showing proper routing
TFT display fitting on corrected board
TFT Fit Test: TFT display properly fitting on corrected board design
TFT display alignment on board
TFT Alignment: TFT display properly aligned with board connectors
Corrected Front Milling 1: Beginning of corrected board front-side milling
Corrected Front Milling 2: Front-side milling operation continuing
Tool Location: Tool location procedure for corrected board milling
Front Milling Start: Beginning corrected front-side milling operation
Tool Change: Tool change during front-side milling operation
Back Milling Setup: Setup for back-side milling of corrected board
Back Milling Start: Beginning back-side milling of corrected board
Back Milling Progress: Back-side milling operation continuing
Post-Milling Cleanup: Vacuuming debris after corrected board milling
Aging clock board with moved rivets
Moved Rivets: Board design with rivets repositioned away from microcontroller
Improved board design with proper rivet placement
Improved Design: Corrected board showing proper rivet placement and trace routing
Rivet holes detail on corrected board
Rivet Holes: Detail view of properly positioned rivet holes

MirrorAge TFT Board Milling

The base amplifier board was remilled after fixing polygon pour isolation settings (changed from 0 to 32 mil). The upgraded MirrorAge board with TFT display was also successfully milled, ready for soldering and testing.

MirrorAge TFT board front side
MirrorAge TFT Front: Front side of MirrorAge board before TFT display integration
MirrorAge TFT board back side
MirrorAge TFT Back: Back side of MirrorAge board before TFT display integration showing routing
Front Milling: Front-side milling of MirrorAge TFT board
Front Milling Progress: Front-side milling operation continuing
Back Milling: Back-side milling of MirrorAge TFT board
Minor trace issue on MirrorAge TFT board
Minor Trace Issue: Small trace spacing issue requiring attention
MirrorAge TFT board front after milling
Milled Front Side: Completed front side of MirrorAge TFT board
Double-sided taping for board fixturing
Fixturing: Double-sided tape used for secure board mounting during milling
Successfully milled MirrorAge TFT board
Successful Milling: MirrorAge TFT board successfully milled and ready for assembly
MirrorAge TFT board back side
Back Side: Back side of successfully milled MirrorAge TFT board
High-quality view of MirrorAge TFT board back
Completed MirrorAge TFT Board: High-quality view of the back side showing proper trace routing and component placement for the TFT-integrated MirrorAge amplifier board.

2.4 Molding and Casting

Starting from Anthony's sketch in the midterm review, 3D-printable open molds were designed to cast watch bands out of MoldStar 30. The process involved printing PLA molds, waxing for release, mixing and pouring the mold material, leveling, curing under a heat lamp, and demolding. The center section of the printed molds required cutting with an ultrasonic knife before pouring to ensure part removability. A backup TPU band was also printed in case of casting failure.

Anthony's midterm review sketch for band mold design
Design Origin: Anthony's midterm review sketch providing the foundation for band mold design
3D printed PLA molds for band casting
Printed Molds: PLA molds 3D printed for watch band casting
Mold A for band casting
Mold A: First half of the two-part mold system
Mold B for band casting
Mold B: Second half of the two-part mold system

Mold Preparation

The molds required cutting out the center section with an ultrasonic knife before waxing and casting. Wax was melted, painted onto the mold surfaces for release, and thinned as needed for proper coverage.

Mold A after cutting and waxing
Mold A Prepared: Mold A after center section removal with ultrasonic knife and wax application
Mold B after cutting and waxing
Mold B Prepared: Mold B after center section removal with ultrasonic knife and wax application
Wax Melting: Melting wax for mold release agent application
Wax Melting Process: Continued wax melting for release agent preparation
Wax Application: Painting wax release agent onto mold surfaces
Wax Thinning: Thinning wax for proper coverage and release properties
Waxed molds ready for casting
Waxed Molds Ready: Both molds properly waxed and prepared for MoldStar 30 casting operation.

Mold Mixing and Pouring

MoldStar 30 was mixed according to specifications, poured into the prepared molds, and leveled to ensure proper distribution and surface quality.

Mixing MoldStar 30 components A and B
Component Mixing: Preparing MoldStar 30 components A and B for mixing
Mixed MoldStar 30 ready for pouring
Mixed Material: MoldStar 30 fully mixed and ready for pouring
Mixing Process: Thoroughly mixing MoldStar 30 components
Stirring: Final stirring of mixed mold material
Pouring: Pouring mixed MoldStar 30 into prepared molds
Molds filled with MoldStar 30
Filled Molds: Molds filled with MoldStar 30 ready for leveling
Leveling: Leveling poured material for even distribution
Leveling Process: Continued leveling to ensure proper surface quality
Leveled molds ready for curing
Leveled Molds: Molds properly leveled and ready for heat lamp curing process.

Curing and Demolding

The filled molds were moved under a heat lamp for curing, then demolded and tested to ensure proper fit between the two band halves.

Molds under heat lamp for curing
Heat Lamp Curing: Molds positioned under heat lamp for MoldStar 30 curing
Curing process in progress
Curing Progress: MoldStar 30 curing under heat lamp
Demolding 1: Beginning the demolding process for cured band
Demolding 2: Continued demolding process
Tab Removal: Removing casting tabs from demolded band
Band Testing: Testing fit between the two cast band halves

2.5 Aging Clock Subsystem Fabrication

The TFT aging clock board was successfully assembled into the watch enclosure, demonstrating successful integration of all fabricated components including the milled PCB, TFT display, and watch casing.

Aging clock board assembled into watch enclosure
Complete Assembly: TFT aging clock board successfully assembled into the watch enclosure, demonstrating proper fit and integration of all subsystem components including the milled PCB, TFT display, watch casing, and acrylic display cover.

Day 5: Full System Integration

Final integration day focused on closing the watch subsystem as far as mechanically feasible, soldering and verifying all double-sided boards, refining molded bands, and assembling the complete MirrorAge demo with both the aging clock and grip-strength subsystems fully wired and tested.

2.1 2D Fabrication: Laser-Cut Enclosure Integration

I attempted to fully close the aging clock watch subsystem using the laser-cut acrylic top plate and printed enclosure. In practice, finite solder height and stacked components meant the acrylic pressed directly on the SDA/SCL traces; under load, the pressure ripped the I²C traces off the board even after successful end-to-end testing. For the final demo, I kept the subsystem open for reliability and prepared a backup pulse oximeter module to rework the board after the full system presentation.

Future electrical spirals will set stricter keep-out zones under fasteners and enclosure pinch points, lower component stack-up height in CAD, and route critical buses away from mechanical interfaces. The current integration still validates the fit envelope and cable-routing strategy, and will be re-closed once replacement boards and sensors are available.

Aging clock board test-fitted inside the open watch enclosure
Initial Fit Check: Aging clock board and pulse oximeter aligned inside the enclosure before closing the acrylic face.
Final mechanical fit of the aging clock board in the enclosure
Final Mechanical Fit: Tight clearances confirm the CAD was accurate, but highlight the need to account for solder thickness and wiring bends.
Backup pulse oximeter breakout board obtained for future rework
Backup Sensor: Spare MAX30102 breakout from Mariam kept to re-populate the watch board after the final demo.
Damaged SDA/SCL traces caused by enclosure pressure
Broken I²C Traces: First failure showing how enclosure pressure delaminated the SDA/SCL pads after repeated testing.
Close-up of further ripped copper traces near the acrylic edge
Trace Delamination Detail: Second damaged region reinforcing the need to keep critical buses away from mechanical constraints.
Routed cables inside the partially open watch enclosure
Cable Routing: Final cable paths for power, I²C, and sensor leads kept for future closed-enclosure re-integration.

For future iterations, see the consolidated electrical design and integration notes on the final project fabrication section and the updated Bill of Materials for enclosure and sensor stack-up choices.

2.2 3D Printing: Rigid Clips and Flexible Bands

To mount the bands inside the watch clip, I drilled precise holes and inserted inward-facing bolts that clamp into printed TPU clips. TPU provides just enough flexibility and toughness for this fastening strategy, whereas a similar approach would easily tear a silicone band. In the next spiral, the mechanics of the clip will be redesigned so the silicone band experiences distributed compression instead of point loads from metal hardware.

The integrated system view below shows how the TPU band, watch body, and electronics stack come together around the wrist, and serves as the mechanical reference for a future fully cast silicone band with embedded reinforcement.

Integrated watch subsystem with bands, enclosure, and electronics assembled
Integrated Watch Subsystem: TPU bands fastened into the watch clip with inward bolts, supporting the assembled aging clock electronics while leaving room for future silicone band integration.

2.3 Soldering and Testing Single and Double-Sided Boards

Both the aging clock and MirrorAge boards are double-sided with plated through-rivets. I followed a consistent, compact assembly order: (1) install and flare rivets, (2) solder the microcontroller, (3) place and solder passives, then (4) populate and test input/output devices. The media below document that workflow step by step.

Rivet Installation (Plated Through-Holes)

  1. Place a rivet into each via from the front side of the board.
  2. Flip the board carefully using tweezers so rivets stay seated.
  3. Use the thin flaring tool and light hammer taps to open each rivet.
  4. Follow with the thicker forming tool to fully set the rivet head.
  5. Inspect every connection to confirm clean, symmetric flares with no wobble.
Aging clock board front side with all rivets installed and formed
Aging Clock Rivets (Front): Uniformly flared rivets ready for double-sided connections.
Aging clock board back side showing completed rivets
Aging Clock Rivets (Back): Back-side view confirming full mechanical capture.
MirrorAge full-size board front with all rivets in place
MirrorAge Rivets (Front): Large board variant with through-rivets installed.
MirrorAge full-size board back with rivets flared
MirrorAge Rivets (Back): Back-side confirmation of robust mechanical connections.
Small MirrorAge variant board with completed front-side rivets
Compact MirrorAge Board (Front): Small-format board variant using the same rivet process.
Back side of small MirrorAge board with completed rivets
Compact MirrorAge Board (Back): Double-sided connectivity established across all through-holes.
Placing Rivets: Using tweezers to drop rivets into each via before flipping the board.
Placing Rivets (Detail): Close-up sequence confirming consistent seating depth.
Flipping the Board: Using tweezers and slow motion to flip the riveted board without losing alignment.
Flipping (Alternate Angle): Second view confirming stable fixturing during the flip.
Thin Tool Flaring: First hammering pass to open each rivet with the thin mandrel.
Thin Tool Flaring (Detail): Close-up of controlled, low-force taps to avoid pad damage.
Thick Tool Forming: Second hammering pass with the thicker tool to fully seat and form the rivet heads.
Thick Tool Forming (Detail): Ensuring each rivet is fully expanded without deforming the board.
Rivet Quality Check: Visual and mechanical inspection of all rivets before continuing with assembly.

Component Placement and Compact Soldering

After through-connection, I placed the microcontroller and passives as flat as possible to preserve headroom inside the enclosure. Headers were soldered last, from both the top and side, to keep cable strain away from delicate pads.

Front-side component placement for aging clock board
Aging Clock Placement (Front): Microcontroller, MAX30102, and passives packed tightly while respecting keep-outs.
Back-side component placement for aging clock board
Aging Clock Placement (Back): Back-side routing and decoupling network tucked between rivets.
MirrorAge board front-side component placement
MirrorAge Placement (Front): Amplifier, HX711, and connectors arranged around the TFT footprint.
MirrorAge board back-side routing and components
MirrorAge Placement (Back): Back-side passives and routing for clean separation of analog and digital paths.
Close-up of dense double-sided soldering on the aging clock board
Compact Double-Sided Soldering: Dense layout executed with controlled solder volume to preserve enclosure clearance.
Board with pin headers soldered in preparation for system wiring
Header Soldering: Low-profile headers added last to route power, I²C, and display signals.
Flat Soldering: Tacking components flat to the board before fully wicking solder for mechanical robustness.
Soldering Straight Headers: Step-by-step soldering of through-hole headers with even wetting on both sides.
Header Row Completion: Finishing the full header row while maintaining alignment for easy connector insertion.
Sideways Header Soldering: Right-angle headers soldered from the side to keep cable exits low-profile.
Sideways Header Reinforcement: Final pass adding solder fillets for mechanical strength.
Soldering Passives: Placing and soldering resistors, capacitors, and pull-ups around the microcontroller and sensors.
Passives (Detail): Close-up of tip control to avoid tombstoning small components.
Final Passive Sweep: Last inspection and touch-up of the passive network before functional testing.

Taped Microcontroller Soldering Technique

To keep the XIAO footprint perfectly flat over the rivets, I used Kapton tape as a temporary stencil: the tape masked exposed copper around the footprint so I could drag-solder the castellated edges without flooding nearby vias. Once the joints were complete, the tape peeled away cleanly, leaving the board ready for final inspection.

Board with microcontroller footprint masked using Kapton tape
Taped Footprint (Before): Kapton masking applied to protect surrounding copper while soldering the XIAO module.
Cleaned microcontroller footprint after removing Kapton tape
Taped Footprint (After): Clean pads and well-formed joints once the tape is peeled away.
Cutting the Mask: Trimming Kapton tape to expose only the castellated pads.
Microcontroller soldered flat above rivets using the tape-assisted method
Flat Above Rivets: Castellated edges soldered flat over rivets without bridging.
Aging clock board fully populated and soldered
Completed Aging Clock Board: All components soldered and ready for subsystem testing.
Detail of a small PCB section dedicated to power routing
Power Routing Detail: Compact power distribution region that simplifies future wiring changes.
MirrorAge board fully soldered, front view
Soldered MirrorAge Board (Front): Front-side view with amplifier, connectors, and TFT interface populated.
MirrorAge board fully soldered, back view
Soldered MirrorAge Board (Back): Clean back-side routing with no visible shorts or bridges.

Serial Bring-Up: Sensor-by-Sensor Testing

After soldering, I brought each sensor up sequentially to isolate any issues. The pulse oximeter, accelerometer, OLED, and TFT were each verified individually over serial before enabling the full integrated sketch.

Pulse oximeter setup and testing
Pulse Oximeter Bring-Up: MAX30102 readings verified after soldering, with I²C scan confirming address 0x57 at 16:28:56.
Pulse oximeter serial readings
Pulse Oximeter Readings: Serial output showing MAX30102 sensor data validation during bring-up testing.
Photo of the aging clock board showing accelerometer working
Accelerometer Bring-Up: First successful accelerometer readings confirmed on the aging clock board, with I²C scan reporting 0x57 (MAX30102) and 0x68 (IMU).
Pulse oximeter and accelerometer integration
Accelerometer Stability: Repeat scan at 17:07:55.805 confirms stable 0x57/0x68 responses and consistent orientation mapping.
OLED display showing text output from the aging clock firmware
OLED Verification: Base OLED display tested with I²C scan showing OLED 0x3C alongside 0x57 and 0x68 at 18:30:58, before migrating to TFT-only operation.
Pulse oximeter, accelerometer, and OLED integration
Display Stack Bring-Up: OLED and TFT displays confirmed working simultaneously during integration testing.
Both OLED and TFT displays working together on the integrated system Full sensor stack integration with pulse oximeter, accelerometer, OLED, and TFT
Display Stack Integration and Complete Sensor Stack: OLED and TFT displays confirmed working simultaneously during integration testing. All sensors and displays integrated and verified working together.
Grip strength sensor testing Real-time signal processing visualization
Grip Strength Testing and Real-Time Signal Processing: Load cell and grip sensor verification during system integration. Live sensor data stream validation and signal analysis.

All boards passed short-circuit checks and per-sensor serial validation. Remaining electrical risks are limited to load cell hardware quality and long-term connector strain, which are documented for post-demo spirals.

2.4 Molding and Casting

The cast bands are mechanically promising but still need finishing. The edges require additional trimming and sanding, and one edge showed an incomplete fill due to insufficient waxing of the mold. Compared to the TPU prints, the casting material has better compliance and skin feel, and will be the preferred long-term solution once the fastening geometry is iterated.

For this week, I used the printed TPU bands for reliability, while documenting the cast band behavior as a future spiral that aligns with the existing mold designs and material choices.

Integrated watch system showing how cast bands will eventually replace TPU bands
Band Integration Context: The current TPU bands provide a working reference geometry for the cast silicone bands that will follow the same routing and attachment points.

2.5 Aging Clock Subsystem Fabrication

The aging clock subsystem was finalized by cutting and aligning the pulse oximeter opening so the sensor makes direct skin contact while the watch is worn. That opening simultaneously sets the board position inside the enclosure, constraining the stack according to the system-integration CAD.

With the TFT watch board, sensors, and acrylic window all integrated, the subsystem mechanically mirrors the final form factor even though the top remains open for this demo to protect the repaired traces.

Aging clock subsystem assembled with aligned sensor opening
Skin Contact Opening: Precisely placed cutout ensures the pulse oximeter sits flush against the skin while anchoring the internal PCB stack.

2.6 MirrorAge Subsystem Integration

The grip-strength electronics from Week 12 were mounted on the calibrated working load cell and integrated with the new MirrorAge electronics. Wires from the load cell and amplifier are routed along the structure and strain relieved with a moderate amount of glue to balance robustness with serviceability. The boards sit in their dedicated pockets according to the system-integration CAD, keeping the mechanical and electrical reference frames aligned.

Integrated Grip-Strength Subsystem: Working load cell, amplifier, and electronics mounted and wired, ready to stream grip-force data into the final system.

2.7 Full System Integration and Demo Readiness

With both the aging clock and grip-strength subsystems assembled, I brought the entire MirrorAge demo together on the tensegrity table. The videos below show the system running after final debugging, including sensor readouts and synchronized display behavior across the boards.

Integrated System (Pass 1): First full run after fixing wiring and I²C issues, confirming both subsystems operate together.
Integrated System (Pass 2): Second trial demonstrating stable readings and display updates over time.
Integrated System (Pass 3): Longer run verifying that no intermittent faults appear under repeated use.
Legacy Integrated Run: Earlier integrated test preserved to show progress from initial to final wiring.
Integrated System (Earlier Trial 1): Additional integrated run with a slightly earlier firmware revision.
Integrated System (Earlier Trial 2): View of the system from a different angle showing board placement on the demo table.
Fully Integrated Working System: Final demo-ready configuration with both subsystems powered, calibrated, and running together.
Packed demo box containing the full MirrorAge system ready for transport
Demo Transport: Final packed configuration for safely transporting the full integrated system to the tensegrity demo table.

Day 6: Final Project Masterpiece

Final presentation demonstration of the complete MirrorAge system, showcasing the integrated aging clock and grip-strength subsystems working together in real-time. View final project demo → · See where all HTMAA questions are answered →

This final presentation video demonstrates the complete MirrorAge system in action, featuring both the aging clock watch subsystem and the grip-strength measurement subsystem operating together. The demo showcases real-time sensor readings, synchronized display updates, and the full integration of mechanical, electrical, and software components developed throughout the semester.

Final Presentation Demo: Complete MirrorAge system demonstration showing integrated aging clock and grip-strength subsystems operating together in real-time.
Watch on YouTube

1 Minute Video and 1 Slide Summary

Condensed 1-minute video and 1 slide summary showcasing key features and functionality of aging clock device system.

1 Minute Video: Condensed demonstration of the MirrorAge system highlighting the integrated aging clock and grip-strength subsystems. AI assistance details →
Summary slide for MirrorAge final project
Summary Slide: Final project summary slide highlighting key achievements and system overview. AI assistance details →

Design Files

Comprehensive table of all design files used in the system integration, organized by category with descriptions and links to their usage locations.

📁 Fusion 360 Files: All Fusion 360 design files are available in the HTMA Fusion team directory under HTMA/2025/EECS/Saleem, organized by the same weeks as the website structure.

File Name Description Category Used In Download
PCB Design Files
agingclock_tft.brd Aging clock watch board with TFT display integration (pulse oximeter, accelerometer, camera) PCB Design Day 2, Day 4 Download
mirrorage.brd Base MirrorAge amplifier board with load cell interface (HX711) and real-time audio amplifier PCB Design Day 2, Day 3 Download
mirrorage_tft.brd MirrorAge amplifier board with TFT display integration (2.4" ILI9341) PCB Design Day 2, Day 3, Day 4 Download
design_xiao.kicad_pcb KiCad PCB design for XIAO ESP32-S3 base board (non-touch version) PCB Design Day 2 Download
design_xiao.kicad_pcb (touch) KiCad PCB design for XIAO ESP32-S3 with touchscreen support PCB Design Day 2 Download
QPAD21.kicad_pcb KiCad PCB design for QPAD21 board (reference design) PCB Design Reference Download
design_micro.kicad_pcb KiCad PCB design for microcontroller board (reference) PCB Design Reference Download
3D Design Files
WatchBody.3mf Main watch body casing for aging clock subsystem 3D Model Day 2, Day 3 Download
Dock.3mf Dock component for board mounting and electrical connection 3D Model Day 2, Day 3 Download
Display Glass.3mf Display cover component for watch face protection 3D Model Day 2 Download
Bands.3mf Watch band components for wearable attachment 3D Model Day 2, Day 3 Download
band-a-scaled.3mf Scaled band component A for casting molds 3D Model Day 4 Download
band-b-scaled.3mf Scaled band component B for casting molds 3D Model Day 4 Download
watchband_clip.3mf Watch band clip component for secure attachment 3D Model Day 3, Day 4 Download
watch v2.5-whole v1.3mf Complete watch assembly model version 2.5 3D Model Day 1 Download
band-a-mold.3mf 3D printable mold A for band casting 3D Model Day 4 Download
band-b-mold.3mf 3D printable mold B for band casting 3D Model Day 4 Download
band-a-mold-print-10p.3mf Optimized mold A print file with 10% infill 3D Model Day 4 Download
band-b-mold-print-10p.3mf Optimized mold B print file with 10% infill 3D Model Day 4 Download
2D Design Files
square_2_final.svg Final laser cutting design for display cover (1.35mm acrylic) 2D Design Day 4 Download
square_2.svg Intermediate laser cutting design iteration 2D Design Day 2 Download
square.svg Initial laser cutting design for display cover 2D Design Day 2 Download
square_2.dxf DXF format for laser cutting (intermediate iteration) 2D Design Day 2 Download
square.dxf DXF format for laser cutting (initial design) 2D Design Day 2 Download
Code Files
blink_ESP32S3.ino Basic blink test code for ESP32-S3 XIAO Arduino Code Testing Download
test_display_ESP32S3.ino TFT display test code for ESP32-S3 XIAO Arduino Code Testing Download
test_touch_ESP32S3.ino Touchscreen test code for ESP32-S3 XIAO Arduino Code Testing Download
test_serial_ESP32S3.ino Serial communication test code for ESP32-S3 XIAO Arduino Code Testing Download
Reference Design Files
design_xiao.step STEP file for XIAO ESP32-S3 mechanical reference 3D Model Reference Download
Seeed Studio XIAO-ESP32-S3-Sense.step STEP file for Seeed Studio XIAO ESP32-S3 Sense board 3D Model Reference Download
TFT LCD 2.4 inch ILI9341 touch.step STEP file for 2.4" ILI9341 TFT display with touch 3D Model Reference Download
SSD1306_OLED_Display(128x64).step STEP file for SSD1306 OLED display reference 3D Model Reference Download
MPU6050.stp STEP file for MPU6050 accelerometer reference 3D Model Reference Download
3006 MAX98357.step STEP file for MAX98357A amplifier reference 3D Model Reference Download
max98357a adafruit.SLDPRT SolidWorks part file for MAX98357A amplifier reference 3D Model Reference Download
apple-watch-se-2nd-gen-band-adapter20251028-1-u4zeat.zip Apple Watch band adapter design files (ZIP archive) 3D Model Reference Download

The watch casing and band geometries used in this project were adapted and scaled 2:1 from the open-source MutantW V2 ESP32-S3 smartwatch design. Original reference designs and documentation can be found in the MutantW V2 GitLab project, MutantW V2 Instructables build guide, and Arduino /r/arduino discussion thread.

Bill of Materials (MirrorAge System)

Consolidated bill of materials for the integrated MirrorAge system used in this Week 14 system-integration build. This table mirrors the final project Bill of Materials and is repeated here so readers can cross-reference parts directly from the integration workflows.

Category Part Qty Approx. Unit Cost (USD) Line Cost (USD) Used In
Electronics
Microcontroller Seeed XIAO ESP32S3 / ESP32S3 Sense 4 $9.00 $36.00 ReactionAge base, camera subsystem, aging clock watch, MirrorAge grip board (Week 8, Week 14)
Optical Sensor MAX30102 pulse oximeter module 2 $12.00 $24.00 Aging clock watch and backup module (Week 12, Week 14)
IMU MPU6050 / BHI260 IMU 2 $6.00 $12.00 Aging clock accelerometer and wearable IMU (Week 12, Week 14)
Load Cell CZL601AC 50 kg load cell 1 $18.00 $18.00 Grip-strength rig (Week 12, Week 14)
ADC HX711 load-cell amplifier 2 $3.00 $6.00 Grip board base + TFT MirrorAge board (Week 12, Week 14)
Amplifier MAX98357A I²S amplifier + speaker 1 $9.00 $9.00 MirrorAge audio board (Week 10, Week 14)
Display 128×64 SSD1306 OLED 2 $5.00 $10.00 ReactionAge UI + early watch prototypes (Week 12, Week 14)
Display 1.8″ ST7735 TFT 1 $8.00 $8.00 Aging clock watch board (Week 14)
Display 2.4″ ILI9341 TFT 1 $12.00 $12.00 MirrorAge grip-strength board (Week 14)
Camera OV2640 camera (SenseCraft stack) 1 $10.00 $10.00 Camera subsystem and EdgeAI demos (Week 8, Final camera section)
Power LiPo cells, regulators, passives, headers, cabling Assorted ~$1.00–$3.00 $45.00 (bundle) All subsystems (ReactionAge, aging clock, MirrorAge, camera)
Mechanical & Fabrication Materials
3D Printing PLA+/PETG filament (grip, docks, cases) ~1 kg $25.00/kg $25.00 ReactionAge enclosure, grip-strength base, watch cases (Week 3, Week 10, Week 14)
3D Printing TPU filament (bands, clips) ~0.5 kg $30.00/kg $15.00 TPU bands and band clips (Week 14 Day 3, Day 5)
Laser Cutting Cardboard + 4 mm Baltic birch sheets Assorted $3.00–$5.00/sheet $30.00 (bundle) Origami mirror frame, acrylic watch windows, demo table fixtures (Week 1, Week 14)
Molding & Casting Mold Star 30 silicone + Drystone 1 kit $42.00 $42.00 Grip-strength molds, band molds, structural ribs (Week 9, Week 14)
Fasteners M2/M3 hardware, heat-set inserts, misc. screws Assorted ~$0.10–$0.30 ea. $20.00 (bundle) All mechanical assemblies (watch, grip rig, camera mount, demo table)
Estimated Total Project Cost Electronics ≈ $190 · Mechanical & materials ≈ $130 · Total ≈ $320 (excluding lab-provided consumables and reused stock).

For the narrative, project-wide context, see the final project BOM and the per-week line items in the weekly documentation (for example the ReactionAge BOM CSV in Week 2).

Critical Path Analysis

Project management view of the integration schedule, showing task dependencies, critical milestones, and current progress status.

Critical Path Tasks

Phase 1: Design & Documentation COMPLETED
  • CAD model consolidation and system integration design ✓
  • PCB design: combine OLED/accelerometer with pulse oximeter ✓
  • Demo table integration design with subsystem placement ✓
  • PCB design: speaker board with realtime amplifier and TFT (MirrorAge board) ✓
  • PCB design: TFT-integrated aging clock board ✓
  • Band mold design ✓
  • 3D printable cases for board mounting ✓
  • TFT display wiring documentation and integration methods ✓
  • System schematic documentation (wired and wireless) ✓
  • Website documentation updates (Day 1, Day 2, Day 3, Day 4) ✓
Phase 2: Fabrication COMPLETED
  • PCB milling: aging clock board milled (with corrections and remilling) ✓
  • PCB milling: MirrorAge board base version (remilled after isolation fix) ✓
  • PCB milling: MirrorAge TFT board ✓
  • PCB milling: TFT-integrated aging clock board (corrected and remilled) ✓
  • Component soldering (single- and double-sided boards) ✓
  • Band mold printing and casting ✓
  • 3D printing of board cases (casing, dock, bands, TPU clips) ✓
  • 2D subtractive: laser-cut acrylic display (thinner 1.35mm version) ✓
  • Aging clock subsystem assembly (board, TFT, casing integration) ✓
  • Physical integration refinements: extra mounting holes, final power-routing harnesses, mirror film application to screen ✓
Phase 3: Integration & Programming COMPLETED
  • Board-level firmware integration for aging clock and MirrorAge boards ✓
  • System wiring and I²C bring-up for integrated demo ✓
  • WiFi / MQTT network coordination between boards ✓
  • Server-level code development and data logging pipelines ✓
Phase 4: Testing & Documentation COMPLETED
  • Integrated system testing and validation on tensegrity demo table ✓
  • System evaluation and consolidated cost documentation (this page) ✓
  • Last documentation review and polishing ✓
Optional / Presentation Extras NICE TO HAVE
  • One-minute video production (conception, construction, operation)
  • Final summary slide refresh for demo day

Current Status

Completed:

Subsystem testing and validation, CAD model consolidation, demo table integration design, aging clock PCB design (accelerometer/camera + pulse oximeter), TFT-integrated aging clock board design, MirrorAge board design (base and TFT versions), 3D printing of mechanical components (casing with organic support, dock with brim, TPU bands and clips), laser-cut acrylic display (1.35mm thin version), aging clock board milling (with corrections and remilling), MirrorAge board milling (base and TFT versions), band mold design and casting (MoldStar 30), TFT display wiring documentation with touchscreen integration methods, aging clock subsystem assembly, Day 4 fabrication integration documentation

In Progress:

Refining physical integration (extra mounting, mirror film), extending firmware from working demo to networked IC pipeline, and documenting data-integration methods (serial, WiFi, MQTT) for future spirals.

Upcoming:

WiFi/MQTT network setup, final IC scoring integration, one-minute video, and last presentation/documentation touches.

Buffer Days (Saturday & Sunday)

Tasks that cannot be completed during scheduled weekdays will be shifted to Saturday and Sunday buffer days. This ensures the critical path remains on schedule while allowing flexibility for unexpected delays or additional refinement work.

Data Integration Methods in Spiral Development

Progressive development approach for integrating sensor data streams from multiple subsystems, starting with simple serial communication and evolving to wireless network-based architectures.

Method 1: Serial Communication (Easiest)

Direct serial communication through USB cable from computer to microcontroller, using PySerial to stream data. This provides the simplest initial integration path for rapid prototyping and debugging.

Implementation:
  • USB cable connection from computer to ESP32-S3 microcontroller
  • PySerial library for Python-based data streaming
  • Arduino Serial functions for microcontroller-side communication

Method 2: WiFi Client Architecture (Second Easiest)

Configure all microcontrollers as WiFi clients that stream data to a flash web server. This enables wireless communication while maintaining a centralized data aggregation point.

Implementation:
  • All ESP32-S3 boards configured as WiFi clients on the same network
  • Central web server (initially laptop-hosted) receives data streams
  • WiFiClient::write() functions for data transmission

Method 3: MQTT Protocol (Advanced)

Message Queuing Telemetry Transport (MQTT) provides a lightweight, publish-subscribe messaging protocol ideal for IoT device communication. This approach enables decentralized data exchange between all MirrorAge subsystems, allowing each board to publish sensor data and subscribe to relevant topics for coordinated system behavior.

Server Hosting Strategy:

Initial development and testing will use a laptop-hosted MQTT broker. In a later development spiral, the server will be migrated to a dedicated Raspberry Pi Zero or Raspberry Pi 5 for standalone operation and improved system portability. Paho MQTT library has been successfully tested for ESP32-S3 implementation.

Week 14 System Integration Code

The core firmware used during Week 14 for the aging clock watch and grip-strength subsystem is available below as both .ino source files and downloadable .zip archives. These sketches currently run over simple serial/I²C links and will be extended in future spirals to stream data over WiFi/MQTT to the multimodal IC pipeline. The XIAO boards and TFT displays also include SD card support for local backup storage once that code path is integrated.

Aging Clock · Base Sketch

aging_clock.ino initializes the MAX30102 pulse oximeter and IMU on the I²C bus, reads heart-rate and motion data, and prints structured serial lines for debugging. The main loop continuously:

  • checks for new sensor samples (IR, RED, BPM, acceleration)
  • updates rolling averages / thresholds for stability
  • writes comma-separated values to Serial for logging or GUI visualization

Download: view aging_clock.ino · download aging_clock.zip

Aging Clock · OLED Version

aging_clock_oled.ino builds on the base sketch by adding an SSD1306 OLED UI. Pseudocode:

  • setup: init I²C, MAX30102, IMU, and SSD1306 display
  • loop: read sensor values, compute BPM/SpO₂ estimate, and render numeric values + simple icons on the OLED
  • send the same values over Serial for logging

Download: view aging_clock_oled.ino · download aging_clock_oled.zip

Aging Clock · TFT Version

aging_clock_tft.ino migrates the watch UI to a 1.8″ ST7735 TFT. The sketch:

  • configures SPI pins according to the TFT wiring table in Day 2/3
  • initializes the TFT with a dark theme and large fonts
  • reads BPM/SpO₂ and motion, then draws large, legible numbers and status icons on screen

Download: view aging_clock_tft.ino · download aging_clock_tft.zip

Aging Clock · TFT (Slow-Refresh Debug)

aging_clock_tft_slow.ino is a debug variant that intentionally slows down screen refresh to make timing and flicker issues visible. Conceptually:

  • same sensor reads and TFT layout as the fast version
  • adds deliberate delays or only redraws at fixed intervals (e.g. once per second)
  • prints extra timing information over Serial to tune update rates

Download: view aging_clock_tft_slow.ino · download aging_clock_tft_slow.zip

MirrorAge Grip Strength · Load Cell GUI

loadcell_gui.ino drives the CZL601AC + HX711 grip-strength subsystem and streams data to a serial/GUI plot. High-level flow:

  • calibrate HX711 with tare and known weights
  • in the loop, read raw counts, apply calibration to get force
  • print values in a GUI-friendly format (e.g. CSV or JSON lines) for plotting or web visualizations

Download: view loadcell_gui.ino · download loadcell_gui.zip

Additional sketches (e.g., WiFi/MQTT clients, SD-card logging for the XIAO ESP32S3 and TFT shields) will be integrated in a future spiral once the serial and WiFi baselines are fully stabilized.

Resources and Documentation

Spiral Development Approach

Development will progress through these methods in order of complexity, starting with serial communication for rapid prototyping, then moving to WiFi client architecture for wireless operation, and finally implementing MQTT for advanced decentralized communication. Each subsystem board (pulse oximeter, OLED/accelerometer, speaker/amplifier, load cell) will be integrated progressively, enabling:

  • Incremental complexity management and early validation
  • Decoupled communication between subsystems
  • Real-time data streaming from multiple sensors
  • Scalable architecture for adding new sensor modules
  • Flexible server deployment (laptop → Raspberry Pi migration path)

Reflections & Learnings

Reflections and key learnings from the final project integration week.

Key Points

  • System integration only works when mechanical envelopes, electrical robustness, and firmware are designed together and validated in short spirals.
  • Day-by-day planning and a clearly tracked critical path made it possible to finish fabrication, integration, and documentation on time.
  • Modular PCB and enclosure design allowed me to remill, resolder, and swap boards (including backup pulse oximeter modules) without restarting the whole system.
  • Careful documentation of failures—like ripped SDA/SCL traces, noisy load cells, and serial upload errors—directly improved the final wiring, strain relief, and bring-up process.
  • Collaborators, late-night debugging, and AI-assisted writing were all part of getting from a set of subsystems to a fully integrated, demo-ready MirrorAge system.

Contributions

Acknowledgments for contributions and collaborations during the final project week.

  • Anthony Pennes — for helping at every step of the way, including patient late-night debugging sessions and a major final-hour assist at around 2 a.m. that kept the integrated demo on track.
  • Quentin — for jumping in whenever he had time, suggesting the bolt-based fastening approach for the bands, and providing steady encouragement throughout the integration week.
  • Mariam — for offering a replacement pulse oximeter in the final hour of debugging after my backup was lost and the board broke during integration, with a replacement order already placed and arriving by Tuesday of this week.

Ethical AI Use

Documentation of AI-assisted tasks and tools used during the final project integration week.

📋 General Guidelines: See General Commands for Cursor on the homepage for standard guidelines and commands used consistently throughout documentation development.

Cursor · Project Plan & Weekly Schedule (Day 0)

Comprehensive Cursor AI assistance for outlining the project plan and weekly schedule, including documentation structure, content organization, systematic updates across all week pages and the final project page, media integration, and summary generation workflows.

📄 View Transcript 💾 Download Markdown

Cursor · Week 14 & Final Project Documentation

End-of-semester Cursor AI assistance for Week 14 integration and finalproject.html updates, including sensor bring-up captions, molding/casting cross-links, Answering Questions anchors, and Ethical AI use summaries. The full conversation is preserved as a markdown transcript and a styled HTML view generated with scripts/md_to_html_converter.py.

📄 View Transcript 💾 Download Markdown

Cursor · Final Project and Week 14 HTML Images

Cursor AI assistance for updating finalproject.html and week14.html, including adding the summary slide side-by-side with the one-minute video, and reorganizing the Serial Bring-Up sensor testing section with new image order and combined captions. The full conversation is preserved as a markdown transcript and a styled HTML view generated with scripts/md_to_html_converter.py.

📄 View Transcript 💾 Download Markdown

Cursor · MutantW V2 Smartwatch Resources

Cursor AI assistance specifically for gathering and documenting open-source MutantW V2 ESP32-S3 smartwatch resources, including links to the GitLab project, Instructables guide, and Arduino community discussion. This session supported the ethical attribution of the 2:1 scaled watch casing and band designs used in the Week 14 3D printing and design-files sections. The full conversation is archived as a markdown transcript and a styled HTML page generated with scripts/md_to_html_converter.py.

📄 View Transcript 💾 Download Markdown

Cursor · Project Integration Updates (Day 1)

Cursor AI assistance for Week 14 Day 1 project integration updates, including design integration documentation and initial system integration planning.

📄 View Transcript 💾 Download Markdown

Cursor · Project Integration Updates (Day 2)

Cursor AI assistance for Week 14 project integration updates, including Day 2 electrical and mechanical integration documentation, data integration methods refinement, and critical path analysis updates.

📄 View Transcript 💾 Download Markdown

Cursor · Electrical Integration and Fabrication (Day 3)

Cursor AI assistance for Week 14 Day 3 electrical integration and fabrication documentation, including TFT display wiring documentation, board design updates, fabrication integration methods, and Day 3 content updates.

📄 View Transcript 💾 Download Markdown

Cursor · Week 14 Project Updates (Day 4)

Cursor AI assistance for Week 14 project integration updates, including Day 4 electrical and mechanical integration documentation, TFT display wiring documentation, board design updates, fabrication integration methods, design files table creation, and comprehensive Day 4 content updates.

📄 View Transcript 💾 Download Markdown

Cursor · Final Project Documentation and Integration (Day 5)

Cursor AI assistance for final MirrorAge documentation and system integration, including Day 5 full-system integration write-up, Bill of Materials synchronization between Week 14 and the final project page, critical path updates, and code documentation for the aging clock and load-cell subsystems.

📄 View Transcript 💾 Download Markdown

Cursor · System Integration Day 5 & 6

Cursor AI assistance for Day 5 and Day 6 system integration documentation, final system assembly, and presentation preparation.

📄 View Transcript 💾 Download Markdown

ChatGPT · Code Development

ChatGPT assistance for firmware development and debugging of the aging clock and load cell subsystems, including sensor integration, display drivers, and data processing algorithms.

Aging Clock Code Development

ChatGPT assistance for developing the aging clock firmware, including MAX30102 pulse oximeter integration, MPU6050 accelerometer readings, TFT display drivers, and sensor data processing algorithms.

💬 View Conversation

Load Cell Code Development

ChatGPT assistance for developing the load cell firmware, including HX711 amplifier integration, calibration routines, force measurement algorithms, and TFT display visualization for grip-strength data.

💬 View Conversation

ChatGPT · Video Planning

ChatGPT assistance for planning the one-minute video demonstration of the MirrorAge system, including script development, key feature selection, narrative structure, and video production guidelines to showcase the integrated aging clock and grip-strength subsystems effectively.

🔗 View ChatGPT Discussion

ChatGPT · One Slide Summary Development

ChatGPT assistance for developing the one-slide summary based on email exchange with Prof. Vadim Gladyshev, including distilling key project achievements, technical highlights, and system integration outcomes into a concise visual summary format for the final project presentation.

🔗 View ChatGPT Discussion