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.
- 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
-
-
AEL-2011 Power Supply Module
322 0 1 -
AEL-2011 50W Power Amplifier
296 0 1 -
-
-
Custom Mechanical Keyboard
565 0 0 -
Tester for Touch Screen Digitizer without using microcontroller
230 2 2 -
Audio reactive glow LED wristband/bracelet with NFC / RFID-Tags
236 0 1 -
-
-







