|Product Performed to Expectations:||10|
|Specifications were sufficient to design with:||10|
|Demo Software was of good quality:||10|
|Product was easy to use:||10|
|Support materials were available:||10|
|The price to performance ratio was good:||10|
|TotalScore:||60 / 60|
Putting the Raspberry Pi 3 through its paces
Tim Kramer (25 June 2016)
The following is my Raspberry Pi 3 review for Element 14.
My project proposal
My submission for the Element14 Road Test was to “put the RPi3 through its paces” by:
I was successful in implementing each of these, and discovered that some limitations still exist (I still give it a "higly recommended" status). Detailed notes and code for implementing the above are attached to this post (further down).
Visual differences from the RPi1
I had remembered the RPi3 described as having the same form factor as the RPi1. This was an error on my part (and why I didn't immediately buy a case). The RPi3 form factor is the same as the RPi2.
There are a number of physical differences between the Raspberry Pi 2/3 and the RPi1:
The end result is that none of the cases for the RPi Model B can house the RPi3, but most of the RPi2 cases can.
Since I didn’t have a usable case when the RPi3 was delivered, I created some “legs” for the Raspberry Pi 3, using some plastic offsets. Please note that doing so, for anything other than experimentation, is not recommened because the center of balance is very near the end of the board with the Ethernet and USB ports (plugging in a cable or dongle causes the board to tip). In short, you'll want to properly mount the board on a base bigger than the Raspberry Pi 3 (e.g., in a case or on a breadboard). For those that like more permanent solutions, there are a number of interesting acrylic cases (with fans) available via the usual online vendors.
Differences in performance
With the Liquidsoap/Icecast project, the Raspberry Pi 3 appears to be the first Pi that can handle the processing load without an inherent stutter [\o/!!]. On the Model B, the stutter would show up after a few minues. On the RPi 2, after a couple hours. The only noticeable (related) RPi3 issue is that cache memory appears to gradually grow over the period of a few days. However, Linux documentation indicates that this is normal and that memory is “recovered” when other processes need it. It appears to be a non-issue.
Update (20 Jun): I noticed that the stuttering does show up, but only after about 4-5 hours of streaming. It shows up as a few second pause in the stream, every fifteen minutes or so. Much depends on your streaming client and what you set as the buffer size.
Noted shortcomings (only my opinion)
Much of the effort was made simple by the release of Ubuntu MATE 16.04 for the RPi3, as packages, for software which I’d previously had to compile from source, are available (including Docker and DarkIce).
The Docker install worked nicely, though it was a bit slow (which isn’t a surprise for a low-horsepower SoC board). Unless you’re experience with manually installing Docker, I recommend using the Ubuntu package vice compiling from source. (Also, compiling Docker on the RPi3 takes a very long time.)
I needed to create a 500 MB swap file before I could compile Bitlbee and it’s plugins from source code. It appears to working “normally”, and with the buggy plugins, it crashes just like Bitlbee does on larger machines (some of the plugins are a bit dated). Again, I’d recommend sticking with the default .deb packages, even though my instance involves compiling from source. The trade-off is stability vs. extra plugins.
For controlling the RDA5807SP FM receiver, I only needed to figure out which header pins to employ. This was a simple install has I’d already rewritten some C code for the RPi1 Model B, without the WiringPi library, to control such boards.
I was also able to install DarkIce and Icecast2, and used a SoundBlaster USB sound card to stream a local radio station over my home network. Employable settings for DarkIce were a bit limited and the stream sounded a bit “tinny”, but it did work.
This is a must-have for hobbyists as the device is more-than-capable for most needs and has very few short-comings.