You’ve probably heard about this little module by now; a cheap, wifi-enabled bit of wizardry that is all the rage. Using serial communication, you can talk to the device and send commands out to the interwebs. I’m certainly not claiming to be bringing anything new to the table with this post, but I did want to share some of my experiences, and in particular, some of the hang-ups I ran into.
Since the Raspberry Pi 2 was such an InstaBuy™, we of course bought a couple immediately and they showed up this weekend! So of course, the first thing to test out was how much of a speed improvement we could get with BiblioPixel and the AllPixel. Especially with the new multi-driver support
The tests were broken down into 3 stages; Easy animation with increasing pixel count, Hard animation with increasing pixel count, and constant pixel count with increasing driver count. In all cases the Bloom animation, which is quite CPU intensive, was used; for which there are two code versions. The easy one is designed for speed at the sacrifice of brightness or matrix rotation support. The hard version handles brightness and rotation but is much more computationally expensive. Each test ran an increasing number of AllPixel drivers, from one to four, each of which always drove a 26×26 matrix of 676 total pixels. So, not only does the driver count increase with each level but so does the pixel count.
The constant pixel test used the easy Bloom version and maintained a constant 600 pixels total, which was divided among each of the four AllPixel drivers so that the more drivers, the fewer pixels each had to control.
The test hardware used consisted of four final revision AllPixel driver boards, a Raspberry Pi 2 Model B and a Raspberry Pi Model B+. To ensure there was no difference due to software version, the same SD card was simply swapped between the Pis.
In the Easy animation test, you can see that the Pi 2 provides as much as a 300% speed improvement with threading and 200% without.
In the Hard animation test, you can see that the Pi 2 provides nearly a 400% speed improvement for threaded and non-threaded tests. You might have noticed for both the easy and hard tests that the single driver non-threaded was faster than the threaded on the Pi 2, for one driver. We’re not 100% sure what’s going on in that case… this will require more investigation. But it’s likely that the overhead of running the serial communication on another thread isn’t overcome by the speed gains of using multiple drivers. As you’ll notice, the more drivers used, the greater the difference between multi and single threaded.
The constant pixel count test was really interesting. The single threaded version on the Pi 2 was consistently faster than the multiple threaded version, but almost the same once you get to four drivers. Each driver is running less pixels as the driver count increases, but there’s a minimum overhead incurred which only becomes negated as the driver count increases.
However, it still maintained a 300% speed improvement over the Pi B+, similar to the rest of the tests.
While it’s not the 600% performance boost touted by the Raspberry Pi team, it’s hard to complain about the speed improvement we are getting. Note that the difference comes from the fact that we only gain a speed boost on the frame generation but almost none from actually sending the data to the AllPixels. Each was setup with an LPD8806 strip, clocked at 16Mhz, so the time to output to each AllPixel was basically a fixed constant, regardless of which Pi was used.
That’s all for now. We’re super happy to see such a capable single board computer be available and still for only $35!
Previously, I talked about the ODROID-C1 as a possible, faster alternative to the Raspberry Pi. Well, there’s a reason I haven’t mentioned it again… the software is a mess. It just doesn’t have the community around it that the Pi does. Most disappointing was that their USB Serial kernel driver was a total mess and would not work with the AllPixel So, that’s why I’m so excited about the new Raspberry Pi 2!
Quad-Core 900MHz CPU with 1GB of RAM in the same lovable Pi package and the same great community?!?! Yes please!
Of course, I already have one on order and will be posting a speed comparison of the new and old Pi running BiblioPixel performance tests as soon as it’s in. There’s little doubt it will work as well as the old pi
Time for everyone’s favorite segment… err, never done this one before. And it’s something we ordered… but for other people, so we’ll say it counts.
For the awesome folks at TriEmbed, our local electronics enthusiast group, we decided to put together a bulk order of LEDs with the manufacturer we are using for the AllPixel Kickstarter rewards. It’s not everyday you get $2000 worth (more like $5000 street value) of LEDs in the mail, so it seemed best to document the unboxing.