I've always wanted to make one of these POV globes. But the effort with all the soldering of LEDs,wires etc. has deterred me because i'm a lazy person :-) There has to be an easier way ! In this instructable i will show you how to build a POV globe with less electronic parts than other projects. The reason is the use of the adressable LED strips APA 102. This stripes don't need any driver electronic and can be directly connected with only 2 wires to a microcontroller. The state of the LEDs is ( and has to be ) VERY fast changable. To get a stable image the SPI clockrate is about 10 Mhz and could be even higher. For further information about the LEDs look here.

Another advantage is the use of normal bmp files that are stored on a microSD card.

Let's go !

Step 1: BOM

Here is a list of the main parts you'll need. For the LED ring i use my 3D printer, you can also use a slice of a PVC pipe (diameter 150-180mm).The bearing brackets are also printed, but can be made of a wood piece for example. For the basic frame i use some old metal profiles, feel free to use other metal profiles, wood, plastic or whatever. Be sure that the frame is torsionally rigid and a bit weighty.

For the drive shaft:

  • threaded rod M8, length 250mm
  • M8 nuts
  • brass sleeve 10mm, length 100mm

  • 2 pcs. plastic washer 8mm (see also STL files)
  • Flexible Shaft Coupler 5mm to 8mm (those who where use for Nema 17)

for powering the LED ring over the shaft:

  • 2 pcs. ball bearing 6300 (10x35x11) full metal

  • bearing brackets, see STL files or make from wood with a 35mm whole saw

  • 4 pcs. screw M4x40 with nut
  • 2 pcs. cable shoes 8mm
  • Brushless Motor with 5mm shaft

  • 4 pcs. M3 screws for mounting the motor
  • ESC for brushless motor,possibly with fan

Alternatively you can use a combination of a brushed motor/esc with enough torque.

The motor described above has enough torque but never reach his max current of 50 Ampere. My supply measure less than 4 Ampere. So there is no use for a 50 Ampere ESC. I put a heatsink with fan on my 18Ampere ESC and it works fine.

For accurate "firing" the ESC i use an

another option is a

Power Supply:

We need 12V for the motor and 5V for the LED ring.

  • I prefer the use of old pc supplies like shown in this instructable.


  • There are lots of 12V/5A supplies out there from china.

LED Ring:

  • 64pcs. APA 102 LED (2 Stripes a 32pcs.)
  • Electrolytic capacitor 1000µF 10V
  • TLE 4905L Hall sensor + magnet
  • pull-up resistor 10k,1k
  • Ring: Use the STL file or a slice of PVC pipe
  • cable ties 100mm
  • GOOD glue, that the stripes don't fly away at 2400rpm :-)

The Parallax Propeller Microcontroller:

Don't be afraid of this microcontroller, it is a powerful 8-core mcu with 80Mhz and is just as easy to program/flash as an arduino !

There are several Boards on the parallax site available, or look here,you also need a microSD Breakout

Another (my) choice is the P8XBlade2 from cluso, the microSD reader is already on board !

For programming the arduino and propeller you also need a USB to TTL adapter board like this one

Step 2: Housing

Here you see the housing. Make it from any material that is sturdy enough. In the end you need some kind of a cubic cage with approximately 100mm edge length where you can mount the motor and the ring/ bearings. The cube is mounted on a solid wood plate with distance bolts. A hole for the motor was drilled into the plate.

Step 3: The Drive Shaft

I choose a threaded rod with a length of 250mm. The length of the brass sleeves are about 30 and 50mm depending on the size of the cage and the shaft coupler. The upper (and longer) sleeve has to be isolated from the rod because it forms the positive pole for the ring supply. This is done by insulating tape and plastic washers. The sleeve will not fit on the rod with the tape until you increase the inner diameter from 8.0mm to 8.5 - 9.0 mm by drilling/milling. The other sleeve including the rod forms the negative pole.

Step 4: Brushless Supplying

Now it's time for the bearings. I choose bigger ones than the standard bearings because of better conductivity. Place the bearing in the holder and position the plate on top of it. The small hole at the side is for the cable. Don't forget the shaft and the washer between the bearings/sleeves.

I 3d-printed the holders, have a look at the stl/zip file.

Step 5: Motor Control

Have a look at the schematic how the motor electronic has to be connected.

If you have never program an arduino look at instructables :-) The two buttons are for motor speed. If you switch on the power supply the ESC gets a value of 500µS. Press one of the buttons to switch on the motor. The sketch took the value "StartPos = 625". Later, if you've found the right speed this value has to be changed. By using the left or right button you decrease/increase the speed, press both buttons at the same time for 2 sec. and the motor will stop.

Be sure that the motor/globe rotates counterclockwise, like the real earth :-)

Step 6: One LED Ring to Rule Them All :-)

Here comes the core ! Printed with my 3d printer but as i said above there are also other options. To save weight i have many holes place in the frame. Now cut two strips off, each with 32 LEDs. Better count off several times before using the scissor :-)

Placing the strips is a littly bit tricky. You have two strips/columns that generates odd and even lines. The odd lines are at one side of the ring, the even lines are at the opposite. Mark LED number 16 at each strip (respectively line number 32 and 33) and fix it at the frame like showing at the pictures. One led fits exactly between two opposing LEDs. So you have two place the second strip with an offset !!!

After that you can fix the PCB/PCBs, i made small slots in the bracings so the PCBs can easily attached.

Before you mount the ring on the shaft, you must balance it. Use a thin stick to balance and screws or nuts as counterweight.

Step 7: Schematic

In this schematic you see how the MCU board is cabled to the other parts at/in the ring. I also attach a photo of the hall sensor and the magnet. The schematic use an older and bigger fritzing MCU-board because i don't find fritzing templates of newer/current Propeller Boards. Feel free to ask your questions for the board you'll choose/get.

Step 8: Programming/Flashing the Parallax Propeller Microcontroller

This is the binary that can easily transfer to the prop-board. Here is a link to one of my previous Instructables that also use the propeller microcontroller and show you a HOW TO.

Step 9: Bring Into Service

Ok, first we only copy the test picture to the sd card.

  • If the ring is manually rotated, the LEDs must flicker every time the hall sensor passes the magnet.
  • now start the motor and increase the rotation speed until the LEDs are aligned (see the 2 pictures)
  • the Voltage has to be constant and the ring must turn slighty to get a stable/aligned picture
  • connect the arduino terminal to the motor control
  • notice the shown value
  • stop the machine
  • replace the value to variable "startPos" in the POV_MotorControl sketch
  • flash arduino again

Next time you start the motor you'll get the right speed.

The next step is no longer necessary with the new software, from a speed of 38 to 44 rps the odd and even lines are "locked" correctly.

(Use the up/down buttons for fine tuning if necessary.)

Now you can "fill" the card with your other pictures.

Have fun !!!!!!

Step 10: How to Create Your Own BMPs

You want to use your own pictures ? No problem, i show you:

  1. Resize your image to a resolution of 120 x 64 pixel
  2. rotate 90 degree counterclockwise
  3. mirror vertical
  4. possibly reduce the brightness (the LEDs are very bright),

    the best brightness correction for images is to use gamma correction with a factor of 0.45

  5. save as BMP with 24bit color and no RLE

after saving the size of the file has to be 23094 byte !

Any other size won't work.

If you want, store several images at the sd card. They are shown one by one each after one rotation.

Now it's up to you to create a better Death Star than mine !

Step 11: Additional Infos

Some things I noticed:

  • If you use one of the tiny CpuBlades from cluso don't forget to solder the 3 pin jumper labelled QE for programming
  • my bearings have a voltage drop of approx. 0.5 V so i have to increase the voltage from the dc-dc converter up to 6 Volt.
  • (January 13, 2017), added the ring.stl in step 6

  • (January 17, 2017), the best brightness correction for images is to use gamma correction with a factor of 0.45
  • (January 17,2017), update POV Globe0_2.binary
  • (January18,2017), upload source code in step8
  • (January 27,2017), upload new source code, version from 0_2 to I_0_1. Have made a great progress with the synchronization between odd and even lines. It's no longer necessary to find the correct speed, simply bring the ring to a speed of 38-44 rounds per second and the lines aligned !
  • (March 03, 2017), modified the bearing holder
  • (March 09, 2017), upload a test binary to switch on all LEDs
<p>wow...it is cool, maybe you can try APA107 LED course, so that you can save much money.</p>
<p>Gelstronic how hot gets your motor when running&gt;</p><p>I got the motor and ESC that you listed but when i run it the motor get very hot after a while</p>
<p>Motor is not very hot but esc needs a heatsink</p>
<p>Thanks</p><p>I'm only testing it (only the motor+esc waiting on the P8XBlade2 from cluso99) also the motor starts running if i put 830 as StartPos in the arduino, with your value (625) it won't start, is that a matter to recalibrate the ESC?</p>
<p>no need to recalibrate, just use the values that works and bring enough speed</p>
<p>When using my P8XBlade2 you will need to change the clocking as I overclock the CPU. In POV Globe_I_0_1.spin change the clock settings from:</p><p>_clkmode = xtal1 + pll16x <br> _xinfreq = 5_000_000</p><p>to:</p><p>_clkmode = xtal1 + pll8x <br> _xinfreq = 6_000_000</p><p>It is not necessary to have/modify the clock settings in the sub-objects FAST_ASM_xxxx.spin files as only the top object settings are used.</p><p>I have attached the modified source and binary and eeprom files.</p><p>Enjoy :)</p><p>Note: I have updated my website and some older links have broken. Please use <a href="http://www.clusos.com" rel="nofollow"> www.clusos.com </a> and follow the links.</p>
<p>Thanks for the information, i ordered my Blade with 5Mhz crystal and</p><p>i have not considered the &quot;overclocked&quot; version.</p>
<p>I have not supplied the P8XBlade2 with 5MHz xtal. It uses a tiny surface mount crystal 2.5x3.5mm IIRC. There are via holes that can take a watch can 5MHz xtal provided the 12MHz SMT xtal is not mounted, or a track is cut on the underside between the via and xtal.</p><p>Perhaps you used the CpuBlade which does not have the microSD socket?</p>
<p>hi gelstronic , do we only have to upload the binary file rigth?</p><p>im using clusos P8XBlade2 board so should work fine.</p><p>i have solder link QE and WE</p><p>i upload the binay file only and got no errors without the sd card.</p><p>then fat format the sd card . </p><p>copy the test picture to sd , insert in and try to spin by hand but got no ligths on! using 5,5v supply.</p><p>any clues what could be?</p><p>pin 0 - hall sensor</p><p>pin 24,26 - data</p><p>pin 25,27 - clock</p>
<p>Pins seems to be ok, test the attached binary from last step, it switches on all LEDs</p>
<p>thanks for fast replay :)</p><p>i have try the test file and 80% leds turns on with a load of 2,7 amps at 5,2v.</p><p>then i upload the the run file and not a single led turns on! dont know what im doing wrong. the load is about 1,1amp 5,2v</p><p>tested the hall sensor and turns on everytime it detect the magnet but doesnt make any diference with the leds</p><p>it doesnt give me any errors when upload.</p><p>here some fotos of my cylindrical pov</p><p>thanks</p>
<p>Here is another binary for testing the sd card. Hook up a LED(with180ohm) at pin 23. After some blinky and testing stuff the program will store some data at the sd card, after that you can check it in the pc. Did you already try another sd card? File Stestem is FAT(Standart)</p>
<p>I ran the ISD_Card_Profiler.binary file and saw nothing on the SD card and no blinking on the LED. I loaded a very basic program into the EEPROM:</p><p>PUB Toggle</p><p> dira[23]~~</p><p> repeat</p><p> !outa[23]</p><p> waitcnt(3_000_000 + cnt)</p><p>Complies and loaded into EEPROM fine. The LED blinks as expected. Can you attach the source for your debug programs?</p><p>Any idea about why I am not seeing anything with your ISD_Card_Profiler.binary?</p><p>Thanks!</p>
<p>Here's the source code, please note the data/clock pins from the LEDs</p>
<p>Thanks - I had to make a few changes to the _clkmode and _xinfreq to match Cluso's card and things are working. </p>
<p>hello mate , got no luck! i upload SD CARD binay to eprom as described in your link to the other tutorial , but the led doesnt blink. i have tested the led and works fine. led +resistor with the positive pin at 23 and the negative to negative. its weird cause detects the board , loads good , i can see the small leds of the USB-Serial CP2102 6pin blinking so fast when upload. dont know if im doing something wrong when program the board. i only have experience with arduino.</p>
<p>I wonder about the high current, 1.1 Ampere when all LEDs are off is to much</p><p>the propeller only needs some mA. hmmmm</p>
<p>When using the AllOnAPA102 Binary - does it simply turn all LEDs on or does it work using the Hall sensor with the magnet. I am not getting any LEDs on either way. Just looking for where to start troubleshooting......</p>
<p>After uploading the binary all LEDs has to turn on immediatly, without use of hall sensor</p>
<p>Looking at the Schematic in Step 7: one of the pull-up resistors is tied to 5V and the Hall Sensor output. The second pull-up resistor is tied to the Hall sensor output and then 'disappears' under the propeller board. What is it connected to?</p>
<p>The resistor is connected to P0</p>
<p>Just starting to build the globe - finally got all of the parts. I have a question on positioning the LEDs on the wheel. I understand the odd/even configuration and the positioning to offset them on opposite sides. After I glue the LEDs to one side to the wheel does it matter if the offset is up or down on the opposite side? I hope my question makes sense - I've been trying to decide if it matters but thought I'd ask/. </p>
it doesn't matter, maybe the cables must be exchanged, but you'll see when running the first picture
<p>did you only glue the led strip ? mine is self adhesive was your's also ?</p>
<p>mine also was self adhesive but it didn't hold.The centrifugal force is <br>very strong and they flow away. I have additionally used superglue.</p>
<p>I'm having a tough time finding the LED's in black - your link goes to a white PCB model - poking around I can see the black PCBs but never a product code or link. I am using link to AliExpress. Any other ideas?</p><p>Thanks</p>
<a href="https://de.aliexpress.com/item/1m-144-leds-pixels-m-APA102-Smart-led-pixel-strip-fast-refresh-transfer-speed-IP30-IP65/32575982313.html?scm=1007.13339.33317.0&pvid=bff0b3e8-a616-4fd7-9759-d75ec29b36b5&tpp=1" rel="nofollow">here</a> you can choose between white and black
<p>I am wondering if this motor would work:</p><p><a href="http://www.ebay.de/itm/2430-7200KV-4P-Sensorless-Brushless-Motor-25A-Brushless-Regler-ESC-fur-RC-Auto-/162193134235?hash=item25c376d29b" rel="nofollow">http://www.ebay.de/itm/2430-7200KV-4P-Sensorless-B...</a></p><p>with 2mm to 5mm adapter and then 5mm to 8mm coupler?</p><p>I have trouble finding a cheap brushless motor with 5mm shaft on ebay.de</p>
<p>Hmm, i think the kv is too high und you probably need a gearbox, better choose a motor with a lower kv that has a higher torque.</p>
<p>How critical is the brushless motor kv. Is it possible to use a 2600kv or 3000kv motor? Want to build it and have some motors from my RC hobby parts bin I would like to use, if possible.</p>
<p> I believe you misunderstood my last question. I not concerned how much current the spinner motor draws. Im trying to figure out if the upper bearing could be replaced by a motor which is being spun by the rotation of the ring and used as a generator to supply power to the rotating electronics in the ring .</p><p>The shaft of the generator is fixed to the frame. The body of the generator is attached to the rotating ring so that as the ring is spun up, the generator could supply power instead of putting voltage through the bearings.</p><p>I look forward to hearing from you.</p>
<p>Sorry Neil, of course you want to know the current the ring needs. When i turn on all LEDs in color white they need about 2,7A. But the average current in normal operation is rather 1A.</p>
<p>I appreciate this is a Propeller based project. Yo habla Spin. The clever way you got around needing a slipring is inspired. Beautiful project. </p><p>Thank you,</p><p>Neil</p>
<p>Thank you Neil, spin is in :-)</p><p>But the most work is done in PASM !</p>
I saw this, collected it and downloaded it , i havent actually studied it yet !! I havent searched instructables specifically for propeller projects but you have inspired me to do so. Keep up the great work.<br> I have a idea . If the upper bearing were replaced by a brushed dc motor mounted inside the rotating ring and the shaft were fixed to the frame the motor would become a generator driven by the spin motor and thus supply a dc voltage to the display and micro controllers. Because the mass is centrallized balance would not be affected, however driving a load with the generator would increase the mechanical load for the spin motor. <br>Could you provide current measurements for just the rotating part of the display? I havent done the math but i think the idea may have merit.
<p>The current to the motor is about 4 ampere</p>
<p>update software !</p>
<p>can you post demo?</p>
<p>What do you mean with demo ???</p>
<p>Cool project! I am thinking of using a Teensy 3 (fast arduino compatible micro controller) instead of the propeller... Is it really required to use two SPIs to control the two strips, or would it work to use a single SPI and controll all LEDs with it (and keep the LED strips connected in a row)? I also saw there are APA102 strips with 144 LEDs per meter, I hope I can use such a strip to increase the resolution further.</p><p>What do you think?</p><p>By the way, do you stream the image from the SD card or do you read it fully into the memory of the propeller?</p>
<p>You have to run the LED strip with 20MHZ SPI clockrate for 64 LED.(i use 10 Mhz for 32 LEDs). i don't know if it works, i had no success with 20Mhz, although i read that some guys had 40Mhz and more running !?. For the Teensy 20 Mhz SPI is no problem. I found no specs about the max. clockrate of APA102.</p><p>You have to take APA102 strips with 144 LEDs per meter because these are the only strips where the LED are close enough to each other. You don't want to solder these LEDs individually :-)</p><p>Streaming from SD card is not fast enough, the image is loaded first into RAM !</p>
<p>I just saw that the Teensy 3 can do 2 or even 4 SPI outputs for APA102 at the same time using FastLED, as given here:</p><p>https://github.com/FastLED/FastLED/wiki/SPI-Hardware-or-Bit-banging</p>
<p>Hi , i just love this project , congratz and thank you for sharing it. im trying to build it rigth now as soon i get the P8XBlade2 from Clusos. Mine will be cylindric shape :)</p>
<p>That sounds cool !</p>
<p>Hi! Nice build! Please share the source code, even it's in asm.</p><p>Why you decide to use Parallax? Just common to you or other are too slow?</p><p>What the stable rpm of your sphere during show? Do you draw all picture each turn?</p><p>Is holls sensor preciese enough? Don't you think about using optical sensors to detect the turns?</p>
<p>1.Source Code coming. </p><p>2. MCU from Parallax is common to me. I can't say which other MCUs are fast enough or to slow, it depends much on the capabilities of the programmer.</p><p>3. As i discribe in step 1 the speed is 2400rpm. </p><p>4. Hall sensor is precise enough</p>
<p>Thanks for sharing. This is so nice.</p>
<p>Great project! I'm just starting microcontroller projects and have lots to learn. Would it be possible to use two Arduinos instead of an Arduino and a Parallax? If so, which model and what shields would replace the Parallax method? Thanks.</p>
<p>Difficult to say, you have to program in C and you can't use my code because it's written for the multi-core-architecture of the propeller. Maybe an arduino/atmega crack here can say more about it.</p>

About This Instructable




More by Gelstronic:POV Globe 24bit True Color and Simple HW Key Holder - Guitar Amp like Wahduino - WahWah by shaking/raise the guitar 
Add instructable to: