Skip to the content
2 layers127 × 114.3 mmKbxBinaryClock.v2.1, the printed circuit board in 3D

KbxBinaryClock.v2.1

kbx81/RGBBinaryClock2

RGB Binary Clock project files - PCB and source

Size
127 × 114.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
138
Nets
159
Pads
626
Tracks, vias
2,702, 253
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
11 Feb 2018
Updated
10 Feb 2019

Overview

KbxBinaryClock.v2.1 is an open-source printed circuit board by kbx81, from the kbx81/RGBBinaryClock repository on GitHub. It is a 2-layer board of 127 × 114.3 mm with 138 parts on 159 nets, routed with 2,702 tracks and 253 vias.

It is built around the MAX485ED, TLC5947DAP and DS1621V+, with the DS3231S#, LD1117S33TR(MS) and CR2032 among its other parts. Its parts include 41 resistors, 28 diodes, 26 capacitors, 11 transistors and 9 ICs. It belongs with the lEDs and displays boards and the STM32 boards of this library.

Main components

7

README

README.md

kbx's RGB Binary Clock

RGB Binary Clock project files - PCB and source

It's probably more than what you're thinking...

Another binary clock? Why?

I have to start by giving credit where credit is due. The Boldport Club, over the last couple of years, has motivated me to dwell back into the world of electronics, at least as a hobbyist. Both the kits themselves and the other members in the club are amazing and helped inspire me to make something...so I began working on this project. Some inspiration is taken from Touchy, BPC Project #7; this kit enabled me to learn more about and actually experiment with capacitive touch. It was clear early on that this would be a nice touch (pun intended) to add to this project; visually, it is cleaner, it reduces the number of parts and, as a result, it reduces the cost.

That said, the world probably doesn't need another (binary) clock. There are plenty of them--all different shapes and sizes--so why build another one?

This project was started with two main goals in mind: I wanted a "simple" project I could use to help me get back into the world of electronics. The second goal I had in mind was to build up my comfort level with C and C++ -- I knew the language(s) but was never terribly comfortable with them. Building this helped me to achieve both of those goals and then some -- and I am quite happy with the result!

But why a clock?

It's fun to make LEDs blink. It's fun to play with microcontrollers. It's fun to build stuff. But a blinking LED or two or three isn't very meaningful. Nor is a nice microcontroller that just toggles a GPIO pin. If you're going to build something, why not make it at least modestly useful? And why not build it in a unique way that's neat to look at and/or watch?

The idea for this came from an old electronics kit I put together probably around twenty or so years ago (and it still works today!). I liked the kit but it was somehow lacking. Probably the most obvious problem was that, in a dark bedroom, the display was too bright. It was a simple, 12-hour-only binary clock, built on 4000-series CMOS logic. Now, there's nothing wrong with that, but...it's 2018 now. Let's take it up a notch or ten.

How do you take a binary clock up a notch (or ten)?

First, you can add some color. A lot of color. In fact, you can pick the colors you want it to use...up to eight times over. This binary clock has the ability to gradually shift colors over the course of each day. Bits can even fade in and out as they change. It's all about the eye candy in this regard.

Second, it can do more than just tell the time -- it'll tell you the date and temperature, too! There is even a timer/counter mode. What's more, you can choose the format for it all: the clock can display in a 12 or 24 hour format, the temperature can display in degrees Celsius or degrees Fahrenheit, and (most importantly) it can display all of these values in either binary-coded decimal (BCD) or good old-fashioned binary. You get to choose the formats you prefer and they can be changed easily at any time.

Next, the display brightness issue had to be addressed -- it has a phototransistor which is used to determine the amount of ambient light around it and the display will dim as the light level around it diminishes. This is great if you want to keep it near you at night while you sleep.

Another cool bit is that it uses capacitive sense touch keys for buttons; the kit it is based on had mechanical, fixed-function buttons. If you haven't seen or used capsense technology before, you'll find it's pretty cool and adds a little extra uniqueness to the clock, too.

A CR2032 coin-cell battery back-up can be installed to keep the time valid in the event that the board loses power. Version 4 of the hardware also includes a super capacitor, eliminating the need for the battery; even so, both can be installed, adding flexibility to the build.

Finally--and one could argue that no clock is complete without one--it has an alarm! The alarm can be set to beep at any of the eight times the user sets. There is also an hourly chime that one can enable which will beep out each hour in binary using high and/or low pitch tones...so you can hear the time when you're in another room! The display can be configured to blink when an alarm occurs. Version 4 of the clock also includes extra pin headers, some pins of which can be used as inputs to trigger the alarm from an external device.

Great, but what makes it tick?

The "brain" is an STM32F072 microcontroller. This MCU alone has everything that's necessary to have a functional time clock -- even a temperature sensor as a bonus. Still, it might not be quite as accurate as some of us would like. For those folks, there are footprints for some additional ICs to improve the accuracy of the time and/or temperature sensing.

Version 2 boards have footprints for I2C devices:

  • A Maxim DS3231
  • An LM75 (or compatible)
  • A Microchip MCP9808

Version 3+ boards have footprints for SPI devices:

  • A Maxim DS3234
  • An LM74
  • A Maxim DS1722

Why footprints for both temperature sensors and the RTCs? The DS323x is somewhat expensive and it's possible that one might want more accurate temperature sensing abilities but isn't as concerned with the accuracy of the clock. It should be noted that the DS323x devices have temperature sensors built in and the application will use this sensor if a DS323x is installed but one of the other external temperature sensors is not.

Beyond the MCU itself, the board has 25 RGB LEDs on it; 24 of them form the main display and they are connected to TLC5947 (pre-v4) or TLC5951 (v4+) constant-current PWM drivers. The MCU uses its SPI1 to communicate with these drivers. The remaining RGB LED is used as a "status" LED and it is connected (through FET drivers) to GPIO pins on the MCU. These pins double as timer output channels, meaning they can also generate a PWM signal, enabling the dimming of the status LED elements, as well.

The beeper is connected (also through a FET driver) to yet another GPIO pin that doubles as a timer output channel; this enables the beeper to generate a wide range of tones or even play a tune!

The phototransistor is connected to the MCU's ADC channel zero.

Two USARTs are exposed via pin headers on the right side of the board: USART1 is brought out on a standard six pin header as is commonly found on many devices while USART2 is connected to an RS-485 line driver enabling communication on an RS-485 bus. Through this interface, the application is able to receive a DMX-512 signal so the LEDs can each be individually controlled from an entertainment lighting console (or other application that speaks this protocol), enabling another whole realm of possibilities...

How do I get or build one?

In this repository you'll find everything needed to put one together. It is divided into two major parts: hardware and software (source). The hardware directory contains the KiCad project files used to create the printed circuit board. The src directory contains the source code needed to compile and run the application on the microcontroller. It is built on top of libopencm3. Finally, then bin directory contains compiled binary files you may flash directly onto the microcontroller...great for folks who want to solder something together but don't want to be bothered with compiling code!

Additional details regarding the hardware and software can be found in the README.md files located in each respective directory.

That's all for now...thanks for visiting!

Parts

138
QtyValueFootprintReferences
25LED_RGB_COMMON_ANODELEDs:LED_D5.0mm-4LED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +9
151KResistors_SMD:R_0805R2, R3, R4, R11, R12, R13, R14, R15, R16, R23, R27, R28, R32, R33, R37
13100 nFCapacitors_SMD:C_0805C5, C6, C8, C9, C10, C17, C18, C19, C21, C23, C24, C25, C26
1310KResistors_SMD:R_0805R8, R9, R17, R18, R19, R20, R21, R22, R26, R31, R36, R40, R41
6Q_NPN_BCETO_SOT_Packages_SMD:SOT-23Q6, Q7, Q8, Q9, Q10, Q11
51MResistors_SMD:R_0805R1, R5, R6, R7, R10
42N7002TO_SOT_Packages_SMD:SOT-23Q1, Q2, Q3, Q4
4MountingHole_3.5mmMounting_Holes:MountingHole_3.5mmMH1, MH2, MH3, MH4
324K6Resistors_SMD:R_0805R25, R30, R35
347 nFCapacitors_SMD:C_0805C14, C15, C16
34K7Resistors_SMD:R_0805R24, R29, R34
3TLC5947Housings_SSOP:HTSSOP-32_6.1x11mm_Pitch0.65mm_ThermalPadU2, U3, U4
210 pFCapacitors_SMD:C_0805C3, C4
212.5 pFCapacitors_SMD:C_0805C1, C2
23K3Resistors_SMD:R_0805R38, R39
24.7 µFCapacitors_SMD:C_0805C12, C13
11 µFCapacitors_SMD:C_0805C11
110 nFCapacitors_SMD:C_0805C7
110 µFCapacitors_SMD:C_0805C22
1100 µFCapacitors_SMD:CP_Elec_8x10C20
1100KPotentiometers:Potentiometer_Trimmer_Vishay_TS53YJRV1
11N4148Diodes_SMD:D_SOD-123D1
132.768 KHzCrystals:Crystal_SMD_3215-2pin_3.2x1.5mmY1
18 MHzCrystals:Crystal_SMD_5032-4pin_5.0x3.2mmY2
1BuzzerBuzzers_Beepers:Buzzer_12x9.5RM7.6BZ1
1CR2032Battery_Holders:Keystone_103_1x20mm-CoinCellBT1
1Conn_01x06Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mmJ2
1Conn_02x03_Odd_EvenPin_Headers:Pin_Header_Straight_2x03_Pitch2.54mmJ3
1DS1621Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mmU7
1DS3231Housings_SOIC:SOIC-16W_7.5x10.3mm_Pitch1.27mmU6
1GS2Connectors:GS2SB2
1GS3Connectors:GS3SB1
1Jack-DCkbxCustoms:BARREL_JACKJ1
1LD1117S33TRTO_SOT_Packages_SMD:TO-252-2U5
1LED_Dual_AACCLEDs:LED_Cree-PLCC4_3.2x2.8mm_CCWLED26
1MAX485EHousings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mmU9
1MCP9804_MSOPHousings_SSOP:MSOP-8_3x3mm_Pitch0.65mmU8
1Q_Photo_NPNLEDs:LED_D5.0mmQ5
1S3ADiodes_SMD:D_SMCD2
1STM32F072CBTxHousings_QFP:LQFP-48_7x7mm_Pitch0.5mmU1
1STM32_SWD_USARTPin_Headers:Pin_Header_Straight_2x05_Pitch1.27mm_SMDP1
1SW_PushButtons_Switches_SMD:SW_SPST_KMR2SW1
1TouchPad1TouchPads:TouchPad1TP1
1TouchPad2TouchPads:TouchPad1TP2
1TouchPad3TouchPads:TouchPad1TP3
1TouchPad4TouchPads:TouchPad1TP4
1TouchPad5TouchPads:TouchPad1TP5
1TouchPad6TouchPads:TouchPad1TP6
1~2AFuse_Holders_and_Fuses:Fuse_SMD2920F1

More from kbx81/RGBBinaryClock

1
  • 2 layers127 × 114.3 mmKbxBinaryClock.v4, the printed circuit board in 3D

    KbxBinaryClock.v4

    kbx81/RGBBinaryClock

    RGB Binary Clock project files - PCB and source

    132 parts2

Similar boards

  • 4 layers150 × 100 mmTubeClock, the printed circuit board in 3D

    TubeClock

    kbx81/TubeClock

    Everything for the Tube Clock

    147 parts9
  • 4 layers96.9 × 99.9 mmMaisonEtape1, the printed circuit board in 3D

    MaisonEtape1

    Antoine-GG/Maison_JP_DJ

    124 parts
  • 4 layers160 × 106 mmLineSlat, the printed circuit board in 3D

    LineSlat

    albachten/LineSlat

    Daisy-chained fireworks controllers for line effects

    134 partsCC0-1.0
  • 4 layers160 × 106 mmMiniSlat, the printed circuit board in 3D

    MiniSlat

    albachten/MiniSlat

    MiniSlat - a 2 cue w/radio Pyro Ematch controller

    77 partsCC0-1.0
  • 2 layers160 × 100 mmADSR CONTROLLER, the printed circuit board in 3D

    ADSR CONTROLLER

    Desval27/FormantKO

    Knock-off of the Elektor Formant Synthesizer project with the initial goal of being quasi-authentic and secondary goal undecided. Probably tweaks of some kind.

    77 partsMIT
  • 2 layers200 × 66 mmNixie control board, the printed circuit board in 3D

    Nixie control board

    shengwen-tw/nixie-clock

    IN-14 Russian nixie tube clock

    79 parts9MIT
  • 2 layers32.5 × 24 mmRpi rtc, the printed circuit board in 3D

    Rpi rtc

    skiselev/rpi_rtc_ds3231

    Maxim DS3231 Based RTC Module for Raspberry Pi

    7 parts7GPL-3.0

Questions

How big is the KbxBinaryClock.v2.1 PCB?

It measures 127 × 114.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KbxBinaryClock.v2.1 use?

138 parts, built around the MAX485ED, TLC5947DAP, DS1621V+ and DS3231S#. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the KbxBinaryClock.v2.1 KiCad files?

From the kbx81/RGBBinaryClock repository on GitHub, at the commit this page was made from: the board is hardware/kbxBinaryClock.v2.1/kbxBinaryClock.v2.1.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the KbxBinaryClock.v2.1 design in my own project?

Its repository states no licence, so its author keeps all rights: ask kbx81 before reusing the design.