Search SpikenzieLabs:

A POV that you program with your Arduino!



What makes the Povard different?:

Like most POV devices that come in kits, the Povard is designed for those interested in hobby electronics. Unlike other POV devices the Povard is programmed using your Arduino.

Most other POVs require a serial port or parallel port to upload their messages. When we started working on the Povard, we wanted to build a device that would work without the need to buy or have any special adapters. We realized that 90%+ of people that build electronics kits, already have an Arduino. Bingo! Using the Arduino as a programmer / loader for the Povard messages was the answer. The Arduino can still be used for other projects when not programming the Povard and it works on all three major computer platforms (Mac, Windows and Linux).  All you need is the Povard sketch, no breadboards, jumper wires.  Just the bare Arduino!

BASICS: Loading a message into your Povard:

Simple quick instructions on how to load your custom message into your Povard:

Advanced: Povard Options

Other than changing your message there are a bunch of advanced settings that you can change to experiment with different results on your Povard.

Below is a list of user changeable settings. These settings can be changed in the Arduino sketch in the section called “Advanced options”.

Space between letters:

The spacing between letters in your message is adjustable. When set to 1, there is one dot width between each letter. Look for the line with Kerning variable and change the value after the =.

The Arduino's pin 13 LED, works as a status light:

  1. A.On solid = Loader sketch is running and ready to program.

  1. B.Off = Programming the Povard. (Loading time is around 1-5 seconds.)

C. Flashing = Povard is loaded and ready.


The Povard is a large hand held POV device that is built onto a very cool laser cut and etched acrylic bezel.

A POV “tricks” your eyes into seeing a full image when only part of the image is visible at one time. This effect is called the “Persistence Of Vision.” This is the way the Povard works. As you move the Povard you will see one slice of each letter at a time. Your brain assembles all the slices together for you to be able to see a complete word or image.

  1. 1.Plug the Povard onto the Arduino's analog pins.

The Povard’s pin marked SCL goes into the Arduino’s Analog pin 5 and the unmarked pin goes into Analog pin 0, as in the photo to the right.

2. Attach the Arduino to your computer.

3. Edit your "Message" in the Arduino sketch.

Type your message directly into the Povard Loader Arduino Sketch. You may use upper and lower case letters, numbers and symbols. Your message may be up to 24 characters in length. Note: Shorter messages are typically easier to read.

4. Compile then upload your sketch to the Arduino.

Compile / Verify


5. Automatically, once the sketch is uploaded, your Arduino will load the Povard. (The Arduino will power the Povard during the loading process. Do not press the Povard play trigger button during this process.)

Built on LED marked “L” is connected to Digital pin 13.

  1. 6.Disconnect your Arduino from your computer. Remove the Povard from the Arduino.

  2. 7.Your Povard now contains your custom message.

BASICS: Using your Povard:

Holding your Povard:

Grip the Povard by the end with the batteries. Place the batteries in the palm of your hand, wrap your index to pinky finger around the front of the Povard and use your thumb to press the button on the PCB right above the batteries. Attach the lanyard (safety strap), around you wrist.

Swinging your Povard:

Ok, you can press the button and go crazy. Swing that Povard all over the place, have fun.

If you want to make your message more legible try the technique in the illustration below, it works for us.

This Povard moving technique makes your message easy for others to read.


Before using the Povard, make sure that the area around you is clear of objects, people and animals. Swinging the Povard can be dangerous, especially when used in low light conditions.

Use the safety strap to avoid having the Povard slip from your hand and cause injury or damage.

Space between Phrases:

For the Povard a phrase is the message. In the example below “HELLO WORLD” is the phrase. The spacing between phrases (messages since they repeat) is adjustable. Each number is around the space occupied by one column of LEDs (or slice of a letter). For example, you may want to adjust this to a low number to make a continuous ribbon of text.

Code snip-it

Kerning set to 1

Kerning set to 0

Code snip-it

Phrase spacing set to 15, note the space between the two “HELLO WORLDS”.

Phrase spacing set to 5, note in this example the “HELLO WORLD’S” are closer together.

Flip option:

Flipping the text simply sends it to the display upside down. You might want to flip your text if you affix you Povard to a moving surface and the text is upside down. Note: by default all the text is flipped, but appears normal when the Povard is held as directed.

Code snip-it

Normal text

Flipped text

Invert option:

Inverting the text causes all of the lit LEDs to be turned off and all of the normally off LEDs to be turned on. This includes the space between letters, words and phrases.  Inverting the text is very dramatic but unfortunately it doesn’t always look good. Inverted text works better with lower case letters, notice how the top of the “S” in the inverted “Spike” bleeds out into the surrounding blackness.

Code snip-it

Normal text

Inverted text

Display speed:

Depending on how you are going to use your Povard you may need to adjust the on time of the LEDs. With the default setting of 20, I can move my arm not to slow and not too fast and the Povard is readable. But if I wanted to move my arm slower then I could increase the PixelTime variable so that the LEDs would be on for a longer length of time to allow me to move my arm more slowly. Or, if the Povard was connected to a rapidly moving object, PixelTime may have to be decreased.

Each unit of PixelTime will cause around 200 micro seconds of LED on time.

Code snip-it

PixelTIme variable set to 100, this causes the LEDs to be lit for longer. While moving at the same arm speed as the other examples.  This causes the dots to become elongated.

Advanced: Making custom characters / graphics

The Povard is not limited to displaying only text. You may create any pattern that you would like, up to 24 blocks of 5x8 pixels.

Character based:

The Povard is designed to display a series of columns of eight LEDs. The internal counting and looping is based on a 5x8 pixel character, so your custom message must be made in multiples of five columns. (Note: a column can be blank (not lit), but must be counted.)

In order to make a custom message you must first understand how the coding of the LEDs works. Take a look at the following illustration.

uint8_t Kerning = 1; 

uint8_t PhraseSpace = 15;

uint8_t PhraseSpace = 5;

boolean FlipText = true;

boolean InvertText = false;

uint8_t PixelTime = 20;

How does this thing work?

When the Povard is first powered up it checks to see if the PROG pin on the programming connector has a low signal (0 volts). When not connected to the Arduino this pin is pulled high through a 10k ohm resistor on the Povard, but when the Povard is connected to the Arduino and the Povard loading sketch is running, the Arduino pulls this pin low to let the Povard know that it should go into programming mode.

Once the Povard enters programming / loading mode or playing mode, it stays in that mode until it is power cycled. (Turned off and on.)

Play mode:

On power up, the Povard’s PIC chip starts by reading the user settable variables from the EEPROM.  These include; spacing between letters, spacing between phrases, length of time for each dot and inverted text flag. It also reads the length of the message.

Next, it starts reading the message from the first character and continues though a loop counting until it counts up to the size of the message. Within each loop the PIC goes though a smaller loop counting up to five. (Since each letter is a 5x8 matrix, 5 rows and 8 columns.) On each count it reads the next column data of the character from the EEPROM, and displays the value on the LEDs.

After the PIC has counted up to the length of the message, there is a delay to space out the phrases and then the counters are reset and the message starts again from the start.

Programming mode:

When in programming mode the Povard becomes the I2C master and the Arduino the I2C slave. This means that the Povard will control the communication between the two devices.

The Povard starts by requesting the user settings data from the Arduino (spacing, inverted text etc ...). When the Povard starts to request data, the Arduino turns off the pin 13 LED to let the user know that something is happening. The next thing that the Povard requests is the size of the message, and then it loops up to the size of the message asking for one byte of data at a time saving each into the Povard’s EEPROM.

Once done, the Povard sends the “I’m finished” message to the Arduino and the Arduino starts to flash the LED on pin 13.

One byte is eight bits, which ends up working well for the Povard, since each column is eight LEDs. The EEPROM of the PIC stores data in bytes, and during playback, it loads the eight bit value onto the LEDs, where the bit is zero the LED is off and the high bits (1) are turned on.

Coding of your custom message can be done by hand, simply convert the eight bit binary number into decimal for each column and enter them into the Povard Loader sketch, in the Advanced Custom Characters section.

Building a Povard:

The Povard is available as an easy to build kit. All the parts are though hole. Below you will find the detailed build instructions and the build video that Andy the intern put together.

Steps to make a custom graphic:

  1. 1.Enter the data to be displayed in rows of five digits separated by commas. (Including a comma and the end of the line.)

  2. 2.Update the number in CUSTOMSIZE with the number of rows of five digit number there are in your custom graphic. Note: in the example above the CUSTOMSIZE is 4, since there are four rows of data.

  3. 3.Set CUSTOMFLAG to true

Optionally, you may want to set other options like Kerning etc ...

Notice that CUSTOMSIZE is the number of 5x8 characters (rows of five numbers in the CUSTOM array) in a custom graphic, 4 in this example.

Povard Helper Applet:

To help you code your custom graphics click on the image to the left and it will open a new window with a small applet.

To use the applet click on any dot to toggle it on or off. The values to enter for your custom graphic will appear below it.

Andy the intern’s “How to build a Povard Video”.

Building a Povard Steps:

The soldering steps presented here are just a suggestion, you may solder the parts in any order.

There are just two important point to keep in mind while soldering. 1. The longer leg of the LEDs goes into the hole marked “+” and the LEDs are inserted from the bottom marked “LEDS THIS SIDE” and 2. Both ICs must have the pin “1” mark / dot oriented in the same direction as the white silk screen printed on the PCB.

Step 1: LEDs

Insert the LEDs into the PCB from the side marked “LEDS THIS SIDE”. Make sure they are inserted completely and flush against the PCB before soldering. This will ensure a nice fit with the laser cut bezel.

Very important: the long leg of the LEDs must go into the hole marked “+”. The “+” is marked on both side of the PCB.

Step 2-A: Resistors - Preparation

There are two sets of resistors;

4x 10k ohm - for logic and communications

8x 470 ohm - current limiting for the LEDs

Bend all of the resistors by holding them in one hand and pushing the leads down so that they are at 90° with the body of the resistors.

Step 2-B: Resistors - Logic

Install the four 10k ohm resistors in the spots marked;

R1, R2, R11, and R12

Install them from the side of the PCB with the white silk screen. Solder and clip the leads.

Step 2-C: Resistors - Current

Install the eight 470 ohm resistors in the spots marked;

R3 to R10 (Yes, R3 is all on it’s own up at the end of the PCB)

Install them from the side of the PCB with the white silk screen. Solder and clip the leads. There is no polarity for resistors.

10k ohm = Brown - Black - Orange - Gold

470 ohm = Yellow - Purple - Brown - Gold

Step 3: Capacitors

There are two small blue capacitors.

Solder them into the spots marked C1 and C2. Trim the leads.

There is no polarity for resistors.

Step 4: Sockets

There are two IC sockets. One 8 pin and one 16 pin. You are not obliged to use them.  If you are not experienced at soldering ICs directly, they are highly recommended.

Solder them into the spots marked U1 and U2. Make sure that the notches match up with the notch on the PCB, and when inserting the ICs, match the notch to the indicator on the ICs.

Step 5: Power Button

There is one push button. Press the button into the PCB and solder from the other side.

Step 6: Programming connector

Insert the right angle 6 pin male pin header into the top of the PCB so that the pins are parallel with the PCB. Solder from the bottom and trim the excess sticking out the bottom.

We recommend using safery glasses.  When snipping these thick header ends, they really fly.

Step 7: Battery Wire

You may want to trim the wires coming off of the battery holder.  The Povard will look neater, and it will not have excess wire flopping about.

Insert the wires into the strain relief holes from the bottom. (These holes may be a bit tight, but the wire will fit.) Bend the wire in a small loop and insert the stripped ends into the holes marked “+” and “-”. The red wire goes into “+” and the black into the “-”. Tin the ends to your shortened wires to help with insertion.

Step 8: Plastic Bezel

Clean Bezel. The plastic bezel is shipped with factory applied protective film / tape. Most often this film can simply be peeled off. If bits of tape, or some of the glue remains on the plastic. you can try soaking the bezel in warm water (not too hot). (I prefer using a little WD-40 and then some Windex.) DO NOT USE ANY TYPE OF ALCOHOL, OR ALCOHOL BASED CLEANER.

Insert the built PCB onto the plastic bezel with the LEDs going into the eight round holes. The power button should be toward the square end of the bezel.  The laser etched side is face down in this photo to the right.

Using the four 4-40 1/4” screws, screw the PCB onto the plastic bezel. Note: the ridge on the LEDs acts as a spacer, the PCB does not touch the bezel.  You should not tighten the screws too much.  If you see the PCB starting to flex or bend, you’re making them too tight.  Back the screws off until the board is not being flexed.

Step 9: Battery pack

Remove the backing from the double sided foam tape and stick the battery pack onto the bezel underneath the PCB. Note: the battery pack acts as a handle so position it carefully for maximum comfort.  You will want to do this carefully, centering the back from left to right, and not obstructing the lanyard hole.  If you have used WD-40, make sure that the plastic is well washed with soap.  The foam tape will not stick to the WD-40 residue.

Step 10: The ICs

Press the two ICs into the IC sockets.

Be careful to make sure that the notches on the ICs match up with the notches on the sockets. You may have to straighten the legs to make them fit.

Step 11: Lanyard

Tie a knot in the lanyard cord to form a loop. Pass the loop through the lanyard hole on the bottom of the plastic bezel and then pass lanyard through itself to connect it firmly to the plastic. Pull tight. Adjust the size of the loop to fit your wrist if needed.  The lanyard is important to make sure you don’t send the Povard flying.  Also, if it falls and hits a hard object, (Usually the floor) the plastic will probably crack.


Insert two AA batteries into the battery holder and press the button. You should see all of the LEDs flashing. If not stop and double check all of your work.

The factory installed message says “Povard”.

Download - Povard Loader Sketch:

New Povard firmware and new Povard Loader Sketch. All Povard’s now come with the new versions.

With the introduction of the latest Arduino model, the Arduino Uno, the Arduino programing language / compiler (IDE) changed and created a software incompatibility with the Povard. As of this update the Povard would not work with the new software and any Arduino model. The solution for folks with older Arduinos was to simply use the older Arduino 19 software. Uno uses were out of luck.

Not only does this update make allow the Povard to work with the Arduino Uno but we added some new great features as well;

  1. Uploads message about 3 times faster ~ 4 seconds.



Download the new sketch Povard Loader V2. Older Povard models require the new Povard Firmware PIC available here. All Povard’s now come with the new versions.

Download - New sketch Povard Loader V2.





How To + Info