Globe Persistence of Vision





Introduction: Globe Persistence of Vision

Persistence of Vision Globe, controlled by mobile app and based on Arduino (Atmega1284p)

All the code source and schemas are available in Github

Step 1: Build the Box

A box was built

Step 2: Build the Two Bands PCB

The vertical PCB bands are built. They are the frames where the RGB LEDs and their Shif Registers are soldered

Step 3: Build the Shift Register PCBs

The to drive the RGB LEDs were used STP08CP05 constant current shift registers. They behave like any other chainable shift register, but they can source/sink a pre-defined constant value of courant.

To keep the vertical PCB bands simple, specific adaptation boards were built using the SMD version of the chip, the capacitors and the resistor.

These adaptation boards are then pluggable into the vertical PCB bands

Step 4: Print the 3d Pieces

Step 5: Build the Led Controller PCB

Step 6: Assemble the Box and the Rotating PCBs

Step 7: Finish the Box

Step 8: The Result

3 People Made This Project!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Pro Tips Challenge

    Pro Tips Challenge

We have a be nice policy.
Please be positive and constructive.




Hi! I am building something similar but I made the other ring with aluminum but I found you way is much more elegant! May I know how you bend the PCB into a perfect circle? This is something I would like to try!

P.S. May I know how large is the POV you are making? I am building a 50cm diameter one and it easily go unstable while turning around 1500rpm. Also may I know what size the shaft you are using? I am using a 8mm one but seems not strong enough.

I'm not very practice in soldering and electronics but I' going to need one like described one, but huge. Dimensions should be about 2 meters in diameter. Is there anybody who can make that for me? I'm willing to pay for it!

Can someone give me some advice on how to find all the components?

Regarding your comment about changing angular speed versus power draw to the rotating LEDs: I see no reason why there should be any impact at all to the the motor speed. The motor is (I assume) powered by a totally independent power source. The rotary transformer, being totally rotationally symmetrical, causes absolutely no load torque on the motor, (other than the "windage" air friction of the rotating coil, which is constant). (It does not extract power from the rotation). I would have 2 coils, each about the diameter of the globe, with perhaps a dozen turns each, one just inside the other, plane perpendicular to and centered on the shaft, mounted under the base plate; inner one rotating with the rotor, the outer stationary, and driven with a half or full bridge circuit/oscillator from the DC supply in the KHz. The rotating coil's output would be rectified by a diode bridge, and fed to the DC/DC converter you now have.

You could also use a coil set with ferrite cores for more compact assembly. If you want to know how to design the transformer, I can explain.

(I got a "404 error" on your github link. I tried a search in github on claudiosousa and got nothing)

The problem I have with C is that it was designed for PCs, which have basically a big bag of RAM, which is loaded with the program in question, then executed. If the program didn't write something in RAM, garbage is assumed to be there, so you can't "look up" something you didn't write FROM THE PROGRAM. On the other hand, embedded machines have programs usually in ROM, which not only have executable code, but also data ("look up") tables on ROM. A BYTE or WORD directive loads ROM with tables in assembly. C is awkward when dealing with look-up tables, and that is 90% of my programming consists of. (My typical object files are 80% tables and 20% code). C also doesn't "know" about machine-specific things such as the carry flag. The other thing I can't do is debug code WHILE IT RUNS, which I can do with my 65816 and 6808 systems. I could never get the stuff to work if I couldn't do that! For example. Say an interrupt routine "is done". I want to jump back to the debug kernel, so I can debug with the leftover cycles, before the next interrupt comes. Where is the debug kernel? The complicated operating systems don't tell me where or what that is! It is all wonderfully hidden behind all the GUI "eye candy" I don't need! I wish someone could tell me how to do things like this. I would be satisfied with a debugger that can read/write registers, go and stop, a simple assembler, a good data sheet on the processor, and no JTAG peripheral stoppage when in "debug" mode to interfere with running interrupts.

Super-inspiring! May I ask by what means the image can be created? For example, could it be controlled in real time and display global data-streams?

Any image with the right resolution and can be used, but it is limited to the 8 colors used (2³).

The device is actually controlled by an android app. We can control the device (start, stop, change the rotation speed) and the image itself : (the rotation direction and speed of the image and upload a new image)

You can see in the videos a demo where we upload different images and play with the different possibilities.

In its current state, an image takes 1-3 seconds to be uploaded and displayed. While this delay can certainly be improved, the low frame rate is not fit for video data stream.

A project we have in mind that relates to what your were suggesting is to show on the globe some states (weather, unread emails, stocks values, etc) but those states are obtained in text by the globe and it is the actual microcontroller that updates the image that it is showing depending on those text feeds.

For instance, it would display the sun/rain image depending on the text information about the weather forecasts.

What if the image was generated directly by the microcontroller? Maybe with a beefier microcontroller, the image could be more lively?

Absolutely, that is what I tried to explain in the previous post. Then only the relevant data needs to be sent to the controller, and not the whole image.

If I was to redo the project,I think I would have the ESP8266 microcontroller. I've been playing with it recently with very good results. Native wifi , 80/160MHz clock and much more flash memory available.

Yes, sorry, I see that now. Very inspiring! Thank you!

I researched Mercotac sliprings. Regulations prohibit the sale of these to "consumers" because of the mercury content. How did you get yours?