Introduction: NeoPixel Clock With Alarm

Hi guys,

get up early in the morning is sometimes hard. Especially when it is cloudy, raining or winter outside. Since I made my own a clock with alarm, getting up is much more enjoyable for me. :)

I used precise RTC module for controls the time and alarm. Two NeoPixel rings displays time ( btw. are you also fascinated by LED lights? ). A MP3 module controls audio output. And the setting is via bluetooth.

In this instructable I was a little inspired by the project NeoClock.

Step 1: Components

RTC module

As I wrote, I used precize RTC module from Sparkfun - the DeadOn RTC. The module is perfect for clocks, calendars, or any other time-keeping project. Communication between a microcontroller and RTC module is achieved using a four-wire SPI interface. When it's not powered via a primary source, the chip can be set to run on a backup battery. Sparkfun have written an Arduino library for the module, which takes care of all of the SPI communication. Sparkfun have written also DeadOn RTC Breakout Hookup Guide.

Serial MP3 Player

There are several modules on the market. I used Open-smart Serial MP3 module with speaker output. There are 3W amplifier on the desk.

There is also a TF card socket on board, so you can plug a micro SD card that stores audio files in MP3 or WAV format. I used a 8GB Kingston microSD card.

I used on-board speaker interface to connect external 8 ohm speaker. You can control the module by sending commands via UART TTL serial port, such as switch songs, change the volume and play mode and so on.

I wrote my own, very simple library to control start and stop the songs.

Bluetooth HC-06 module

I used this HC-06 bluetooth module for sending data from my phone to the clock. It adopts Bluetooth 2.0 standard. I used the bluetooth module for setting time, alarm, song, brightness, ... It works perfectly! It is not a problem to send data at a distance of several meters from the clock. There are no buttons and switches on the clock.

I installed Arduino bluetooth controller on my android phone. I connect to the module and enter commands through the terminal.

For example:

  • sa0600 - set alarm on 6:00
  • st1845 - set time on 18:45
  • sb80 - set brightness to 80
  • ps3 - play song number 3


I used the Arduino Nano model because is small and it works with a Mini-B USB cable. I used a terminal to fit controller and LM7805 voltage regulator, but this is not necessary.

NeoPixel rings

I used two NeoPixel Rings. Larger ring with 60 LEDs to display minutes and seconds. And smaller ring with 24 LEDs to display hours. I bought both rings on Aliexpress.

I received the larger ring damaged because it was fragile and it probably broke during rough transportation. :(

There is a very useful NeoPixel library for controlling LED ring from Adafruit.

Step 2: Box

I created the box on my CNC machine. I milled precise grooves on the front for two rings. I filled both grooves with epoxy resin. After hardening, the epoxy resin is sandable and polishable.

I used the head of a beetle as decoration, which I found dead in the forest in the summer. I also poured it into epoxy resin.

I milled a lion on the back side and painted it with gold.

Step 3: Wiring

The wiring is very simple and basically it is just to connect the module to the controller. I plugged in the power switch and DC Jack Socket.

I used small screws and hot melt glue gun to hold the modules in box.

Step 4: Coding

I placed all the code with all the necessary libraries and module documentation on the Github.