Introduction: Flock Clock

Picture of Flock Clock


The Flock Clock uses male and female drinking birds to display time.  Binary addition of the female birds (left to right) yields the hour.  Binary addition of the male birds (multiplied by five) yields the minute--within five minutes.  An Arduino processor provides the signals needed to drive Peltier cells which heat the fluid in the birds and causes the bobbing motion.  

102-1671-nd  Peltier
pb1124-nd  relay
drinking birds
320081  5 volt 6 amp power supply for Peltier

Step 1:

Picture of

 Cut a 12" by 12" piece of 1/4" thick plexiglass for the base.  Use four three inch long acrylic rods to support the upper plate (I cut the handle of a fancy toilet plunger for these rods).

Step 2:

Picture of

 Fasten the plexiglass to the rods with screws.  Pre drill holes that are slightly smaller than the screw threads (1/16" smaller).

Step 3:

Picture of

 Fasten the top plate with screws.

Step 4:

Picture of

 Cut small notches in the base of the dunking bird (to accept the Peltier cells).

Step 5:

Picture of

 Ideally, the Peltier cell should be a snug fit.

Step 6:

Picture of

 Drill two holes in each bird's base--the holes should be toward the front of the base.

Step 7:

Picture of

 Drill holes in the upper plate to match the holes in the bird base.  ONE AT A TIME.

Step 8:

Picture of

 As you prepare each base, insert the bird body and bob it to its full extent both directions.  Be certain that the birds don't collide before you drill holes.

Step 9:

Picture of

 Number each base, or you will have trouble later matching the base holes to the top plate holes.

Step 10:

Picture of

 Solder about 15 inches of wire (#22 stranded) to each Peltier cell.  Place heat shrinkable tubing over the solder joint.

Step 11:

Picture of

 Using epoxy, glue the Peltier cells to the bird base.

Step 12:

Picture of

 In the upper acrylic plate, drill a hole behind the bird base (about 1 inch behind the base) large enough to slip both Peltier wires (and solder joints) through.

Step 13:

Picture of

 Place the wires through the hole.

Step 14:

Picture of

 Number the red wire as you prepare each bird base.  You will need to keep up with this to match the relays to the correct bird.  
Bird 1 Arduino pin 11, "8" hour
Bird 2 Arduino pin 10, "4" hour
Bird 3 Arduino pin 9,   "2" hour
Bird 4 Arduino pin 8,  "1" hour

Bird 5  Arduino pin 4, "8" minute
Bird 6  Arduino pin 3  "4" minute
Bird 7  Arduino pin 2,  "2" minute
Bird 8  Arduino pin 1, "1" minute

Step 15:

Picture of

 Drill holes in perfboard and use nuts and bolts to prepare to mount the relay interface (perfboard).

Step 16:

Picture of

 This is the schematic--quite a bit of wiring.  I mounted the relays in wire wrap sockets to make the work easier.  The pushbutton is used to "set" time.  The clock starts at 1 o'clock and each push advances the time five minutes.  The LED's help you to know where you are when setting the time (the birds have about a 100 second delay before they start or quit bobbing).

Step 17:

int second=0;
int minute=0;
int hour=1;  //start time at 0
int valm=0;
static unsigned long lastTick = 0; // set up a local variable to hold the last time we moved forward one second
// move forward one second every 1000 milliseconds
void setup() { //set outputs and inputs
pinMode(1, OUTPUT);pinMode(2, OUTPUT);pinMode(3, OUTPUT);pinMode(4, OUTPUT);pinMode(5, OUTPUT);
pinMode(6, OUTPUT);pinMode(7, OUTPUT);pinMode(8, OUTPUT);pinMode(9, OUTPUT);pinMode(10, OUTPUT);
pinMode(11, OUTPUT);pinMode(12, OUTPUT);pinMode(13, OUTPUT);
void loop() {
if (millis() - lastTick >= 1000) {
lastTick = millis();
// move forward five minutes every 300 seconds
if (second >= 300) {
second = 0; // reset seconds to zero
// move forward one hour every 12 five minute intervals
if (minute >=12) {
minute = 0; // reset minutes to zero
if (hour >=13) {
minute = 0; // reset minutes to zero
if(minute == 1 || minute == 3 || minute == 5 || minute == 7 || minute == 9 || minute == 11) {  digitalWrite(1, HIGH);} else {  digitalWrite(1,LOW);}
if(minute == 2 || minute == 3 || minute == 6 || minute == 7 || minute == 10 || minute == 11) {digitalWrite(2, HIGH);} else {digitalWrite(2,LOW);}
if(minute == 4 || minute == 5 || minute == 6 || minute == 7) {digitalWrite(3, HIGH);} else {digitalWrite(3,LOW);}
if(minute == 8 || minute == 9 || minute == 10 || minute == 11) {digitalWrite(4, HIGH);} else {digitalWrite(4,LOW);}
//hour units
if(hour == 1 || hour == 3 || hour == 5 || hour == 7 || hour == 9 || hour == 11) {digitalWrite(8, HIGH);} else {digitalWrite(8,LOW);}
if(hour == 2 || hour == 3 || hour == 6 || hour == 7 || hour == 10 || hour == 11) {digitalWrite(9, HIGH);} else {digitalWrite(9,LOW);}
if(hour == 4 || hour == 5 || hour == 6 || hour == 7 || hour == 12) {digitalWrite(10, HIGH);} else {digitalWrite(10,LOW);}
if(hour == 8 || hour == 9 || hour == 10 || hour == 11 || hour == 12) {digitalWrite(11, HIGH);} else {digitalWrite(11,LOW);}
valm = analogRead(0);    // add five minutes when pressed
if(valm<800) {
 This is the Arduino code.

Step 18:

Picture of

 Mount the terminal strip.

Step 19:

Picture of

 Drill holes and mount the Arduino processor board.

Step 20:

Picture of

 Wire the relay interface board.  When connecting "pin 8" on the relays, use two runs of wire wrap wire.

Step 21:

Picture of

 Insert relays into sockets.

Step 22:

Picture of

 Electronics should look pretty good--before you tie everything together.

Step 23:

Picture of

 Take a 1.5 inch piece of #22 solid, strip both ends and leave one end open to receive wire wrap wire from the relay board.

Step 24:

Picture of

 Turn the relay board upside down and add wires to connect to Arduino and the terminal strip.  Don't forget that wires to the terminal strip have to survive turning the perforated board over (next step).  I ran those wires toward the lower part of the picture shown, then under the board (so they wouldn't get tangled when the perf board is flipped).

Step 25:

Picture of

 Hide the wires as much as possible.

Step 26:

Picture of

 Add the wires from the 5volt 6 amp power supply (each Peltier cell will consume about .7 amps).

Step 27:

Picture of

 Bring the wires from each bird to the terminal strip (now, aren't you glad that you marked those wires!)

Step 28:

Picture of

 Everybody is ready to bob!  If you've been wading through all of this for the secret on how to determine drinking bird sex, think "blue" for boy and pink for girl (and just what were you thinking?)


J@50n (author)2010-02-05

They are ubergeek, thats what makes them AWESOME! 

Great Ible,


Void Schism (author)J@50n2010-10-28

no, geeks like innovative solutions that work.
Fanboys like solutions only they and a few others can use in order to make them feel elite.
Fun clock though, even if it's complicated to read

simonches (author)Void Schism2010-11-03

Troll alert :P

Void Schism (author)simonches2010-11-03

No, just a proud geek.
Same as how the guy who fixes my car is not an engineer, he's a mechanic.
You can't claim fanboys aren't defined by their smug elitism.
I'm not trolling, just looking to better define and use terms.

agis68 (author)2010-10-23

Nice job...but if I lose so much time to understant what time is I waste my simple you see????


Javin007 (author)2010-01-28

Binary Clocks are ubergeek...  Drinking birds are ubergeek.  The combination is unfathomable.

You, sir, have quite possibly created the single coolest thing in existence.  I gotta make one of these to sit on my fireplace mantel.  :D

MikeTheMaker (author)Javin0072010-01-28

Thank you! 

If you use a 12 ohm 3 watt resistor for heat, you can save a lot of money (and probably mount them more easily than Peltier cells).  The start/stop response of a resistor is better--but resistors do get pretty hot and smelly.  I haven't tried one long enough to see if the odor ever goes away. If you control the heaters with a power transistor, you could eliminate relays, diodes, sockets (cost and labor).

The photos really don't capture the "technosexy" look . . . and the thing is fascinating even to those (most people) who don't want to tackle reading the time.

Javin007 (author)Javin0072010-01-28

(5 stars btw)

hot-fresh-rider (author)2010-01-24

what a bizare instructable ! full marks for effort, not so sure on practicality but then perhaps this wasnt supposed to be practical !

bronhitis (author)2010-01-24


JellyWoo (author)2010-01-21

 Which ones are male and which ones are female?

MikeTheMaker (author)JellyWoo2010-01-22

 Blue for boys--pink for girls

downeasta (author)2010-01-21

I have a suggestion for those who may not have a box of Peltier devices around. Why not just use power resistors? All we need is some heat, here, not the heat and cold produced by the Peltier. You could cut the cost down by nearly $150 USD! Just a thought, folks.

spicy_puppy (author)2010-01-20

incredible and totally awesome.
i would have a hard time to tell the time in the morning.

wouldnt it be nice to have that one on your wrist :)

AndyGadget (author)2010-01-19

Drinking birds, peltier devices and time-keeping is something you would never expect to find in the same project, but you've done it ooooh sooooo successfully.
Brilliant lateral thinking!
(I never realised they came in 'male' and 'female' varieties.  I assumed that my recent 'male' one was a safer replacement fluid than the 'female' one I had years ago #;¬)

fungus amungus (author)2010-01-19

Oh wow. This is great.

missplumeau (author)2010-01-19

That's wild! 
Here is a thought: by the time one figures out what time it is with your fabulous contraption, that time is long gone. Which leads one to realize that time is fleeting. Conclusion: Carpe diem, enjoy the day, smell the roses, create wild this clock.
Thank you for sharing it so diligently! 5*

Rob K (author)2010-01-19

Nice crazy clock.

Kryptonite (author)2010-01-19

Wow, and I thought one of these things was cool. If you arranged it in an orderly fashion on a shelf or little case for each one, it would look even better!

Doctor What (author)2010-01-18

 I quite agree with randofo!  

This is the ultimate in geek clocks!

Arbitror (author)2010-01-18

This is totally useless for telling the time, but just plain awesome! Good job (Five Stars!)

Arbitror (author)Arbitror2010-01-18

Actually, it's not useless, it's impractical! Sorry!

randofo (author)2010-01-18

I think you have just blown my mind! Thank you for sharing this.

About This Instructable




Bio: I am an author and a maker. My current project is Santa's Shop. I'm working on a science fiction type book--more later. @EngineerRigsby
More by MikeTheMaker:Voice Recognition and Speech With Arduino ShieldSanta's Shop 2017, the TrainSnowflake Gear Wreath
Add instructable to: