Base10 - A maker wearable Binary Watch
With today’s abundance of digital, connected watches—showing the time, your sleep quality, steps, heart rate, and more—something was missing: a watch that’s simply a watch, but in a cooler way. Why not tell the time in a maker’s style!?
Based on my binary desk clock, I decided to create a wrist version: a watch you’ll wear proudly, showing it off to friends and enjoying their puzzled faces as they try to figure out how those LEDs can represent the time!
Powered by an ESP32 microcontroller and addressable RGB LEDs, here comes BASE10!
The clock will get a NTP time once and show the hour and minute in a binary representation

( binary clock - table version )
#include <FastLED.h>
#include <TimeLib.h>
#define NUM_LEDS 20
#define DATA_PIN 8
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
unsigned long previousMillis = 0;
const long interval = 1000; // Atualiza a cada segundo
// Definição dos grupos de LEDs
const int segundos_unidade[] = {0, 1, 2, 3}; // 4 bits (0-9)
const int segundos_dezena[] = {6, 5, 4}; // 3 bits (0-5)
const int minutos_unidade[] = {7, 8, 9, 10}; // 4 bits (0-9)
const int minutos_dezena[] = {14, 13, 12}; // 3 bits (0-5)
const int horas_unidade[] = {15, 16, 17, 18}; // 4 bits (0-9)
const int horas_dezena[] = {20, 19}; // 2 bits (0-2)
void setup() {
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(50);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Obter tempo atual
int segundos = second();
int minutos = minute();
int horas = hour();
// Separar dígitos
int segundos_un = segundos % 10;
int segundos_dez = segundos / 10;
int minutos_un = minutos % 10;
int minutos_dez = minutos / 10;
int horas_un = horas % 10;
int horas_dez = horas / 10;
// Limpar todos os LEDs
FastLED.clear();
// Atualizar displays
displayBinary(segundos_unidade, 4, segundos_un, CRGB::Red);
displayBinary(segundos_dezena, 3, segundos_dez, CRGB::Red);
displayBinary(minutos_unidade, 4, minutos_un, CRGB::Red);
displayBinary(minutos_dezena, 3, minutos_dez, CRGB::Red);
displayBinary(horas_unidade, 4, horas_un, CRGB::Red);
displayBinary(horas_dezena, 2, horas_dez, CRGB::Red);
FastLED.show();
}
}
// Função para exibir um número em binário em um grupo de LEDs
void displayBinary(const int *ledArray, int size, int number, CRGB color) {
for (int i = 0; i < size; i++) {
if (bitRead(number, i)) {
leds[ledArray[i]] = color;
}
}
}
Base10 - A maker wearable Binary Watch
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(0)
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by kadu
-
Rudolph the Red Christmas IOT Card
Hi, I'm a Rudolph and you know me from Santa's Stories, and I'm here to help him to bring messages f...
-
Base10 - A maker wearable Binary Watch
With today’s abundance of digital, connected watches—showing the time, your sleep quality, steps, he...
-
Christmas Ball 2022
This is a just eletronic (without microcontroller) project to blink ligths (#JULIALABSPCBCHALLENGE 2...
-
Christmas PCB Contest - JuliaLabs
A simple PCB Badge for JuliaLab's Christmas PCB Contest
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
458 3 4 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
471 2 0 -
-
-
-
ESP32-C3 BLE Keyboard - Battery Powered with USB-C Charging
674 0 1 -
-
mammoth-3D SLM Voron Toolhead – Manual Drill & Tap Edition
662 0 1 -
-
AEL-2011 Power Supply Module
1336 0 2 -
AEL-2011 50W Power Amplifier
1215 0 2







