A cyberpunk-inspired wristwatch built on a custom flexible PCB, wrapping high-density alphanumeric LED displays around the wrist in an infinite loop. Displays animated effects and real-time clock output.
Ember Mk.II is a handmade wristwatch built around a custom flexible PCB that wraps 14 Broadcom HCMS-2901 alphanumeric LED displays around the wrist.
Press the center button to wake the display and trigger the boot animation. Use the up and down buttons to cycle through menus: time display, mini time, brightness, current, timezone offset, and wave mode. The watch charges and programs over the same 4-pin header used as the wrist. To set the time, send a Unix epoch timestamp over serial.
| Top Layer | Bottom Layer | All Layers |
|---|---|---|
![]() |
![]() |
![]() |
| Ref | Component | Value / Part | Package | Qty | Datasheet / Source |
|---|---|---|---|---|---|
| U5–U18 | Alphanumeric LED Display | HCMS-3901 | Custom SMD (bent TH pins) | 14 | Broadcom Datasheet · Mouser |
| U1 | Microcontroller | STM32U083KCUx | QFN-32 | 1 | ST Datasheet · Mouser |
| U2 | LDO Regulator | LP2980 (3.3V fixed) | SOT-23-5 | 1 | TI Datasheet · Mouser |
| U3 | LiPo Charger | STC4054 | SOT-23-5 | 1 | Datasheet · LCSC |
| J1 | Wrist clasp socket | 4-pin SMD socket | custom:SMD_2.54_1x04_LONG | 1 | Standard 2.54mm pin header |
| J2 | Wrist clasp pin | 4-pin SMD pin | custom:SMD_2.54_1x04_SHORT | 1 | Standard 2.54mm pin header |
| SW1 | Boot mode button | BOOT0 | PTS636 | 1 | C&K PTS636 Datasheet · Mouser |
| SW2 | Up button | UP | PTS636 | 1 | C&K PTS636 Datasheet |
| SW3 | Center button | CENTER | PTS636 | 1 | C&K PTS636 Datasheet |
| SW4 | Down button | DOWN | PTS636 | 1 | C&K PTS636 Datasheet |
| R1, R2 | Resistor | TBD | 0402 | 2 | Standard 0402 SMD resistor |
| TP1 | Test point | SWDIO | D1.5mm pad | 1 | SWD debug interface |
| TP2 | Test point | SWCLK | D1.5mm pad | 1 | SWD debug interface |
| TP3 | Test point | BATT | D1.5mm pad | 1 | Battery voltage monitor |
| TP4 | Test point | GND | D1.5mm pad | 1 | Ground reference |
⚠️ Display availability note: The HCMS-2901 is a discontinued Broadcom part. Stock availability varies — check Mouser, DigiKey, and secondary markets. Expect ~$25–35 per unit. The HCMS-3901 is a pin-compatible alternative.
Display control is based on a modified version of the HCMS39xx Arduino library:
Modifications include:
printDirectBufferOverlay()— bitwise OR compositing for animation over UIprintDirectBufferXOR()— XOR compositing for blinking effectsrefreshDisplay()— decoupled buffer writes from display refresh for frame timing
To compile:
- Install STM32Duino (Arduino core for STM32): https://github.com/stm32duino/Arduino_Core_STM32
- Install STM32RTC library: https://github.com/stm32duino/STM32RTC
- Target board: STM32U08 series (Generic STM32U0)
| Resource | Link |
|---|---|
| STM32U083 Reference Manual | ST.com |
| HCMS-2901 Application Brief | Broadcom |
| STM32Duino Core | GitHub |
| STM32RTC Library | GitHub |
| HCMS39xx Arduino Library (base) | GitHub |
| KiCad EDA | kicad.org |




