Animatronic Singing Pumpkins




Introduction: Animatronic Singing Pumpkins

This was an idea originally from a friend, that i have bumped to the next level.  The goal is to create singing/ taking pumpkins through the use of an Arduino and Vixen.  We will be using the "Generic Serial" port to align these two awesome resourses.  The Arduino will have to be plugged into a computer during operation, so a laptop is handy.  This is my first instructable, so please comment.

Here is the Finished Product:

You will need:

-An Arduino (I used an UNO)
-PCB Prototype Board
-Assorted headers (male and female)
-5V regulator
-.33uf capacitor
-.1uf capacitor
-3 resistors (~600 ohm)
-6 Bright LEDs (for eyes)
-Insulated Wire
-9V battery clip
-9V Battery
-3 styrofoam pumpkins (I used decorative ones from michaels, though we had to hollow them out ourselves)
-3 Servos
-3 plastic knifes
-3 small hinges (I used 1.5'' and 2'')
-Masking and electrical Tape
-Arduino Software
-Vixen Software


-Hot Glue Gun
-Soldering Iron
-Box Knife
-Carving Tools(if pumpkin isn't hollow)

Step 1: Wiring the Servos/Adruino

The Arduino will not have enough power to run 3 servos at one time.  For this reason, we must use external power, in my case, a 9 volt battery.  Servos function between the range of 4.8 and 6 volts, so i use a 5 volt regulator to be sure not to overload the servos.  Regulators require capacitors to function properly, so i have accounted for that in my schematic.  Make sure that the grounds from both the battery and the arduino are attached!  From my pictures, you can see that I do not have much on my prototyping board.  This is because i use headers.  This is for my convenience.  I can unplug power, the Arduino, the servos, and the LEDs quickly because of this.

Step 2: Carving the Pumpkins

Now for the creative part.  The pumpkins we have were Styrofoam and solid.  This required us to cut them in half, horizontally, and hollow out the insides.  Then we painted the insides orange.  The cut you make when cutting in half will be the shape of the mouth, so plan ahead.  

For the eyes, we didn't carve all the way through to the inside.  After they were cut, we painted the eyes black.  Then We drilled/poke holes through where we wanted the LEDs to be.

Install Small hinges at the back of each pumpkin.

Step 3: Making a Box

This is where you design the base on which your pumpkins will be sitting.  I made a box using plywood for the top and bottom, and 1x2s for three of the sides.  This is where my arduino, board, and battery will sit while in use.  The 4th side was left open for easy access.  We next made steps out of some sound reducing material I had laying around, though Plywood would Work just fine.  Then, we Spray painted the base black, and screwed the pumpkins on into there proper place.  

Step 4: Installing the Servos

We installed our servos on there sides(with hot glue), and hot glued plastic knifes onto them, with excess hanging out for when the mouth opens.  Feed the wires out the back of the pumpkins.  Plug the wires into your homemade board, and hook the Arduino up to it using PWM pins 3, 5, and 6.  Hook the battery up, and double check that the grounds of the arduino and battery are connected in some way.  

Step 5: LEDs

The LED's are fairly self explanatory.  Basically, drill a hole into each eye of each pumpkin, slightly smaller than the LED itself.  Push the LED in through the inside of the pumpkins, and route the wires along the top of the mouth out through the back, and off to your board.    Pictures coming soon.

Step 6: Programming

Okay, so your setup is now complete.  Now its time to make them talk.  Make sure you have both Arduino and Vixen installed on your computer.  Knowing the basics of the arduino language will help a lot.

You will need to start a Vixen Profile specifically for this application.  I suggest 8 channels, as that is what .
 Once setup, adjust the program angles to your pumpkins, as noted in my program.  Default is 45.

Here is the Program that I run, though feel free to experiment with your own:

  This code runs vixen through the arduino, usining pins 3, 5, and 6 with
  3 seperate servos; pins 9, 10, and 11 are used for 3 LED circuits with PWM;
  pins 12, 13 are extra digital pins. 

#include <Servo.h>
Servo Pumpkin1;
Servo Pumpkin2;
Servo Pumpkin3;
int pos = 0;

int Chan1 = 3;     //PWM-Servo 1
int Chan2 = 5;     //PWM-Servo 2
int Chan3 = 6;     //PWM-Servo 3
int Chan4 = 9;     //PWM-Light 1
int Chan5 = 10;    //PWM-Light 2
int Chan6 = 11;    //PWM-Light 3
int Chan7 = 12;     //extra
int Chan8 = 13;    //extra

int i = 0;     // Loop counter
int incomingByte[8];   // array to store the 25 values from the serial port
int val1;
int val2;
int val3;

//setup the pins/ inputs & outputs
void setup()
  Serial.begin(9600);   // set up Serial at 9600 bps

  pinMode(Chan1, OUTPUT);
  pinMode(Chan2, OUTPUT);
  pinMode(Chan3, OUTPUT);
  pinMode(Chan4, OUTPUT);
  pinMode(Chan5, OUTPUT);
  pinMode(Chan6, OUTPUT);  
  pinMode(Chan7, OUTPUT);
  pinMode(Chan8, OUTPUT);

void loop()
{  // 8 channels are coming in to the Arduino
   if (Serial.available() >= 8) {
    // read the oldest byte in the serial buffer:
    for (int i=0; i<9; i++) {
      // read each byte
      incomingByte[i] =;
    val1 = incomingByte[0];                  
    val1 = map(val1, 0, 255, 0, 45);    //Change the last number according to how far you want the pumpkin to open.
    val2 = incomingByte[1];
    val2 = map(val2, 0, 255, 0, 45);    //Change the last number according to how far you want the pumpkin to open.
    val3 = incomingByte[2];
    val3 = map(val3, 0, 255, 0, 45);     //Change the last number according to how far you want the pumpkin to open.

    analogWrite(Chan4, incomingByte[3]);      //Light 1
    analogWrite(Chan5, incomingByte[4]);      //Light 2
    analogWrite(Chan6, incomingByte[5]);      //Light 3
    digitalWrite(Chan7, incomingByte[6]);       //Extras
    digitalWrite(Chan8, incomingByte[7]);       //Extras

Step 7: Final Touches

Make your pumpkins look their best.  At this point, I needed to touch up the paint, both on the foam and the pop sickle sticks(which replaced the plastic knives half way though).  I also covered the servos with orange felt to make them more aesthetically pleasing.  The options are endless, make them awesome.  

Step 8: Get Working

The setup of the pumpkins is now complete.  Time to program the songs using vixen.  This step will take a while, but is totally worth it.  Enjoy!

Halloween Decorations Contest

Participated in the
Halloween Decorations Contest

Be the First to Share


    • Big and Small Contest

      Big and Small Contest
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • Make It Bridge

      Make It Bridge



    2 years ago

    Hi there! Many thanks for the great Instructable! I've tried the settings above and it worked with 3 servos. Unfortunately when I try to change it to 8 servos on an Arduino Mega board (servos powered by an external source) I can't seem to get things right... I just can't figure it out what I'm doing wrong... Can you help me by providing a script with 8 servos?


    3 years ago

    Building this in class. Have the electronics built using the Ardunio and have the code loaded on it. Never used Vixen and so I have no idea how to even get started. I am using version 3.6. Please help.


    4 years ago on Step 8

    im having problems getting it to run on vixen 3.5 any help would be appracticed


    10 years ago on Introduction

    Thanks for the great project idea. Here's my stab at it.

    I found I had to rearrange the pins... the servo.h library disables PWM on pins 9 and 10, even if there are no servos there, so I moved two of the servos to pins 9 and 10, then I was able to modulate the brightness of all the led's.

    I also used dubro hinges for radio control airplane control surfaces and some control horns on the backs of the pumpkins so the insides of the mouth look a little cleaner.

    Really had a blast working through this. Can't wait for Halloween! Thanks again for the excellent job.


    Reply 7 years ago on Introduction

    Excuseme, how do I configure Vixen to move the servo motor? I connected
    with Arduino, flashing lights, but I have problem with the servo motor!


    Reply 10 years ago on Introduction

    Looks Great! I had the idea of putting the Servos behind the pumpkins after the fact, but decided to put it off till after Halloween, in case I screw something up. And thanks for pointing out the detail in Pins. I could not figure out why PWM was not working in my test.

    Thanks again, your pumpkins look awesome!


    7 years ago on Introduction

    Excuseme, how do I configure Vixen to move the servo motor? I connected with Arduino, flashing lights, but I have problem with the servo motor!


    8 years ago on Introduction

    This is cool, but the video has been blocked due to copyright violation. Wish I could see it in action!


    Great project. I am attempting this but seemed to have bit off more than I can chew.

    Did you use Vixen 2.0? I just learned how to use Vixen 3.0, but need to figure out how to get it to work with the Arduino. Any tips?


    Reply 9 years ago on Introduction


    I did use vixen 2.0 with these pumpkins. I am currently separated from my Arduinos and pumpkins, but I did just install vixen 3.0 on my computer to see if I could help. My Arduino Code uses the generic serial protocol. So, If im looking at this right, when you open vixen 3, you will want to press "configure controllers," then "add new controller," and click on Generic Serial. Then, back on the "controllers configuration" page, you should be able to add the proper # of channels. Clicking on "configure Controller," you should be able to choose the same port that your arduino is plugged into, and it should work!

    As I said, I am not to familiar with this software, and this is a shot in the dark. Hope it helps! Let me know how it goes!


    Reply 9 years ago on Introduction

    Thanks for taking the time to look into this. I was able to figure it out and get everything working correctly. Your thoughts above were correct, btw.

    I needed to change the baud rate to 57600 though. It didn't work correctly with 9600 for me.

    I am at the point of getting the servos mounted correctly. This has been an educational challenge each step of the way but well worth it.

    thanks again.



    10 years ago on Step 6

    Very nice!
    Care to share your sequence file for us beginners?


    10 years ago on Introduction

    Super tight. Nice job on the pumpkins. Also good idea on the background. The pumpkins standout even more so with that background. Good job.