|Left - Raspberry Pi 4B, Right - Raspberry Pi 3B. Heatsinks installed on both boards.|
Well, on Prime Day recently, I was able to get a Raspberry Pi 4, 4GB "Starter Kit" for a price I could not resist. It's nice to have all the parts including the appropriately sized heatsinks, ready-to-use microSD card, and 5V/3A USB-C power supply. For now, I have no need for the Pi 4 case and the micro-HDMI cables can go in my box of miscellaneous cables.
For audio streaming purposes, a basic 2GB Pi 4 kit (<US$55) would be even cheaper and works just as well. Given the minimal difference in cost, no point going with a 1GB model although that would still be fine - remember the Pi 3 was limited to 1GB. There is also an 8GB Pi 4 but that's a huge amount of memory for just an audio streaming "appliance"!
Here she is, the Raspberry Pi 4 board itself:
The Pi 4 is based on Broadcom's BCM2711 SoC containing a quad-core 64-bit out-of-order capable ARM Cortex-A72 CPU running at a stock 1.5GHz. This is quite a powerful processor considering the price and size.
Before I put it into the "Touch" case, I installed the heat sinks on the SoC/CPU, memory chip, and the small USB controller between the USB connectors. I plugged in a keyboard, my 4K monitor, and used the included Raspbian OS microSD card to 'feel' the speed as a desktop machine:
Clearly it's much faster than the previous Pi 3B and B+. But having said this, it's still a slower machine than modern laptops and desktops. Web browsing shows some latency but this is the first Pi I've used where the GPU is good enough for smooth YouTube watching while the CPU is speedy enough to manage browsing in another window.
I wanted to make sure that I updated the EEPROM to the latest version if there is one. Since release, the Pi 4 has received updates that have improved power utilization and lowered temperatures which is essential for audio streaming IMO - remember, no fans in the sound room! Note that if you have one of the newer Pi 4 version 1.2 boards like I have here, you should be up-to-date already.
Here's the basic procedure if you need to do an update:
Make sure to update the OS first and possibly install rpi-eeprom package:
$ sudo apt-get update
$ sudo apt-get full-upgrade
$ sudo apt-get install rpi-eeprom
Then check the EEPROM version which should show something like in the black screen capture above:
$ sudo rpi-eeprom-update
If like me there's no need to update, you're good. Otherwise install update and reboot:
$ sudo rpi-eeprom-update -a
$ sudo reboot
[Note: you don't need to run Raspberry Pi OS a.k.a. Raspbian to run rpi-eeprom-update. RoPieee has this command already installed and you can access it through ssh into the machine as we'll be doing below.]
So after this, I followed the instructions discussed previously to install the RoPieee image to microSD (Step 6). We then put the microSD in the Pi 4 slot and it's time to put the new Pi 4 in the SmartiPi Touch 2 case:
And for the sake of air flow, let's use the Pi 4 backing but without the fan in place, notice I've also installed the USB-C / microUSB Y-cable to power the Pi 7" touchscreen and Pi 4 board:
I'll leave you with the rest of the install...
Here's the final product - almost the same look on the outside but clearly quite different internals. The external difference is that the ethernet cable is coming out above the USB connectors now:
|Notice I have a 90° USB adaptor. Likewise, for cosmetics, one could get a 90° ("down angle") ethernet cable so it doesn't stick out as much.|
It's CRAAP™ time! :-)
I did not run into any issues with overheating as-is. The CPU has a thermal protection mechanism to throttle speed if it ever approaches 85°C by default. Audio streaming with RoPieee almost never exceeds 20% CPU utilization from what I can see, even with high-resolution 32/768 streams.
However, since I do like to save energy and I wanted to ensure that the Pi 4 runs cool while fanless, let's use some Convoluted Rationalizations And Audiophile Perceptions (CRAAP)™ to customize configuration settings as we had done in the past with the Pi 3 and Pi 3B+!
Since the Pi 4 is way more powerful than needed for basic audio streaming, let's underclock and undervolt this baby while maintaining more than adequate speed using RoPieee(XL). I'm sure you can do something very similar with piCorePlayer, just that I don't have pCP running currently on the Pi 4.
What we need to do is to edit the /boot/config.txt file.
1. ssh into the RoPieee Pi 4. Look at your router settings or on the RoPieee screen to see what the local IP address is. Mine is 192.168.1.197. So for me, open a Command Prompt in Windows and issue this:
Password is "ropieee".
Alternatively if you prefer, use software like PuTTY:
Log in as root, and password as "ropieee".
2. Install a text editor like nano. Alas, I don't think there is a text editor installed by default in RoPieee. Remember that RoPieee is based on Arch Linux so package installation is different than typical Raspbian (which is Debian-based like Ubuntu):
pacman -S nano
3. Now go into the /boot directory and "nano config.txt" to edit the file:
4. Now copy and past these CRAAP settings into the config.txt file:
# Archimago's CRAAP Pi 4B Settings...
# October 14, 2020
# CPU speed control - normally 1500MHz, min 600
# CPU voltage control - SYSTEM DEPENDENT!
# SDRAM control, normally 3200 - again, watch system dependent voltage
gpu_mem = 256
# Keep it cooler! Throttle at max 75C.
As you can see, I'm highlighting the "Edit --> Paste" function for the Windows Command Prompt in the screenshot above to show how the text was pasted in. After that, CTRL-O to "Write Out" the config.txt file and CTRL-X to get out of nano.
watch vcgencmd measure_clock arm
watch vcgencmd measure_temp
To end off, in other news, I find it interesting that Darko.Audio closed off public comments to his YouTube videos. In fact, it looks like many (most?) comments left over the years are now gone. This is in addition to the fact that a few years ago (2017) he stopped allowing comments on his main website and the comments prior to that seem inaccessible as well.