Introduction: CountClock in Rainbow Colors
This Instructable was inspired by the Instructables' Rainbow Contest: indicate time using the CountClock concept, using all colors of the rainbow. Presented are all manufacturing design files and the Arduino program code to make your own Rainbow CountClock.
The CountClock is a clock specially designed for children: it helps them to better understand how to tell the time from an analogue clock (among others by counting the lights, that's why it is called CountClock, see Step 1 below for more info). The CountClock project was launched on Instructables in January 2018. Feedback from the audience on this open source project often refers to the need for facilitating children’s clock learning process: what use is a clock that is useful only during the clock learning process? This new Instructable CountClock in Rainbow Colors shows that the CountClock is not only a learning clock, it is also a decorative and functional clock.
The CountClock presented here uses an Arduino controller with libraries to drive the multicolored LEDs. The build presented here uses minimal components, not even a timer module. The time is kept by the Arduino controller itself and adjusted permanently, which requires a calibration step by the programmer. A dedicated timer model is recommended though.
How to read out time from the CountClock in Rainbow Colors? The inner circle of lights represents the hours: one light means the hour is one, two lights means the hour is two. And so forth. The outer circle represents the minutes: one light means the minute is one, two lights means the minute is two. And so on. The rainbow colors themselves do not have a special function, these are decorative only and change from red (at one) to green (at five) to blue (at nine).
The further steps in this Instructable show the making of a CountClock. Presented are all manufacturing design files and the Arduino program code to make your own Rainbow CountClock, for which in some cases is referred to earlier published Instructables.
First however, the concept behind the CountClock is illustrated in Step 1 below: it is an important feature for appreciating the open source CountClock project.
Step 1: CountClock Concept
The CountClock was designed to assist young children in learning to tell the time: the confusing concepts of an analogue clock (the double scales and double hands, the numerals (or their absence), the half hours and quarters) are all decomposed and offered as separate learning steps, tuned to young children. Multi-colored lights indicate time on separate hour and minute scales. For the youngest children for example this results in only presenting the full hours. Just by counting the lights they can read off the hour: knowing the numerals is not needed. In every learning step additional concepts of analogue time can be added, like half hours or quarters. For the older children all minutes including the seconds can be highlighted; in this highest learning level the looks of the CountClock closely approximate a conventional analogue clock. More info on the CountClock concept can be found in the original Instructable: https://www.instructables.com/id/Countclock (January 2018).
Step 2: Wooden CountClock Casing
The CountClock housing is a sandwich construction of multiple wooden panels. The middle panel has a large cavity that allows to place the electronic parts. The front panel has a small circle of 12 holes for the hours and large circle of 60 holes for the minutes. These holes each have rounded light pipes that guide the light from the LED strips to the visible front, thus allowing to read off the CountClock from an angle. The best looks for the wooden CountClock housing is when it is made using CNC milling (because of its high accuracy and fine cuts). The CNC milling design files are available in multiple flavours: the source is in human-readable scalable vector graphics (SVG), for the router the DXF file is available. The design files can be downloaded from a separate Instructable, see Steps 6 and 7 in https://www.instructables.com/id/CountClock-Hours-and-Minutes.
Step 3: Electronic Parts
This version of the CountClock has only an Arduino controller (Adafruit Trinket Pro) and two LED rings (Adafruit Neopixel 24 (of which only 12 LEDs are used for the hours) and Adafruit Neopixel 60 (in four quarters of 15 LEDs) for the minutes). The components are listed below, including links to the manufacturer's webshop:
- Adafruit Pro Trinket 5V/16 MHz at Adafruit.com
- Adafruit Neopixel 24 at Adafruit.com
- 4x Adafruit Neopixel 15 at Adafruit.com
Other electronic parts you may easily purchase in your local electronics shop: a condensor (1 micro-Farad), a resistor (1 kOhm), conventional bulb LEDs to be used as light pipes (12 larger, say 8 mm and 60 smaller ones, say 5 mm in diameter). And some wiring and soldering needs. You might also consider integrating a light sensor in order to adjust the LED brightness to the ambient light.
Adding a timer module is a good idea for improving the CountClock, but that is not done in this Instructable. The optional element is a Real Time Clock module (for example the DS1307 at Adafruit.com). Without the timer module you'll be continuously monitoring whether your CountClock keeps good time (depending on the success of the calibration step).
For connecting the electronic parts it is referred to the manuals by the manufacturer’s NeoPixel Überguide.
Step 4: Protective Template
The protective template is an important component in the CountClock design. It has constructive and safety purposes, but also esthetic functionality: it guides the light in such way that only the targeted light is on, and not he neighboring lights. The protective template is an opaque plastic slab, best made on a laser cutter. The source file is available is in human-readable scalable vector graphics (SVG) and for the lasercutter a DXF file is available. The design files for the protective template was published in a separate Instructable, see https://www.instructables.com/id/CountClock-Protective-Template-Design.
Step 5: Arduino Code
The Arduino code for programming the CountClock in rainbow colors is presented in this step. The code has a lot of comments and is easy to understand. Arduino libraries that are used: TimeLib by Michael Margolis and Adafruit’s Neopixel library.
The Neopixel LEDs need information on the three colors Red (R), Green (G) and Blue (B). The rainbow effect is obtained by ramping up and down two colors simultaneously. In none of the data points all three colors are highlighted at the same time. The graph above shows the color patterns for the hours (line with filled data points) and the minutes (line with open data points). Some remarks on the Arduino code:
- For the hours the LED ring has 24 LEDs, while only 12 lights are required. This means that one LED is skipped between the hours. Reason for opting for the ring with 24 LEDs is the larger size in diameter.
- Neopixel LEDs are very bright, which especially at night is inconvenient. Therefore, the LEDS are dimmed during the evening and even more during the night time. This is done with the variable ‘Dimfactor’ which varies between 10 and 30. The timing of the softer light is variable and dependse on the month in the year (see variable TwilightStartTime in the code below).
- In this design no timer module is used, which means that the timer capability of the Arduino board is used. Its clock is not very accurate (which is defendable for many purposed but not handy in a clock) so a calibration is required. This is done in the lower part of the main loop, but adjusting the time several times every minute with a fixed amount of seconds forward (drawback is that the seconds hop irregularly, a band-aid solution is to not display the seconds: to do so, comment out the line 'strip.setPixelColor(CurrentSecond+24,strip.Color(SR,SG,SB))' in the code). In the current code, adjustments are made twelve times every minute, by 2 seconds forward. Further tuning may be necessary, for example every hour, and the fine tuning may be done once a day.It is recommended however to apply a timer module, see Step 3 above.
Below the current version (version 1.0 from July 2018) of the Arduino code for the CountClock in Rainbow Colors is available for download:
Step 6: Making of This Instructable
Photographing bright LEDs is not easy: their light quickly overexposes the image. The solution applied here is to make two pictures: one with all lights off (showing brightly the CountClock front) and one with all lights on, but with a very short shutter time, resulting in a much darker picture. The two pictures are shown above. Then, the lights were cut out of the darker picture using image manipulation software and topped on to the bright picture in separate layers, which allowed to easily make the GIF animation shown at the beginning of this Instructable.
Step 7: Share the CountClock Concept
The open source CountClock was designed as a clock that facilitates children in learning how to tell the time. But as this Instructable shows the CountClock is perfectly suited for anyone who likes non-standard clocks. If you like the concept then please feel free to share the concept via social media (via Twitter https://twitter.com/CountClockCC and FB https://www.facebook.com/Openproducts-570422363031383). You might also point people to the Instructables gallery by Openproducts https://www.instructables.com/member/openproducts or point them to the CountClock website https://www.countclock.cc/en.
The CountClock and its open source design files are freely available via Instructables, but the CountClock may also be bought as a complete and working product, or as a DIY kit containing only the casing and the protective template via the Openproducts webshop https://www.etsy.com/shop/openproducts (no sales though in August 2018).
Thanks for reading!
Note: see also the CountClock in Tidal Mode, which uses the CountClock hardware for a different way of visualizing time.
Participated in the