Devlog #1.5(cus i need to go eat): Display Upgrade & 5-Second Safety Hold
Overview
In this update for Teal Tracker, we made a major visual upgrade by ditching the old display setup for a clean OLED layout, fixed input responsiveness, and made accidental resets impossible with a new hold gesture.
Key Updates & Hardware Changes
-
Hardware Migration (7-Segment Removal):
- Removed: Legacy 12-pin 4-digit 7-segment display module to free up I/O pins and eliminate complex multiplexing routines.
- Added: I2C 0.96” SSD1306 OLED Display (128x64), streamlining control down to just 2 communication pins (SDA/SCL) and enabling a clean graphical UI.
-
Fixed Input Lag & Missing Taps:
- Stripped out blocking
delay()calls in the button loop in favor of non-blockingmillis()timing logic. - Inputs and potentiometer readings are now instantaneous without MCU freezes.
- Stripped out blocking
-
5-Second Hold-to-Reset Requirement:
- Replaced the previous double-tap method on Pin 4 with a strict 5-second hold.
- Eliminates accidental EEPROM resets while preserving a simple single-tap for viewing or configuring savings goals.
-
Live Progress & Countdown UI:
- Built a custom hold screen on the OLED that displays a real-time countdown (3… 2… 1…) alongside a dynamic progress bar while holding Pin 4.
Current Hardware Configuration
Pin / Component Interface Function 0.96” SSD1306 OLED I2C (A4/A5) Graphical UI, animations, and live feedback Pin 2 (BTN_CONFIRM)
Digital Input
Single tap to apply value; Hold (>500ms) for auto-repeat
Pin 4 (BTN_SECOND)
Digital Input
Tap (<5s) = Goal Screen; Hold (>=5s) = Reset Budget
Pin A0 (POT_PIN)
Analog Input
Dynamic preset selector (-$50 to +$50) with wake-on-move
Pin 3 (BUZZER_PIN)
PWM Output
Frequency-based audio cues
Next Steps
- Add dynamic pitch variation on the buzzer based on whether money is added or subtracted.
- Create a goal-reached celebration screen on the OLED.
- Look into deep-sleep modes for better battery life.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.