This guide walks you through building your own mini smart watch using accessible components and beginner-friendly tools. You’ll learn circuit assembly, programming, and case design to create a functional wearable device.
Key Takeaways
- Choose the right microcontroller: An ESP32 or Arduino Nano 33 BLE is ideal for compact, low-power smart watch builds.
- Use a small OLED display: A 0.96-inch I2C OLED screen provides clear visuals while saving space and power.
- Power with a LiPo battery: A 3.7V lithium polymer battery offers long life and fits easily in tiny enclosures.
- Solder carefully and test often: Precision soldering and frequent testing prevent costly mistakes and ensure reliability.
- Program with Arduino IDE: Use free, user-friendly software to upload code and customize watch features.
- Design a 3D-printed case: Custom enclosures protect components and give your watch a professional look.
- Start simple and upgrade later: Begin with time and notifications, then add sensors like heart rate or GPS.
Introduction: Build Your Own Mini Smart Watch
Have you ever wanted a smart watch that’s truly yours—designed, built, and programmed by you? Making a mini smart watch is a fun, rewarding project that blends electronics, coding, and creativity. Whether you’re a student, hobbyist, or tech enthusiast, this guide will show you how to build a functional wearable device from scratch.
In this step-by-step tutorial, you’ll learn how to assemble a compact smart watch using affordable components like a microcontroller, OLED screen, and rechargeable battery. We’ll cover everything from selecting parts to soldering circuits, writing code, and designing a custom case. By the end, you’ll have a working smart watch that displays time, receives notifications, and maybe even tracks your steps.
Don’t worry if you’re new to electronics—this project is beginner-friendly. With basic tools and a little patience, you can create something impressive. Let’s get started on your DIY smart watch journey!
What You’ll Need: Tools and Components
Before diving in, gather all the necessary tools and parts. Having everything ready will make the build smoother and more enjoyable.
Visual guide about How to Make a Mini Smart Watch
Image source: cdn.shopify.com
Essential Components
- Microcontroller: ESP32 or Arduino Nano 33 BLE (both support Bluetooth and have low power consumption)
- Display: 0.96-inch I2C OLED screen (128×64 pixels, lightweight, and easy to interface)
- Battery: 3.7V 300mAh–500mAh LiPo (lithium polymer) battery with a JST connector
- Charging Module: TP4056 LiPo charger board (protects battery and enables USB charging)
- Buttons: Two tactile push buttons (for navigation and selection)
- Resistors: 10kΩ pull-down resistors (for button stability)
- Wires: Jumper wires or thin enameled wire for compact connections
- PCB or Perfboard: For mounting components (optional but recommended)
- 3D-Printed Case: Custom-designed enclosure (we’ll cover this later)
Tools Required
- Soldering iron and solder
- Wire strippers and cutters
- Multimeter (for testing connections)
- Hot glue gun or epoxy (for securing components)
- Computer with USB cable (for programming)
- 3D printer (or access to one via online services)
Optional Add-Ons
- Heart rate sensor (e.g., MAX30102)
- Accelerometer (e.g., MPU6050 for step counting)
- Vibration motor (for silent alerts)
- GPS module (for location tracking)
Pro Tip: Buy components from reputable suppliers like Adafruit, SparkFun, or Amazon. Check compatibility before purchasing—especially voltage and pin layouts.
Step 1: Design Your Circuit
The first step is planning how all components will connect. A well-designed circuit prevents short circuits and ensures reliable performance.
Understand the Connections
Your smart watch will have three main parts: the microcontroller, display, and power system. Here’s how they connect:
- The ESP32 acts as the brain. It processes data, runs the clock, and communicates via Bluetooth.
- The OLED display connects via I2C (uses only two wires: SDA and SCL).
- The battery powers everything through the charging module, which regulates voltage.
- Buttons connect to GPIO pins with pull-down resistors to avoid floating signals.
Draw a Schematic
Sketch a simple circuit diagram on paper or use free software like Fritzing. Label each component and connection. This helps you visualize the layout and catch errors early.
Example connections for ESP32:
- OLED SDA → GPIO 21
- OLED SCL → GPIO 22
- Button 1 → GPIO 15 (with 10kΩ resistor to GND)
- Button 2 → GPIO 13 (with 10kΩ resistor to GND)
- Battery → TP4056 input
- TP4056 output → ESP32 3.3V and GND
Note: The ESP32 runs on 3.3V. Never connect 5V directly—it can damage the board.
Step 2: Assemble the Circuit
Now it’s time to bring your design to life. Careful assembly ensures your watch works reliably.
Solder the Components
- Prepare the perfboard: Cut it to size and clean the copper side.
- Mount the ESP32: Place it in the center. Solder pins securely.
- Attach the OLED: Connect SDA to GPIO 21 and SCL to GPIO 22. Also connect VCC to 3.3V and GND to ground.
- Add the buttons: Solder each button between a GPIO pin and ground. Use 10kΩ resistors from the GPIO pin to ground.
- Install the charging module: Connect the battery to the B+ and B- terminals. Link the OUT+ to ESP32 3.3V and OUT- to GND.
Use Thin Wires
To save space, use 30 AWG enameled wire or flexible jumper wires. Keep connections short and neat. Avoid crossing wires unless necessary.
Test Continuity
Use a multimeter to check for shorts between power and ground. Also verify that each connection is complete. Fix any loose joints before moving on.
Pro Tip: Add a small capacitor (100µF) between 3.3V and GND to stabilize power and reduce noise.
Step 3: Program the Smart Watch
With the hardware ready, it’s time to upload code and bring your watch to life.
Set Up Arduino IDE
- Download and install the Arduino IDE.
- Open the IDE and go to File > Preferences.
- In the “Additional Boards Manager URLs” field, add:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Go to Tools > Board > Boards Manager, search for “ESP32”, and install the package.
- Select your board: Tools > Board > ESP32 Dev Module.
- Choose the correct port under Tools > Port.
Install Required Libraries
Your code will need libraries for the OLED display and time functions.
- Go to Sketch > Include Library > Manage Libraries.
- Search for and install:
- Adafruit SSD1306
- Adafruit GFX Library
- RTClib (for real-time clock)
Write the Code
Here’s a simple sketch to display time and respond to button presses:
#include
#include
#include
#include#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);RTC_DS1307 rtc;
const int buttonPin1 = 15;
const int buttonPin2 = 13;void setup() {
Serial.begin(115200);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED failed");
for(;;);
}if (!rtc.begin()) {
Serial.println("RTC failed");
for(;;);
}display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Mini Smart Watch");
display.display();
delay(2000);
}void loop() {
DateTime now = rtc.now();display.clearDisplay();
display.setCursor(0,0);
display.print("Time: ");
display.print(now.hour(), DEC);
display.print(":");
display.print(now.minute(), DEC);
display.print(":");
display.println(now.second(), DEC);display.setCursor(0,20);
display.print("Date: ");
display.print(now.day(), DEC);
display.print("/");
display.print(now.month(), DEC);
display.print("/");
display.println(now.year(), DEC);if (digitalRead(buttonPin1)