You are browsing as a guest. Sign up (or log in) to start making projects!

alexew0923

@alexew0923

Joined June 22nd, 2026

  • 8Devlogs
  • 2Projects
  • 0Ships
  • 0Votes
Open comments for this post

1h 24m logged

Major Update

Over the past week, I made a lot of changes to the smartwatch and here are what I have done.

App Icon

I added custom icons for each app like clock icons for stopwatch and timer and a thermometer for temperature and humidity. I did it by uploading C arrays of pixels (black and white). Then, I used the image widget in LVGL to display the icons.

New App

With the onboard SHT40 temperature & humidity sensor, I built a new app that displays current temperature and humidity readings. Currently, the app only has plain texts, but I am thinking of changing it to something more visual like a gauge or graph. One thing I did not consider when making the PCB is that SHT40 readings can be affected by the heat from ESP32 or hand, so it might not be as accurate as it should be.

Bug Fixes

There were some minor issues like the noise from buttons, which microcontroller read it as two clicks even though I clicked only once. I could fix this issue either by software (rechecking value after certain amount of time) or hardware (soldering a capacitor) and I chose to go with hardware because I did not want to make the code more difficult to read than what it is currently. Another bug I found is that DS3231 real time clock and MPU6050 sensor both shared the same I2C address (0x68) and the data was getting corrupted. Luckily, there is a pin on MPU6050 called AD0, which I can power it to change its I2C address to 0x69.

0
0
3
Open comments for this post

3h 19m 27s logged

Timer Application

I developed a timer application for the smartwatch. You can increment/decrement the time on timer by clicking on the buttons and start it with both buttons pressed. When the timer hits zero, the passive buzzer will beep. However, one thing I noticed is that the passive buzzer will still buzz and make tiny noises even after I stopped it. The Arduino function I am using for the buzzer is tone() and it sends on and off signals to the buzzer in specific frequency. I am not sure what is causing this, so I need to further investigate it.

0
0
7
Open comments for this post

2h 11m 1s logged

Soldering PCB

I finally received PCBs I designed on KiCad from JLCPCB. All the other components had been sitting in my room for a few weeks, so I was really excited to have the PCB in my hands. First, I created a jig to hold the PCB in place and I spread over solder paste across the PCB with a stencil I ordered as well. Then, I carefully placed SMD components with a tweezer and melted the solder with a heat gun. I was nervous that my PCB design had a fault and would not work, but luckily it worked fine. I found that making a custom PCB is more efficient than hand soldering because I don’t have to fight over with soldering iron. Although it takes additional time to design a PCB and it costs extra money, I am looking forward to make more PCBs as it can also prepare me for industrial manufacturing.

Troubleshooting

While the smartwatch turns on, there were still some errors in the PCB. First, I reversed the VCC and GND path of the battery connector, so I had to cut the wires from the battery to correct the wire order, which was unsafe. Next, when I tested the display, only the backlight would turn on and it frustrated me. It turned out that the CS pin was connected to the TX pin of ESP32, which transmits message to serial monitor. Additionally, I had to specify esp32 version in board manager to 2.0.8 for the display to be compatible with XIAO ESP32 C3. Lastly, the PCB is way bigger than the display and next time I could try reducing its size, so it fits with the screen size and looks more appealing.

0
0
14
Open comments for this post

2h 2m logged

Stopwatch Development

I added two buttons with pull-up resistors to simulate forward/backward motion in a smartwatch. By clicking the buttons, you can switch through different apps and you can access them by a long press (> 0.5s). Currently, there is only stopwatch with its basic functions like start/stop/reset. I tried out EEZ Studio and I find it better than Lopaka, but there are still some limitations.

Future Plan

  • Add a passive buzzer to give feedback to user
  • Add symbol for the apps
  • Add “lap” function in stopwatch
  • Develop other apps like timer, alarm and weather
0
0
22
Open comments for this post

1h 10m 1s logged

Watch Face Development

I integrated DS3231 real time clock with the display to show the time on watch face. The GUI is designed using LGVL format with TFT_eSPI driver. While I am waiting for the PCB to arrive, I will keep developing the software side. Initially, I chose Lopaka as a design tool, but I am planning to switch to EEZ Studio for its open source license and better functionality.

3
0
1075
Open comments for this post

24m logged

Testing DS3231 and Round Display on ESP32

Today, I tested DS3231 and TFT round display on ESP32 by uploading the example codes online and the wiring and the code weren’t too complicated. DS3231 comes with a battery, so it can keep track of the time even when it is not powered by an external source and I am planning to design the UI of the smartwatch with LVGL format, designed on Lopaka.

PCB Design

Apart from this devlog, I finished designing the PCB for my smartwatch using the schematic from the past devlog. The reason why I am writing my progress on this devlog is because even though 9 hours of my work was recorded on Hackatime, I can’t seem to write a separate devlog on the Stardance.

Designing Process

At first, I had no clue to what I should do with designing a PCB because it is my first time doing it. So I watched some tutorials on YouTube and learned basic skills like creating tracks (wires) and vias (connecting different layers), checking the PCB on 3D viewer. running Design Rules Checker before finalizing the PCB and exporting Gerber files for PCB manufacturing.

Ordering PCB

Now, I am done with the PCB and ordered 5 pieces of it on JLCPCB. It takes few weeks to arrive and right now I will be working on the software side while waiting for it. I did not use their assembly service because I wanted to solder SMD components by myself using a heat gun. The electronic parts were purchased through DigiKey and AliExpress and tools for SMD soldering were bought on AliExpress and Amazon.

0
0
10
Open comments for this post

1h 22m 56s logged

Schematic

I started building a schematic for the smartwatch. It is my first time using KiCad, so I watched basic tutorials on YouTube about the interface. The symbols for the sensors and microcontroller are not listed on the basic KiCad symbol list and I had to find them separately on the manufacturer’s page and SnapMagic for free.

How I Built the Schematic

At first, I had no idea on how to connect the raw sensors to the microcontroller because I only worked with sensor modules that had other electrical components on it before. Therefore, I looked through the datasheet and there were example circuits, which I followed. Most sensors use I2C communication and it requires resistors between the serial clock and data lines to the power and a capacitor between ground and power to stabilize the power as well. Then, instead of connecting all the wires, I placed labels in order to make the schematic clean to look at. Before I am finished with the schematic, I ran Electrical Rules Checker and fixed errors that showed up.

Next Step

The next step would be to use the schematic to layout the PCB. I am planning to get a hot plate and solder paste, so that I can solder SMD components onto the PCB by myself. It is a long journey, but I am hoping to finish the project with progress made each day. Comment below if you have any questions!

0
0
11
Open comments for this post

9h 48m 32s logged

Brainstorming

For my project, I chose to build a smartwatch of my own, similar to Galaxy and Apple Watch. Today, I brainstormed the basic materials and functions of the smartwatch.
These are what I came up with.

Components

  • 1.28 Inch Round Circular TFT LCD Touchscreen Display Module
  • 400mAh LiPo Battery - charge through ESP32
  • XIAO ESP32C3 - main processor
  • MPU6050 - Inertial Measurement Unit
  • SHT40 - Temperature and Humidity
  • BMP581 - Air Pressure and Altitude
  • VEML6035 - Ambient Light Sensor
  • 2x Buttons
  • CPT-9019A-SMT-TR - Passive Buzzer

Functions

  • Touchscreen User Interface
  • Automatic Screen Turn On/Off - MPU6050
  • Stopwatch/Timer/Alarm - Play sound with the buzzer
  • Temperature/Humidity/Air Pressure/Altitude Readings
  • Automatic Brightness Level Adjustment - Ambient Light Sensor
  • Simple music player with buzzer
  • Bluetooth/WiFi connection to mobile and retrieve external data such as local weather/sports/stocks
    ‎‎‎‎‎‎‎‎ㅤ

These are what I came up with for now and I might add on to this as I work on the project. The next steps would be to design a schematic and printed circuit board, which is for the first time in my life and I am excited about it. This is a huge project, so it will take some time to finish it. Below is the picture of what I brainstormed on Google Docs.

0
0
35

Followers

Loading…