A 'Retro' ESP32 Based Smart watch using an HPDL-1414 and an .91'' OLED
42x35mm
--> BE SURE TO GET THE MOST UP TO DATE FILES AS THERE ARE SEVERAL ITERATIONS
--> TEST MEMS MIC / IMU
Add personal Assistant with Mic using: ESP32-I2S WITH TENSORFLOW MICRO
Watch based around the ESP32 and HPDL1414.
Update time with NTP in known WiFi Areas (SSIDS/Passwords saved in SPIFFS JSON file)
DS1307 Real Time Module
Temperature and Humidity readings
Battery Charging and monitoring
MPU-950 Gyroscope/Accelerometer/Magenetometer (Compass)
MEMS Analog Microphone (to be used with TF-Lite Speech Recognition for wake words / personal assistant)
I2C/UART/SPI modular breakout for future sensors/ICs
Chrome Dino Game
Space Invaders Game
Update WiFi networks and system time over a hosted website incase there are no known networks around and time is off.
ESP32 Wrover-B (4 or 8Mb)
HPDL-1414 Segmented Display
0.91'' OLED Display
DS1307 RTC Module
SHT20 Temperature/Humidity Sensor
MPU-9250 Gyroscope/Accelerometer/Magnetometer
Tactile Switches (3 with 2 optional)
Various SMD Resistors/Capacitors (0603 Resistors)
32.768kHz ±20ppm Crystal
TP4056
DW01A
FS8205A
HX4004 DC-DC Step up (LDO)
XC6203P332PR DC-DC Regulator (LDO)
GMA3722H11-F42 MEMS Analog Microphone
OPA344NA Analog Op Amp
TYPE-C-31-M-17 USB-C Connector (6-Pin Power Only)
3.7v 320mAh/420mAh LiPo Battery
ZH1.5 SMD Right Angle Connectors (4 and 2 pin female)
right angle tactile switch
Tactile Buttons
USB-C Power connector
PCB (from Gerber File attached)
M3x4mm Screws (X6)
10mm Brass Standoffs (X3)
3D-Printed Case (STL file)
Watch Strap (20mm Thick)
External FTDI/CP2102 USB-TTL converter
The ESP32 holds a SPIFFS filesystem containing the following files:
--> index.html (should erase when BLE works)
--> userConf.json (known WiFi/Passwords) user edit on upload/web interface
--> sysTime.json (last updated time) user edit on upload/web interface
--> highScores.json (high score info for games *UNTESTED*)
The ESP32 spends most of its time in deep sleep, unless woken from the UI buttons
Upon wakeup the ESP32 will update the OLED with month, day of week, battery level, temperature, and humidity.
The HPDL-1414 is used for time in HH:MM format. "1259" = 12:59
There is also a timer on the watch so that it cannot be awake for too long (always default to sleep)
The Chrome 404 Dino Game (made for this watch / screen / UI)
Space Invaders (made for this watch / screen / UI)
check out the Manufacturing Files folder for these!
--> Gerber_PCB_esp32SmartWatch_2.zip 2-Layer Board **OLD VERSION**
--> Gerber_PCB_esp32SmartWatch_3.zip 4-Layer Board **MOST CURRENT**
I got most normal components at LCSC (excluding those listed below)
PCB made at JLCPCB
--> I soldered on the components but I'm sure the SMT Assembly is an option given you match up the BOM
LCSC Components
JLCPCB Pcb Manufacturing
THINGS NOT BOUGHT FROM LCSC:
3.7v 320mAh LiPo (Amazon)
OR
3.7 420mAh Lipo (Adafruit)
0.91'' OLED Display (Amazon)
20mm Leather Watch Strap (Amazon)
Brass Standoffs (Amazon)
M3 x4mm black Screws (Amazon)
EBAY HPDL-1414 (not guaranteed)
EBAY AND AMAZON LINKS/PRODUCTS EXPIRE, YOU'LL NEED TO SEARCH FOR HPDL-1414 WHEREVER YOU NORMALLY SOURCE ODD COMPONENTS
Get a stencil <br>
Make an addon with the modular breakouts (I2C/ UART)
--> Raspberry pi 0 (with something cool)
--> SD Card (SPI in Software, would need both ports)
--> Geiger counter
--> C02 Monitor
--> Smart home / MQTT control (would need a UI sub directory added)
--> Connect LoRa and control the smart farm! (this would take awhile)
Waterproof case (hasunCast/PCB potting/ Resin)
Glass over screens
smaller PCB (if possible)
bigger battery (needs to fit inside the case!)
move buttons to bottom layer / change to right angled tactile buttons
Use external RTC (DS3231 /C9866) OR (PCF8563M / C434478)
(part / LCSC)
Android Application (web UI takes place of this for now)
Use BLE Server implementation (commented out at bottom of code) -->
accepts JSON data and updates internal filesystem
Web Server uses same functions and tested, BLE with JSON is UNTESTED