2: Persistence of Vision MKI

The Globe project started out in 2012 as my final year project of my bachelors degree at the University of Kent. Before I get stuck into this blog, depending on which end you are reading from, I fully acknowledge that this first version looks shonky as hell. Provide a third year with a tiny budget and an overly ambitious project and the result is a half working travesty with an amusing backstory.

It used 4 PIC32 microcontrollers each driving 4 daisy chained TLC5951 LED drivers to achieve a total resolution of 1024×128 24bit colour. Each LED driver can achieve a transfer rate of ~30Mb/s  which in the current configuration would be capable of delivering the required data of ~18Mb/s (horizontal resolution [1024] * vertical resolution per bank [32] * colour depth [36] * rotation frequency [15]) with a fair amount of time to spare for overheads. Able to store about 4 pictures in the program memory of the PIC’s it could cycle between these images…and that’s about it.

By this point I was at least fairly sure that nothing would fly off. Taken with a tripod mounted camera with its shutter speed matched to the rotation speed (approx 1/8th of a second)

Originally intended to be programmable via an Xbee blutooth module (never got that working) it required spinning down and manually programming with 4 different hex files each time the code or image list needed changing which became extremely tedious.

Due to a very limited budget and my own inexperience this first iteration suffered from intermittent dropouts of banks of LED drivers due (from what I can tell without being able to probe a PCB doing about 480RPM) to power transfer issues initially via my own DIY slip rings and later a set of 300RPM rated ones from China (they helped, but not much).

In addition to the dropouts the display also never appeared to the human eye quite as it was meant to. Due to health and safety concerns the University wouldn’t let me go ahead with my original plan for the motor which went something along the lines of “just rip one along with its driver out of a broken washing machine and bung it in there”. I can kind of see their point…
Sticking to low voltage and having not much money but needing something with a reasonable amount of oomph left me in somewhat of a difficult position. In the end I settled on an RC starter motor. At about 7V it draws about 25A so got pretty toasty after running for about a minute. My solution was to cut some big slots in the casing, pointed a fan at it and hoped for the best.
The problem with this motor, coupled with the dropout issue, was that it prevented the board ever spinning at the speed it was meant to. As mentioned in one of the other posts, the POV effect to really work the board would ideally be spinning at 700-900rpm. Being limited to sub 500 meant that to the human eye the display always appeared somewhat faded and washed out.

Edit 08/09/2017 – What was said above about the washed out appearance being caused by the slow spin speed is partially correct, but the problem is almost certainly more related to the lack of gamma compensation. The need for gamma compensation is something I realised when working on Globe and is pretty thoroughly covered in this Adafruit article.

2013-08-08 16.27.57
Test spin with a potato phone camera

2013-04-03 11.07.442013-03-01 16.28.352013-03-01 16.28.022013-03-01 16.28.162013-02-26 13.00.182013-02-26 13.01.452013-03-01 16.28.28

Turning an image into funky hex


Leave a Reply