Introduction: The 'One Chip Spinning RGB POV Display' With Conversion Software.


If you have been on the look out for a project that combines, RGB LED's, a motor, a microcontroller and a ridiculous amount of hot melt glue, then you have certainly come to the right place.

Allow me to introduce the 'One Chip' Spinning RGB POV Display


This project allows you to create (with minimal components) a fantastic customizable display capable of displaying graphics, animations and text. You can scroll your graphics from top to bottom or use it as a scrolling message display, scrolling from right to left.

The project uses just one chip, eight RGB LED's and a handful of other components to paint animations in 'mid-air!' Plus, together with the included graphic conversion software (download link in step 2) you can easily create your own animations because the software creates all the code for you.

So please, read on and enjoy!

Step 1: Get Your Required Parts and Tools.


Before we set out on this venture, you will need both the components and tools.

Parts List:
1x PIC 18f4680 microcontroller
1 x 40 pin IC socket (optional - to house the microcontroller)
8 x Common cathode RGB LED's
24 x 100 ohm resistors (any wattage)
1 x 0.1 uF capacitor (optional)
2 x 100 uF capacitors
1 x 7805 (5 Volt Regulator)
2 x 10k ohm resistors
1 x hall effect sensor / hall effect switch
1 x 5 pin header (to plug in the pickit2 programmer)
1 x small rare earth magnet (to be used with the sensor)
1 x screw in type mains wiring terminator (See last photo - you get these from a hardware store)
1 x 12v motor
1 x motor (any motor that you can destroy for parts - I.E. the graphite brushes)
1 x 12v powersupply (for the motor)
1 x 7.5 volt power supply (for the POV display - can be upto about 18v)
1 x (5.5cm x 5.5cm blank pcb - aka blank copper clad) - this will be used to transfer power to the display
Holt Melt Glue Sticks
Solder
Veroboard / experimenters board
Thin enamel wire (see pic)
Standard single core wire (Like they use in network cable)

Tools:
- Soldering Iron
- Screw Driver
- hot melt glue gun
- Stanley knife
- side cutters
- pliers
- pickit2 programmer
- desoldering tool (solder sucker or solder braid - just in case!)
- computer running windows
- swordfish basic compiler (this is a free download - it compiles the code for the microcontroller)
- POV Image Converter (Software that I have made, download link is included in the instructable)

Now that you have all of that, let's get into the construction.

Step 2: Downloads


First and foremost, you will want to download the schematic so that you are not building this blindly, and perhaps you may want to experiment with the conversion software also. All these downloads are provided here:

Please read the readme.txt file for instructions on how to install the software.

Click this link to download the schematic:
http://www.bradsprojects.com/forum/download/file.php?id=297

Click this link to download the scroll down conversion software:
http://www.bradsprojects.com/forum/download/file.php?id=294

Click this link to download the scroll left conversion software:
http://www.bradsprojects.com/forum/download/file.php?id=290

Click this link to download swordfish basic (free version):
http://www.sfcompiler.co.uk/downloads/SwordfishSE.exe



Step 3: Let Construction Commence!

Now the beauty about this project is that you don't have to make it exactly how I have made it.

my original intention was just for me to see how small a board I could fit this project onto. But as you will see, there is plenty of space to work with when we attach the main arm that connects the display to the motor. So by all means, have a look at my design - but there are certainly other ways (simpler ways) of achieving the desired outcome.

I have cut my board so that I have 26 holes by 10 holes.

Step 4: Solder in the LED's and Cut Some Tracks


I have used surface mount LED's just to see how they would go (I have previously used through hole LED's in a past project)

Solder the Red, Green and Blue connections to the board.

The three connections on the top are the cathodes. (this may differ for your LED's - give them a quick check with your multimeter to verify)

You will also notice I have cut a line through the tracks connected to the LED's. This is so we can solder in some series resistors to limit each LED's current.

IMPORTANT NOTE: You need to make sure that the bottom LED is connected as your least significant LED. I.E. this led will connect to PORTA pin 0, PORTB pin 0 and PORT D pin 0. You then work your way up from there. Follow the schematic and you will be fine = )

Step 5: Solder in Your Resistors.

I have also used surface mount resistors to keep my project small, you may very well want to use through hole to make things a little easier.

The resistors solder in over the tracks that you have just cut.

Step 6: Cut Some More Tracks and Solder in a Ground Wire.


Now that the resistors are in place, you will want to cut another line of tracks on the other side of these resistors, getting them ready to solder to the microcontroller. - see the first photo

Once done, get a length of uninsulated wire and solder it along the length of the LED cathodes. then solder it to the veroboard (this will be our ground connection) - see second photo

Step 7: Time for a Quick Test.


Progressive tests are always a good thing, so let's do one.

Grab a 5 volt power supply and solder your negative end to our ground connection. then with the positive side, connect it to each resistor one at a time - you should have each LED light up with the respective color as you work your way through all 24 connections.

It's nice to pick up on faults before we get to carried away!

Step 8: Install the Microcontroller, Socket and Cut Some More Tracks.


Now it is time to solder in the socket which will house the microcontroller. Or if you wish, just solder the microcontroller straight in (if it is to be a permanent arrangement).

Then you will need to cut a line of tracks so that we do not short each end of the microcontroller together. - see the last photo.

Step 9: Install the Remaining Components.


Now it's time to solder in the regulator, filter capacitors, the header, the two 10k resistors and the hall effect sensor.

The two 10k resistors are not shown in this photo, they are soldered in underneath (check schematic for details)

NOTE: the header that I have used is a female header only due to the fact that I have changed my pickit2 around so that it has male headers (makes it easy to plug into breadboard)

The pickit2 originally comes with a female header, so you will want to solder in male headers to the project so that you can connect up your pickit2.

Step 10: Complete the Wiring.

Now it is time for you to study the schematic and solder it all together. There is no way that I am going to take you through this wire by wire!

Even though it looks messy, you are just doing this wire by wire so it is not too hard a task - just study the schematic! Again, here is the download link:

http://www.bradsprojects.com/forum/download/file.php?id=297

I will however tell you that the thin enamel wire is so handy for this exact task. It would be next to impossible to do this with any other sort of wire.

The thin enamel wire has a very thin enamel insulation layer which can be melted off using a blob of solder. You will want to cut yourself a few dozen lengths of this enamel wire, use your soldering iron and solder to form a blob and then put the tips of the wire into the blob for a few seconds until the enamel has been melted off. (you will know that it is off because the solder will actually stick to the wire)

Hopefully you can see in the last two photos that in one of them, the wires have not yet been touched. The second photo shows that the tips of the wire have been melted off and the solder has bonded to it. These wires are now ready to be soldered to your veroboard.

You will then need to do the same procedure for the other end of the wires to complete your circuit connections.

These wires are fine for everything EXCEPT your main GROUND and VCC connections. These wires are too thin to handle the current requirements of the whole board, but they are fine to handle the current required by any one LED.


Step 11: Cut the Main Arm Assembly and Slot Into the Display Board.

Now that you have the hard part out of the way. You will want to cut some more veroboard to size.

This part will hold the display electronics to the motor.

Cut your veroboard to 66 holes x 16 holes. Then cut a slot in the middle up one end and slot it into the display board inbetween then microcontroller and the regulator. Solder the board to the spare track to hold it in place.


Step 12: Start Assembling the Power Transfer Board.

This is quite an important step, because without it - you'd have no power going to your display!

You will need your screw in wire terminator, 5.5cm x 5.5cm and blank PCB.

Firstly, mark out the center of your board.

Then draw a circle around it using either a compass or small round object (I used a cr2032 battery)

Then, scratch out the drawn circle to create two separate areas (the middle area is for our ground power connection and the outer area is for Vcc)

once done, you will need to solder on your wire terminator (this is how we connect the display to the motor shaft)

And finally, drill out a small hole somewhere in the center pcb area (so that a wire can be soldered to it coming through from the other side.)

Step 13: Connect the Power Board to the Main Assembly.


Now that you have your power transfer board made, you need to attach it to your main assembly - so bring on the hot melt glue gun!

Firstly though, get two of your solid core wires and solder one from your ground connection of your display board through the hole in the power board and solder to the center of the power board.

Then, solder another wire to the outer edge of the power board and the other end of the wire to the 7805 regulator input.

Now align the power transfer board to the center of your main board and use your hot melt glue gun to hold it in place. (careful - it's hot...)

Step 14: Balance the Board.

You may have realized that the board (at this point) will be terribly unbalanced. This is where you will need alot of hot melt glue sticks.

Connect a length of your enamel wire to the grub screw in the powerboard connector. then hang the board from a height so that it just hangs naturally.

Once done, you will need to apply layer after layer of hot melt glue blobs until the board levels out. Hot melt glue is nice and cheap and you can be assured that it will stay put once on there!

The first photo shows how unbalanced it is to start with, the second photo shows that it is now balanced.

Step 15: Make the Board Sturdy!


I found the board to be a little flimsy, so I cut another thin piece of veroboard and glued it vertically to the main arm board. This made it nice and rigid!

Step 16: Getting the Motor Base Together.


Now I apologize for not making this into more steps, but hopefully you will find it quite straight forward regardless.

You will need a base and mount to hold your motor and magnet (which is used in conjunction with the hall effect sensor)

I used an offcut piece of wood and painted it a nice gloss black - very pretty!

You will want to mount your motor in the center of the board and have a hole drilled out under it so you can feed your wires through to power the motor.

Once this is in place, you will need to rip apart your other motor and take out one of the two graphite blocks that the motor uses to transfer power to the rotor. We will use this to transfer Vcc to the spinning board.

Now with some pretty tough solid core wire, wrap it around a pen to make yourself a spring. Solder the spring onto a small piece of veroboard and then hot glue it to the motor frame assembly. Then you can simply 'screw' in the graphite brush because it should have a strip of copper attached to it.

Next, get your POV project and mount it onto the motor by placing it over the motor shaft and screwing in the grub screw to hold it firmly in place. The power transfer board should come into contact with the graphite block on the spring - it should remain in contact at all times as you rotate it through 360 degrees. If it doesn't you may need to undo the screw and tweak the alignment slightly.

Now solder the positive wire from your 7.5volt power supply to the spring / graphite block assembly and the negative wire you can connect to the motor housing.

We transfer ground to the spinning board via the motor housing (since it is all metal) then we transfer the positive side of things via the graphite brush - it works a treat! Graphite is self lubricating so it lasts for quite a while.

Step 17: Attach the Rare Earth Magnet.


Now we are just about done!

So that we can get a point of reference for which to start drawing each frame, I have included a rare earth magnet and a hall effect sensor.

You will need to cut one more thin piece of veroboard to act as a standoff for the magnet. Glue the magnet to the veroboard and then the other end to the wood base directly underneath the hall effect sensor.

It doesn't matter where on the board you put it, just as long as somewhere in it's rotation, the hall effect sensor will pass over the magnet.

Just a side note, my hall effect sensor required the south pole to be facing it (it won't work if you have the north pole of the magnet facing up)

And that is it for the construction!

Now we can get into the software side of things and start displaying some graphics / animations etc...

Step 18: Using the Included Software and Customizing Your Display.



I have programmed two applications using visual basic to allow you to convert your own images for to show on the spinning display. Again, you can download these from here:

http://www.bradsprojects.com/forum/viewtopic.php?f=17&t=344

Now remember that the LED's are only turning on and off. There is no variation in brightness so this gives us a total of eight colors to work with. Having said that, the conversion software does not to bad a job and giving you a presentable output.

The first application allows you to import quite a large image and then it will display it on the POV display by scrolling it from top to bottom. You can import just about any image that you want however you need to make sure that the output settings you enter in are less than or equal to the image size otherwise you will get an error (because the software will be trying to convert pixels that don't exist!

Furthermore, since the display has eight LED's, you need to make sure that the height of your output image is divisible by eight.

other than that - you can go nuts and try whatever you like. You can adjust the LED on and off times and also the speed of the animation. The greater the LED on time, then the more stretched the image will be. The greater the LED off time then the greater the space between pixels.

The second application is for scrolling text and images from left to right. This is perfect for something like a shop window for if you wanted to do some cool looking advertising. Again this is quite customizable although this time you can't change the height of the graphic because there are only eight LED's and we are not scrolling vertically. You can change the LED on time and off time, the speed and you can also specify how many columns you want to be displayed at any one time.

Please read on to the next step for full details of how to use the display in scroll down mode.

Step 19: Using the Display in 'Scroll Down' Mode.



This mode of operation allows you to have rather large graphics and display them using just eight LED's!

It does this by scrolling the image from top to bottom.

Firstly, you need to download this zip file:
http://www.bradsprojects.com/forum/download/file.php?id=294

You will also need swordfish basic to compile the code that the conversion software will generate.
That can be downloaded here:
http://www.sfcompiler.co.uk/downloads/SwordfishSE.exe

Once downloaded and unzipped, you will need to copy the povdata folder into your c:\ directory. This folder contains text data which is used in the conversion process - it will not work without this folder.

Then you simply click the setup icon to install the software.

Now since my windows registration is registered to my work, the location that the software is installed to is actually 'National Aerospace Training Centre' which is in your start menu. I actually don't know how to change that at the moment...

Once you install it, it should run automatically. and you will be presented with the main screen (see first photo)

I have included a sample image that you can convert straight away, to do this - simply click convert. it will update the converted image to look like the one in the first photo below.

You can then open up your own image, you just need to then update the output properties in the top left corner to match the dimensions of your image - also, the height dimension must be divisible by eight (because the display uses eight pixels)

You can then click convert to see what your picture will look like in 3-bit color!

Once done, click the 'get code' button and the program will generate all the code required for the microcontroller.

Give it a few seconds and a message box will appear letting you know that the conversion is complete and that it has copied this data to the clipboard. (see second photo)

So then you need to open up Swordfish basic and click 'edit' 'paste' to paste the data in. Then hit F9 to complie the code into a hex file. (see third photo)

Open up your pickit2 software and with the pickit2 connected to your display, open the hex file and copy it onto the mcirocontroller. And that's it - your animation will now be displayed on the Spinning POV display! (see fourth photo)


Step 20: Using the Display in 'Scroll Left' Mode.

This mode of operation allows you to have a long image of text and graphics and then have it scroll from right to left.

Firstly, you need to download this zip file:
http://www.bradsprojects.com/forum/download/file.php?id=290

You will also need swordfish basic to compile the code that the conversion software will generate.
That can be downloaded here:
http://www.sfcompiler.co.uk/downloads/SwordfishSE.exe

Once downloaded and unzipped, you will need to copy the povdata folder into your c:\ directory. This folder contains text data which is used in the conversion process - it will not work without this folder.

Then you simply click the setup icon to install the software.

Now since my windows registration is registered to my work, the location that the software is installed to is actually 'National Aerospace Training Centre' which is in your start menu. I actually don't know how to change that at the moment...

Once you install it, it should run automatically. and you will be presented with the main screen (see first photo)

I have included a sample image that you can convert straight away, to do this - simply click convert. it will update the converted image to look like the one in the first photo below.

You can then open up your own image, you just need to then update the output properties in the top left corner to match the width of your image.

You can then click convert to see what your picture will look like in 3-bit color!

Once done, click the 'get code' button and the program will generate all the code required for the microcontroller.

Give it a few seconds and a message box will appear letting you know that the conversion is complete and that it has copied this data to the clipboard. (see second photo)

So then you need to open up Swordfish basic and click 'edit' 'paste' to paste the data in. Then hit F9 to complie the code into a hex file. (see third photo)

Open up your pickit2 software and with the pickit2 connected to your display, open the hex file and copy it onto the mcirocontroller. And that's it - your animation will now be displayed on the Spinning POV display! (see fourth photo)

Step 21: Thankyou's

I would first like to thank my wonderful wife and two boys for giving me some extra time to spend on writing this instructable. I would like to thank all those who drop in over at my website and forum www.bradsprojects.com it's great sharing idea's with you guys!

Special thanks to the guys (especially Graham) at www.digital-diy.com thanks for all the hints and tips!

Thanks to the knowledgeable people over at dreamingincode.com (you guys sure know what you're talking about!)

And thanks to all of you for taking the time to read through all these steps.