Try out the Raspberry Pi Model 3 B Plus! - Review

Table of contents

RoadTest: Try out the Raspberry Pi Model 3 B Plus!

Author: hlipka

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Regular RPi3B

What were the biggest problems encountered?:

Detailed Review:

Intro

The goal for this road test was to look at the compatibility between the new RPi3B+ and its older siblings. From the past experience the Raspberry foundation was quite good in maintaining compatibility, but there were always some changes between the different generations.

Compare the RPi generations

Here a look at three different RPi models:

image

On the left the RPi B+ (the first model with the 40-pin header), in the middle the RPi3 and to the right the new RPi3B+. They look quite similar, but the the differences are in the details.

For example, the RPi3 moved the status LEDs to make room for the WiFi antenna, which could cause problems with some enclosures. The new RPi3B+ adds the new header for the POE functionality, which can cause conflicts with large HATs.

Compatibility

Compatibility comes in different forms: mechanical, electrical, software and performance. So lets have a look at all of them.

Mechanical

All RPi generations comes in the same form factor (apart from the RPi Zero and the compute modules). Starting with the B+ the expansion header, all connectors and the mounting holes stayed the same. This means you can reuse enclosures designed for all of them. The only difference are the moved status LEDs, which might not be visible when the enclosure has not provided holes for them.

Also, shields designed for one generation work on newer ones too, and they also will fit mechanically. The RPi3B+ introduces a new header, used for the POE functionality. It stays outside of the area normally used for HATs, but with exceptionally big ones there might be problems. Normally even then there should be enough clearance:

{gallery} RPi3B+ POE header

image

The RPi3B+ POE header in detail

image

POE header clearance

but when there are components placed in this area they could touch the shield.

Electrical

As already mentioned, the connectors stayed he same starting from the RPi B+ onwards, not only from a mechanical perspective, but also the pin assignment stayed the same. One difference though is which serial port is used for the serial console. The RPi comes with two UART blocks (a mini-UART and a PL011 UART). For all RPis with Bluetooth the mini-UART is used for the console (since the PL011 is used for Bluetooth), while on the other ones the PL011 is used for the console. While the serial port is still routed to the same pins on the expansion connector, the mini-UART has less features (e.g. less buffer, and cannot handle parity) which could cause problems with projects expecting these (see also the official documentation on the UARTs).

I have one shield using the serial port (an Enocean gateway) running on a RPi2, and it also run without problems after migrating this setup to the RPi3B+.

image

One issue that comes up is the current consumption. While the first RPi generation was quite picky with the supplied power, and had some problems, the use of a switching converter from the B+ onwards made them go away. This change also reduced the current consumption. But since the RPi3B+ increased the CPU core frequency, it probably takes more power - so I will have a detailed look at this in a separate chapter.

Software

As usual, migrating an existing setup to the new RPi generation requires a software update. At the time of release, the current images of Raspbian or NOOBS provide the current software, so one doesn't need to worry there.

The update procedure is quite simple (but needs a working network and internet connection):

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install rpi-update
sudo rpi-update

The first line gets the updates package information. The next two lines update all packages, and move to the newest distro version if needed. The last two lines install the package used for firmware updates, and then run the actual firmware update. Depending on the number of packages to be updated, and the network speed, this takes only a couple of minutes up to maybe a couple of hours (when you need to download many packages).

I tested a number of existing images I have in use at home: OpenHABian, OctoPi, Rapsbian (running PiHole), and all of them upgraded cleanly and run without problems. Given that the Raspberry Pi foundation always invests heavily in providing a seamless upgrade experienced, this is to be expected. When you use a setup that is not based on one of the standard images (I think OpenElec is one of them) you might need to wait until the project provides the needed updates.

Performance

Measuring performance is always tricky. As with my last RPi road test, I will look at the boot time and the start-up time for OpenHAB as real-life scenarios. Since I plan to use PiHole in my home network, I also used NameBench as performance test suite for DNS, and looked at how the different generations perform.

Boot Time

I measured the time between turning on power to the RPi, until the login prompt appears. For that I configured Raspbian (latest version) to boot into the command line, this provided more reliable numbers (and less fluctuation between runs).

Here the results:

RaspberryBoot time (s)
RPi B+57
RPi221
RPi320
RPi3B+20

Both RPi3 version boot in about the same time, and are not much faster than the RPi2. Most likely the SD card is the limiting factor now, and not the raw CPU power.

(For some reason, the original RPi B+ always did a file system check on startup, but I excluded that in the above measurements)

OpenHAB startup

Since my last review OpenHAB2 was released, so I did a re-run with the newer version (and the results differ). Since OpenHAB is configured for autostart, I just took the time when it was started by systemd, and the time where the logfile stated that it started up fully.

Here the results:

RaspberryOpenHAB2 startup time (min:sec)
RPi B+6:03
RPi21:00
RPi30:34
RPi3B+0:31

The jump from the original RPi up to the RPi2, which introduced a faster CPU core as well as double the memory is the largest. But the jump to the RPi3 is also noticeable, and the RPI3B+ is even faster (albeit only by 10% - it seems the SD card is the limiting factor again).

DNS performance

Normally, DNS is provided by my Mikrotik RB3011 router, which then forwards to my ISPs DNS (or to the Google DNS, whichever is fastest). I used NameBench to measure DNS response times. I was run against one of the RPis each time, and with the Google DNS as reference. From the results I then deleted all queries which timed out, and then calculated average response time, and the P50 and P90 percentiles. In addition, I looked at the maximum CPU usage that the two important PiHole processes (dnsmasq and FTL) created.

Here the results:

DNS systemavg. response time (ms)avg. response time P50 (ms)avg. response time P90 (ms)CPU usage FTLCPU usage dnsmasq
RPi B+8636266304.2
RPi387392686.61.0
RPi3B+78342315.61.3
direct 8.8.4.410940331
direct to router7633202

I'm kinda stumped that the RPi3 was slower than the original RPi B+. Although it has a much lower CPU usage, the response are slightly worse on the faster RPi. On the other hand, the RPi3B+ performs significantly faster, although this DNS test should not stress the CPU and the network interface to the maximum. It might be that the network chip introduced in the RPi3 creates more overhead.

The CPU usage drop as expected with the faster Raspberrys - the difference between 1.3% and 1.0% is well within the measurement uncertainty (I was just looking at top for that).

Important result: using PiHole will not introduce a noticeably delay in network connection - not even with the original RPi.

Current consumption - setup and measurements

To measure current consumption I looked at how much current the Raspberry draws during the boot process (from power-on until the login appears). To make this easy, I build a simple current probe which I then connected to my scope so I could see the different stages of the boot process:

{gallery} Current draw measurement setup

image

Measuring RPi current draw

image

The current sense adapter

Its using a 50 milli-Ohm shunt so even large current draws will not affect the voltage available to the RPi. Since I did a high-side measurement, I added a current shunt amplifier (an AD8215, with a gain of 20 - so I get 1V/A), and then I added an low-pass filter for the output (so the current consumption is averaged out). Here are the results:

{gallery} RPi startup current

image

RPi B+ startup current

image

RPi2 startup current

image

RPi3 startup current

image

RPi3B+ startup current

or in numbers:

Raspberryavg. current (mA)max. current (mA)
RPi B+218281
RPi2240430
RPi3277607
RPi3B+353747

Note the different time scale for the first image - the Rpi B+ takes much longer for booting up. The vertical scale is the same for all, so one can see that the newer generation take quite a lot more power. For the RPi3B+ the jump was much large than expected. It seems as if the new network interface and the new wireless interface also need more current - the 15% increase in the CPU frequency should not account for such a large jump in current consumption.

But a 1A power supply should still be enough for all of the Raspberrys, as long as you don't add additional peripherals.

Conclusion

So I'm quite happy with the new RPi3B+. Its a nice upgrade to its predecessor, and since it is only slightly cheaper (or runs at the same price) there is not much reason to go with the older model. But there is also no need to throw out your older models - maybe apart from the original series.

Compatibility is one of the big selling points of the Raspberrys: its quite painless to upgrade a Pi to a new model, and the needed software upgrade is done in minutes without hassles.

So the score is above average - 34/60 means (for me) exceeds expectations. Rhe RPi3B+ does what its expected to be, but the painless upgrade path is where it really shines.

Bonus material

Recently I was forced to move around my network equipment (DSL router and stuff) due to some reconstruction work. I took this chance, bought some modern and future-proof gear and build a nice rack for all of it. There all the Raspberrys running my home found a nice place:

{gallery} My RPi rack

image

image

image

image
image

I used some PCB standoff to prove the needed clearance to the board I used for mounting. I rotated the Pis slightly to fit in the USB connector for power (which is provided by an Anker 5-port supply).

Anonymous