Raspberry Pi Evolution

I got my first Raspberry Pi back in 2013; Version 1 Model B and I got a rather nifty Lego case to go with it, I thought it would be cool to do a comparison between it and the latest Raspberry Pi 3B+

I also got a Berryclip along with it, which helped teach me my first use of GPIO/Python.

It was a pretty good time.

Now, over five years later I’ve made many a project and had pretty much every single version of the Pi since; from the A+ to the Zero W to the Pi 3B+:

Which is the same Pi I used back in my Oil-Cooled Raspberry Pi project.

I unfortunately don’t have an original Pi 1 A to use, but for all intents and purposes using a 1 B should work well enough for this test case.

Stuff

Raspberry Pi 1 B – these sometimes pop up on eBay

Raspberry Pi 3B+

Berryclip

Raspberry Pi Lego Case

Quake 3 – again, eBay is best bet

General Differences

I don’t plan for this to be an exhaustive look/benchmark of old vs. new, there are plenty of breakdowns and performance measurements around the net, such as this one – rather, it’s more of a high-level overview of how the Pi has changed as well as a look at how the Pi has changed aesthetically.

As seen in the video the Pi has undergone some changes to the board, the addition of extra GPIO pins, the SoC now has a heat-spreader on it to aid with thermal dissipation.

The original Pi (1 A) did not have any Ethernet connectivity, the B does but is limited to 10/100 speeds and is an adaptor connected to the internal USB hub. The newest Pi now has it’s own Ethernet controller enabling 10/100/1000 Ethernet (max 300MB/s) as well as 802.11ac WiFi and Bluetooth on board.

All B+ models have 4x USB ports and the old school RCA adaptor for connecting using S-Video has been removed along with the headphone jack being scaled down; resulting in a less cluttered look on the I/O side in my opinion.

The PCB design is also nicer looking to me on the 3B+, it just looks more advanced at first glance, paired with a nice set of heat-sinks and a nice case it can really look great.

Tests

The installation I am using for both is a Raspbian Stretch installation updated with:

sudo apt update && sudo apt dist-upgrade -y

I have 4 main tests to compare the two Pi’s:

Boot time

GLX Gears FPS (without v-sync)

Quake 3 average FPS on a map full of bots

Time to calculate Pi to 15000 digits

I am calculating Pi using the script here mixed with some Python from here to measure the time – this can be grabbed from my GitHub.

In order to install bc I had to add the Jessie repo to sources.list – instructions how to do that are over at my Windows Wristwatch 2.0 project. Then you can install with:

sudo apt install bc

Quake 3 will be tested by loading up a bot-match on the very first map available and filling it with maximum bots, then leaving it on the first spawn place of the player and measuring the average FPS. Instructions on how to install Quake 3 on Raspbian are over at my Oil-Cooled Raspberry Pi project. For Quake 3 I will be setting the Pi to use the Legacy GL Driver. You can set this with:

sudo raspi-config 7 Advanced Options A7 GL Driver G3 Legacy Ok and Reboot

GLX Gears will be run with no v-sync in order to show the max FPS – this should already be installed on Raspbian and can be run with the command:

vblank_mode=0 glxgears

In order to run GLX Gears I had to set the GL Driver to be OpenGL with Fake KMS:

sudo raspi-config 7 Advanced Options A7 GL Driver G2 GL (Fake KMS) Ok and Reboot

The reason for switching the GL driver like this is that I noticed the older Pi would not run with GL KMS driver, booting only to a blank screen. I think the original Pi, despite having the same GPU, the capability is not included in the firmware to enable full OpenGL (from my understanding of what I have read here, here and here, please anyone correct me if I am wrong). GLX Gears will run terribly on Legacy mode, however (as I think it’s rendering in software). Although in retrospect I imagine I could have knocked both Pi’s onto GL Fake KMS for all graphical tests.

I have the Pi setup to auto login and go into X11 so the boot time is measured from power-on to sat at the desktop with the CPU levelled out at 0%.

Results

The boot time is insanely faster with a whole 50 seconds sliced off moving from the Pi 1 to the 3.

GLX Gears also shows a huge leap in FPS, 800 in rough numbers.

Quake 3 also goes from unplayable to pretty much buttery smooth, I think the bots here really pushed the Pi 1 too far – without bots the FPS were a lot better, but still not a smooth experience.

Calculating 15000 digits of Pi is 3 approximately three times as quick on the Pi 3 over the 1.

Overall, moving from a Pi 1 to a 3 shows really great improvements, essentially moving it from a little board with a little power, to a little board with a lot of power and more ability to game, process and even general usage is much improved.

When trying to browse the internet on the Pi 1 it is very slow at even scrolling through pages, it also has no hope of playing any YouTube videos and anything with too much animation/content really bogs it down. The Pi 3, however, flies on general browsing and will even play YouTube videos on 1080p, although there is some noticeable tearing and frame drops when viewing 60fps footage.

Conclusion

Technology seems to develop exponentially and the Raspberry Pi is no exception – it has gone from something you would ideally keep on the command line only to something that can actually serve as a small general use computer for retro gaming/general web browsing.

It was also really cool and fun to break out my first Pi and see how it stacks up against my latest one in terms of aesthetics and functionality.

My results are all rough averages so don’t take them as exact measurements – this was essentially meant to be an exercise in general observable performance and how much more smoother the user experience is on the newer version.

Also let me know if I made any mistakes in terms of the Pi’s h/w and if anyone knows the reason why the Pi Zero’s etc can’t do full OpenGL despite having the same videocore.

Future

It’s very exciting to think of what the Pi will be capable of in another 5 years – with technology always developing and generally getting cheaper to produce we should see a few sizeable jumps in performance.

With things like TensorFlow now being available on the Pi things are really opening up, I’m very excited to see what comes out of using Machine Learning on the Pi. Which reminds me – it’s time I sat down and got to grips with TensorFlow on Pi…