New Years Ball Drop Replica

I was asked to build a replica ball drop for a friend. I had 3 days to get this thing working. It was a fun build, and took a lot of headaches to get it setup. In the end it worked out great.

The ball itself is a Christmas ornament that has been cut in half and stuffed with 14 LEDs, a 9V and a switch. I hot glued the thing back together and cut a hole in the bottom for the rod to come through. My wife decorated it for me; she also decorated the building.

Parts used:

  • Christmas ornament
  • Pill bottle (base of rod)
  • 2 boxes
  • Spent soldier spool
  • Plastic clothes hanger (rod)
  • Yarn
  • Paperclip
  • Arduino
  • LCD shield (key pad)
  • LED’s
  • Components for relay circuit
  • Paint
  • Glitter
  • Tiny mirrors
  • Servo (mod for continues rotation)

The next thing was to make it go down the rod. There is several ways of doing this, the best in my opinion to use a screw like device and have the ball mounted on it for the linear motion. But I did not have the supplies or money for that. So I used a moded servo for a pulley type system.

I took a spent soldier spool and glued it to the horn of the servo. That’s where the yarn is tied. The yarn goes up the rod, through a looped paperclip and attached to the ball. When the servo “unwinds” the spool, the ball is lowered.

Besides the arduino and LCD shield, there is a circuit to control the servo. It is a simple 5V regulated relay transistor setup. I used the same schematics as the IRC controlled air freshener.

The trickiest part of the build was to lower the ball at a timed rate and have it hit the bottom on count 0. It took some trial and error with delay times in the code, but it worked out nicely.

//up == 130
//down == 306
//right == 0
//left == 480
#include <Servo.h>
#include <LCD4Bit_mod.h>
#include <stdlib.h>

Servo myservo;  // servo object
LCD4Bit_mod lcd = LCD4Bit_mod(2);

int key_in;

void setup()
 lcd.printIn(" Time Square    ");
 lcd.printIn("  New Years Eve ");
 pinMode(3, OUTPUT);

void loop()
 key_in = analogRead(0);
 if (key_in == 0){
 digitalWrite(3, LOW);
 lcd.printIn("Coming Down");
 key_in = 0;

 else if (key_in == 480){
  lcd.printIn("Going Up");
  key_in = 0;

 else if (key_in == 306){
  lcd.printIn("Count Down Start");

 else {


void count_down(){
 for (int i=59; i>0; i--){
  char count [21];
  char* r;
  r = itoa(i,count,10);
  if (i <= 10){

 lcd.printIn("      2011      ");
 lcd.printIn("Happy New Year!!");

About Tech B.

I am currently employed as a tech support rep for Frontier DSL internet and Dail-Up service. If you live on the East Coast and have Frontier or the old Verizon, you may have spoken with me at one point. I do side jobs programming and building things for people. I know Python better than any language in my toolbox. I can also develop Android Apps, which are Java based. Other languages include C , VB/VB.NET, some C#, PBASIC, Batch, Javascript, and some PHP. I love microcontrollers and interfacing with the outside world. I am currently working with Arduinos, which are amazing. Also I can work with the Basic Stamp family of microcontrollers; future development includes FPGA and embedded Linux. I was going to school, but have financial issues at the moment that are keeping me from the books. I plan on going back in the next couple semesters and finishing up my Associates in IT, then perusing a BS in computer science.
This entry was posted in Uncategorized and tagged , , , , , , , . Bookmark the permalink.

5 Responses to New Years Ball Drop Replica

  1. Pingback: New Year’s Eve ball drop in your kitchen - Hack a Day

  2. Bashir khan says:

    can you build one for us this year new years eve celebration?

    thanks you .

  3. I have read so many content about the blogger lovers
    however this paragraph is truly a pleasant piece of writing, keep it up.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s