Introduction: Classroom Clock

The Classroom Clock is a DIY digital clock designed and optimized for teachers. When I began teaching, I found it very difficult to keep track of the rotating block schedule. Classroom Clock solves this problem, in addition to offering several other convenient features:

  • An additional digit that keeps track of the block or period- an especially useful feature for rotating block schedules
  • The ability to program holidays into the code to prevent the block from advancing on days when school is not in session
  • LED digits that fade from green to red as the end of the period or block approaches so that a single glance can convey the remaining class time
  • A countdown timer triggered 6 minutes before the period ends that flashes between the time and the remaining time- a useful feature for signaling cleanup time
  • Other light effects that can be triggered during lunch, free periods, after school, or other special occasions

But the possibilities are endless! How will you program the Classroom Clock?

Step 1: Materials

Picture of Materials


  • laser cutter
  • soldering iron + solder
  • wire cutter
  • wire stripper
  • hot glue + gun
  • wood glue
  • super glue
  • 7/16 nut driver


Cost <$100

Step 2: Laser Cutting

Picture of Laser Cutting

The first step is to laser cut the design. The files were designed with Autodesk Fusion 360, but the svg files for laser cutting can be found in the Github repo. Inkscape is a free vector program that can be used to modify the files.

Cut the following layers from the files in this folder:

  1. 1 bottom
  2. 1 bumper
  3. 1 Neopixel assembly layer
  4. 2 bolt digits
  5. 1 nut digit
  6. 1 magnet digit
  7. 1 acrylic top
  8. 1 circuit case (3 stacked layers, one side panel)

For the Neopixel assembly layer, the text should be etched onto the surface.

For the acrylic layer, the circles should be etched, not cut; the engraving helps to align the acrylic on top of the magnets. The file is purposefully flipped vertically so that the holes are aligned when it's flipped back over.

Step 3: Arduino

Picture of Arduino

We’re going to use an Arduino Nano in this project.

  1. To fit it horizontally on the protoboard, I snipped the front two headers and soldered the microcontroller to the board.
  2. Next I soldered 4 wires to the Nano: a wire to A4 and A5 for (SDA and SCL respectively for I2C communication with the ChronoDot), and a wire to GND and 5V. The other end of these wires will be soldered to the ChronoDot at a later point. These wires should occupy column J, rows 4-8, on the top of the protoboard (the diagram and video are off by one column- they're in column J on the bottom of the protoboard, not top).
  3. Then I clipped the headers of the Nano to make room for the ChronoDot.
  4. Finally, I soldered a 470ohm resistor to digital pin 3 on the Nano, and the other end to a clear spot on the protoboard. I made sure to snip the legs.

Step 4: ChronoDot

Picture of ChronoDot

The ChronoDot is an extremely accurate real time clock module.

  1. We aren’t going to need pins Bat (battery) through RST, so snip these headers.
  2. Attach the ChronoDot on the underside of the protoboard facing the opposite direction from the Arduino. If you're following this design exactly, the ChronoDot headers should occupy column I, rows 4-8, of the protoboard (adjacent to the 4 wires from the Nano in column J).
  3. Solder the hearders to the protoboard and to the wires coming from the Nano. SDA should be connected to A4, SCL to A5, 5V to Vcc, and GND to GND.

Step 5: Power

Picture of Power
  1. Begin by screwing two wires into the positive and negative terminals of the into the DC power adapter.
  2. Assemble the 3 layers of the circuit case to help align the wires on the protoboard.
  3. Solder the wires to the board and snip the leeds.
  4. Next solder a wire from the ChronoDot’s Vcc to the positive power adapter terminal, and the GND of the ChronoDot to the negative terminal.
  5. Then it’s time to add the 1000uF capacitor. The negative lead is connected to the negative power adapter, and positive lead to the positive terminal. If you look closely at the capacitor, you’ll notice an arrow along the side. The arrow points from the negative to the positive lead.

We’re all done. I used a 5V switching power supply to power both the Arduino and the Neopixels when not connected via USB.

Step 6: Neopixels

Picture of Neopixels

The next step is to assemble the Neopixels.

  1. The Neopixel assembly layer has numbers etched into the wood.The numbers indicate the order in which the Neopixels must be wired together in order to match the code.
  2. Cut the Neopixel strip apart; there should be one per hole for a total of 32.
  3. Next use the Neopixel assembly layer to hot glue Neopixels in place. Look closely at the pixel and you’ll notice several labels. It’s important to make sure the arrow on the Neopixels always points to the next pixel. So 0 should point to 1, one to 2, and so one.
  4. Now you can recreate the Neopixel strip. Cut, strip, and solder wires between the LEDs ensuring that data always goes to data, 5V to 5V, ground to ground. Next to the numbers etched in the wood are plus and minus symbols (representing 5v and GND respectively). These symbols help to ensure you’re always soldering the right pins together.
  5. Continue soldering the pixels together following the numbered path.
  6. When you’re done, it’s time to solder the Neopixels to the circuit. Slide the circuit holder into place.
  7. The data pin on the Neopixel strip should be attached to the resistor (300-500 ohms), which is connected to digital pin 3 on the Arduino.
  8. 5V and GND from the Neopixel strip should be connected to the DC power adapter + and - terminals respectively.

Step 7: Assembly

Picture of Assembly

Glue bumper onto the bottom layer. Glue two bolt digits together, and glue the hex nut digit layer on top. Feed the bolts through the bottom (use a washer or cut an acrylic spacer between the wood and the hex cap) and bumper layers, and stack the panels in the following order (from bottom to top):

  1. bottom
  2. bumper --------> both glued together
  3. Neopixel
  4. digit
  5. digit
  6. hex nut digit --------> all glued together
  7. magnet digit
  8. acrylic

The advantage of this glueing strategy is that in the event something goes wrong with the Neopixels, the Neopixel assembly layer can be easily detached from the other layers.

Once the above layers are stacked, twist the 1/4" jam hex nuts on top so that they're aligned with the holes in the wood panel, and tighten the bolts from the back with a 7/16 nut driver.

This is a good opportunity to sand and stain the edges of the clock.

Now it's time to super glue the magnets into the final digit layer's circular holes. The magnets should be flush with the bottom but protruding slightly from the top of the wood panel (depending on the size of magnet you use).

Next, put super glue on the magnets and fit the acrylic layer on top. The acrylic layer should have etched circles on the bottom that help to align the layer perfectly on top of the magnets.

When the glue is dry, the top wood layer and the acrylic can slide on and off of the clock exposing the Arduino and circuitry if needed.

Step 8: Code

All of the code (and associated files) can be found in the Github repo.

  1. Install 2 libraries by downloading these directories and placing them in Documents > Arduino > libraries
    1. RTClib
    2. Neopixel
  2. Set values (e.g. the beginning and end of the periods) so that the code matches your schedule.


RAHMİ SUSAM (author)2017-12-03

I do not know if the full code is given, but there is no one to publish it along with the tenses that finished and finished at the end of the course thanks

RAHMİ SUSAM (author)2017-12-03

I want to help this clock I need help, if there are some who have done it completely, please help me please please ask me if I am doing this project completely, if you are finished arduino uno thank you for your help ****

jasongobus (author)2017-08-31

Worked it out..

Your missing

#include <RTC_DS1307.h>

in the code

jasongobus (author)2017-08-31


i have a finished clock.. but the code wont compile properly..

whats happening???? PLEASE HELP

jasongobus (author)2017-08-31

Please hlep i am getting an error when i try to upload the firmware to my nano.. i have the lib and i put them in the correct directory.. but i get this error

Build options changed, rebuilding all

classroomClock:36: error: 'RTC_DS1307' does not name a type



D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void loop()':

classroomClock:142: error: 'RTC' was not declared in this scope

now =;


D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void initChronoDot()':

classroomClock:622: error: 'RTC' was not declared in this scope



D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void initChronoDot(int, int, int, int, int, int)':

classroomClock:646: error: 'RTC' was not declared in this scope



exit status 1

'RTC_DS1307' does not name a type

amarston (author)2017-01-20

I have built this but I'm struggling to code the nano. I have had it running example code from adafruit and all the neopixels work beautifully but when I try to compile your code I get an error message for the chronodot library which I am sure I have installed correctly - any ideas? Bit frustrated as it looks great even without the lights!

jdeboi (author)amarston2017-01-24

Can you post the error message? I bet it has something to do with the library.

Might be something related to the RTC library which I might have to fix. try changing:

dayOfTheWeek() to dayOfWeek()? (or possibly vice versa)

jasongobus (author)jdeboi2017-08-31

This is the error i get..

any help??

classroomClock:36: error: 'RTC_DS1307' does not name a type



D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void loop()':

classroomClock:142: error: 'RTC' was not declared in this scope

now =;


D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void initChronoDot()':

classroomClock:622: error: 'RTC' was not declared in this scope



D:\jgobu1\My Documents\Downloads\Classroom-Clock-master\Code\classroomClock\classroomClock.ino: In function 'void initChronoDot(int, int, int, int, int, int)':

classroomClock:646: error: 'RTC' was not declared in this scope



exit status 1

'RTC_DS1307' does not name a type

jasongobus made it! (author)2017-08-30

Here is my progress so far,
I used a CNC machine to make the parts, Just waiting for the Neopixels to get here then i can put it all together.

Great instructable..

jasongobus (author)2017-08-29

Hey Do you have the DXF for this file?? i tried using Inkscape to make the DXF but the scale is HUGE.. it says the length is 1100mm.. .which seems heaps bigger than what you have in your video:?

any help please im keen to make this for srue

jasongobus (author)2017-08-22

Can this be done with a Arduino Mini Pro??


tastewar (author)2017-02-15

Hey jdeboi-

What are the basic (rectangular) dimensions of this clock?

thec34 (author)2017-02-13

I've always wanted to get into electronics and I can now see how easy Arduino is to build gadgets. (I've been a software developer > 30 years) I just bought my first Uno today! I'm going to now build my own version of this clock for my wife's factory that will be used to bake crackers! (Eventually I'll make the clock wireless using a second arduino! Thanks for posting this article!

odebabeh (author)2017-01-26

Great job. I already have 1 pc arduino uno and 1pc rtc ds3231. Can I use it to build this clock too? Can I use the same program or I have to modify it? Please assist me. Thank you.

jdeboi (author)odebabeh2017-01-27

the Uno should work fine (mine is currently running on an Uno; I replaced the Nano). the rtc ds3231 should work too, but there may have to be minor tweaks in the code. Not sure.

myrobokits (author)2017-01-25

HI superb project...............

looking forward to build it

glennonrp (author)2016-06-07

I found a site called that does laser cutting. Their materials are not the same as what you have listed here. How critical is the thickness of the wood layers? For example, you call out 5mm thickness. But, they have a birch plywood that is 3.2mm. Do you think this would work? Or, conversely, they have an MDF that is 6.4mm. I tend to think something thicker would be better than thinner. What do you think?

Note: the SVG files have to be altered slightly in that colors have to change so that cuts are blue and engravings are red, and engraved areas are black. Fonts have to be changed from objects to paths. I did it in Inkscape after a learning curve. And, it's not cheap. I'm looking at a cost of well over $150 right now.

jdeboi (author)glennonrp2016-06-08

well, the thicknesses is important only if you want to use my exact process. If you go with thicker wood, you might need longer bolts, but otherwise, I think everything should be the same. I'd go thicker rather than thinner.

do you have a local makerspace? I think you'd save money if you tried to cut them yourself.

glennonrp (author)jdeboi2016-06-10

I've been looking for a makerspace. I found one in Los Angeles, but that's about 50 miles from here. I'll have to keep looking for one closer to home.

CameronM37 (author)glennonrp2016-11-06

Hi Glenn, I would recommend doing this project with cardboard and a piece of 11x17 copy paper. The template is only necessary if you want it to look exactly like the authors. Using a few layer of cardboard glued together, you can then use a piece of copy paper to create the frosted acrylic effect. While maybe no as durable, I bet is will still look great and you can use an xacto/utility blade to make the cuts instead of a laser?

glennonrp (author)CameronM372016-11-06

That's a really clever idea, Cameron. I'm going to think about that! Thanks!

CameronM37 (author)2016-11-06

Great project. I was able to successfully complete this, but have issues with the time. It always seems to lag about 17secs behind the actual time of my laptop, no matter what I've tried. Do you have any suggestions to explore on this?

aninkan (author)2016-10-23

Is it okay if I use chronodot v2.0 instead of chronodot v2.1?

CharlyeZ (author)2016-09-05

Good job.

BUT how many schools have the laser cut machine?

Dushyanta (author)2016-07-18

Man that was a freaking awesome video. Gonna learn some video making skills from you. By the way congrats for winning rainbow contest. Well done.

amarston (author)2016-06-15

What a fantastic project. I have just bought a laser cutter and this will demo its benefits so well. My neo-pixels arrived today can't wait to start making - I didn't know that these existed before seeing this, really exciting!

glennonrp (author)2016-06-02

I'm a Language Arts teacher and I use a small timer to tell me how much time is left in my period every day. I manually reset it every period. I do this because otherwise I have to subtract the current time from the start time and it takes me too long and I then manage the class poorly. Something like this would be programmable to just automatically countdown how much time is left, it sounds like. But I don't have a laser cutter. A jigsaw, yes. And I've very little experience soldering. I'd be very interested in a DIY kit. Let me know if you get around to doing that.

loskop100. (author)glennonrp2016-06-11

Aha, I only said that it was doable, not that it is easy but there are ways to make it easier. You could increase the width between the segments to stiffen them and if you glue the acrylic pieces to the back of the front board then you that will reinforce the segment cutout panel further. I have tried cutting out those segments on my home made cnc router and the pieces between the segments broke when I was using mdf and even with ply .However, if you make the front\ really only as a facia and the build the rest of the enclosure but you should end up with a the look that you want.See ifn you can get hold of some jig saw blade that are thin, mostly used for cutting veneers and such. As you have probably deduced, I am changing the way that the AUTHOR built his project but only because I understand more about cutting stuff out of various materials than I will ever understand about coding and pixie wrangling so perhaps look at the instructable like a student essay, read and correct perhaps, make your changes as if notes in the margin/

loskop100. (author)glennonrp2016-06-11

Hi glennorp, I find your posts a little puzzling because being a teacher you already know that very little knowledge is known, it is all the result of learning. . Soldering a basic joint takes about 2 minutes to learn ( most people who say that they can't solder have either never tried or never read a "how to " on the subject) A lazer cutter will just do the same job as a jigsaw but a bit faster. For a template you could import a picture of the seven segments into inkscape, export and print them full size that you want and glue them onto the board you choose and cut them out with your jigsaw and clean up the edges with some sandpaper.By the comments that you have made it seems to me that you want to have a go so perhaps, just start with cutting out the seven segment pieces first before buying the rest of the parts, 6mm (1/4inch) is easy to cut using a metal cutting blade and is easy to sand straight and smooth and is only a couple of dollars and when you are happy with that then consider buying the rest of the parts. I have 2 autistic grandkids and am going to build some of these for them and their school to replace the ones that I made that just have different colours for different events ( I hadn't thought of making an actual clock so thanks AUTHOR ) and I have just ordered all the electronic parts for $A18 delivered from our Asian friends and the perspex I get from a plastics factory from their off cuts bin for a case of Fosters for a boot full: you don't need a full sheet, just enough to cover the holes. Good luck with your project as being a teacher I believe that you already have all the skills required to achieve your goal.

glennonrp (author)loskop100.2016-06-11

I'm going to give it a shot. I already printed out the templates from Inkscape. The one layer with the digits is going to be a lot of cutting, though. It's clear why a laser cutter would be helpful. I know I can do it with a jigsaw. But, a laser cutter would be so much cleaner and faster. I think when you have a look at the files a little closer, you might agree with me that it's a lot of very small cuts.

loskop100. (author)loskop100.2016-06-11

I forgot to say that MDF ( or HDF if you can get it ) is better for cutting as it sands easier than play and doesn't leave a furry edge or tear out on cross grain but the MDF needs to be sealed all around with shellac or similar, pay close attention to the edges, to keep it from warping and swelling with time.

lucasrib1 (author)2016-06-05

great idea, beatiful design and amazing videotutorial!

How could we connect the "clasroom clock" w/a mobile? Is ti possible? To control some of its features via wifi?

jdeboi (author)lucasrib12016-06-08

definitely possible. sounds like a good rasperry pi project, or the Arduino Yun, or a Bluetooth sheild...

loskop100. (author)jdeboi2016-06-11

Thanks for posting this great idea and for all the work involved to bring it to us. I am going to have a go but change a few things and include a wifi NRF24L01+ 2.4GHz Wireless RF Transceiver Module and addressable led strips as well as cheaper parts, hopefully your code will still work with MINOR mods as getting my head around coding is causing the rest of my hair to fall out.

jdeboi (author)lucasrib12016-06-08

definitely possible. sounds like a good raspberry pi project, or the Arduino Yun, or a Bluetooth sheild...

ArunK197 (author)2016-06-02


Great Project.. not everyone have access to laser..

Have you considered kick starter or DIY kit which would be more useful to many.


DiY World (author)ArunK1972016-06-06

i would definitely buy this kit for less than 100 dollars

jdeboi (author)ArunK1972016-06-02

good idea!

tastewar (author)jdeboi2016-06-04

Yes, I would love to buy a kit from you (mostly the laser cut parts...) to know for sure they were done properly.

tastewar (author)tastewar2016-06-05

I think maybe even some service bureaus allow you to upload plans and put together all the (laser cut) parts in a BOM so others can purchase as a kit. That would be great as well...

glennonrp (author)2016-06-04

alternately, if you could put some kind of PDF or similar that would include templates for those without a laser cutter, that would be awesome

Biodynamic (author)2016-06-02

I'm putting a kid in charge of building one for me as soon as we start up again in August! Thanks :)

kenyer (author)Biodynamic2016-06-04

that's the way to do it :)

kenyer (author)2016-06-04

this one looks really nice. And it seems much easier to make with the addressable neo-pixels. I did one with shift-registers that was a lot of work.

sumitkhetan (author)2016-06-03

i love, awesome job dude

soumitraseth (author)2016-06-02


Very Beautiful.?????

Procrastinateher (author)2016-06-02

This is an awesome idea! If I knew how to program one of these, I think I'd try to find a way to incorporate an analogue clock face with the face going from green to yellow to red in the space under the minute hand, for my visual learners (I teach a multi-categorical support class that includes a fair bit of ASD and ODD kids).

We're about to spend like AU$40 on an analogue wall clock that's just a bit easier for these kids to read/understand, so I'd totally be on board if you ever decided to manufacture your clock for us less programming-minded individuals :)

dezi.gebel (author)2016-06-02

Love this idea. I work at shop with a laser cutter for wood. I am going to make a few of these for my and the other teachers in her school. She would love this for her class. She teaches 1-2 Grade.


jdeboi (author)dezi.gebel2016-06-02

:) :)

GreenMoon (author)2016-06-02

Fantastic project. I have not seen a better done video for an Instructable.

About This Instructable




Bio: maker, programmer, teacher, activist
More by jdeboi:Classroom ClockInteractive Spacelady MuralSimple Arduino Monome
Add instructable to: