In this mini series we’ll take a look at the Pi Desktop from element 14 (not compatible with the RPi4!)
In this Episode we’ll take a look at the hardware itself and how to ‘built’ it.
Lets get started.
- Pi Desktop
- Raspberry Pi 3B (+)
The Pi Desktop is a case for the raspberry pi version B or B+ (including the 2B, 3B and 3B+).
Due to hardware changes it is not possible to use this in combination with the PI4.
The Pi Desktop is a sturdy case with a power button, this makes it look more like a desktop pc then a raspberry pi case and that’s what it’s designed for.
So lets get started.
When opening the box and unpacking things you’ll find the case (in 2 pieces), a PCB with coin cell holder for the RTC, and the screws.
Lets install the Pi.
I chose the RPI 3B+ with an active cooler attached to it. This is no must and it’ll do fine with passive cooling. Don’t forget to install the programmed SD card into the pi first, there is no way of getting it in or out otherwise. Check out our SD burning tutorial if you don’t know how to.
If you want to use the mSATA to boot you can leave the SD card out of the pi (see later in the tutorial for that, you’ll need to enable USB boot FIRST!). Note that i have chosen to use USB boot.
Mount the hex busses and tighten them, I used my trusty Victorinox knife to do this job.
Now that out pi is secured in the case we can add a camera if we have one.
On to the extra PCB that was delivered with the case. Lets inspect it some more.
On the bottom side there is not much of interest, a few capacitors, the coin cell holder and the pi connector.
But check out the other side, now this side is much more interesting.
You’ll directly notice the strange connector and 2 screw terminals. This is a mSATA connector. Here you can connect a SSD for storage and booting. On the right side you can see 2 micro USB connectors. One is for the power, the other is the SATA to USB bridge. The chip right next to it is also the SATA controller chip.
Under the mSATA drive you can see a microcontroller, this one handles the power delivery to the pi, the power led indicator, and RTC.
Pressing the button will enable the supply to the pi and thus starting your OS. When holding down, like you would on a pc, you’ll force a shutdown (for this to work you need to install a bit of software).
Notice: there is a bug in the system. When you try to REBOOT your pi it’ll shutdown correctly but won’t restart due to a timer problem in the power supply. The supply cuts out before the reboot is complete hence it doesn’t get the keep-alive command.
Mount this PCB onto the pi like you would any hat and secure it in place using the leftover screws. If you gave a mSATA drive, now is the time to mount it.
Now there are 2 options to continue from here on.
The first one is to just use a SD card for the OS and use the mSATA as an external drive. That’s all fine and then you can close up the case (notice that you should have installed the sd card BEFORE inserting the pi). I chose a Pi 3B+ with a reason. Not just because it it the latest model that fits in the case (the PI4 no longer fits) but also because the USB boot is already enabled by default. This means I don’t need the SD card to enable it, GREAT.
Now I told you it is possible to use the SATA drive to boot from.
When you have the PI3B+ installed you can skip to the OS installation, else lets find out how to actually enable the USB boot.
Enable USB boot
On the Pi 2B until the Pi 3B (and the compute module 3) we must first enable the USB boot mode. This will enable us to not only boot from a USB drive but also from the network.
To enable USB boot mode you’ll need a SD card. Once you got that done start up the pi so we can program the OTP memory of the Pi (One Time Programmable). Once this bit is set we have no more need for a SD card.
Note that any change you make to the OTP is permanent and cannot be undone.
On the Raspberry Pi 3A+, setting the OTP bit to enable USB host boot mode will permanently prevent that Pi from booting in USB device mode.
You can use any SD card running Raspberry Pi OS to program the OTP bit.
Enable USB host boot mode with this code (run in terminal):
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
This adds program_usb_boot_mode=1 to the end of /boot/config.txt.
Note that although the option is named program_usb_boot_mode, it only enables USB host boot mode.
The next step is to reboot the Raspberry Pi with sudo reboot and check that the OTP has been programmed with (don’t type the dollar sign):
$ sudo reboot $ vcgencmd otp_dump | grep 17: 17:3020000a
Check that the output 0x3020000a is shown. If it is not, then the OTP bit has not been successfully programmed. In this case, go through the programming procedure again. If the bit is still not set, this may indicate a fault in the Pi hardware itself.
Note: you should remove the program_usb_boot_mode line from config.txt, to prevent accidental programming of other PI’s OTP memory. Make sure there is no blank line at the end of config.txt.
You can now boot from a USB mass storage device in the same way as booting from an SD card.
For a full installation guide go to our SD burning tutorial.
Now there are 2 ways of getting the OS on the mSATA drive.
- Copy the SD card over to it using the handy backup tool provided in the Pi OS environment.
- A clean install using a USB micro cable connected to the PC
I’ve gone with the latter.
Connect the USB to SATA port with your PC, this should now ‘ping’ as it found a new device. Open your preferred burning tool and start the fun.
I used the raspberry pi imager.
Continuing HW installation
Connect the USB connector to the pi like shown on the picture above, this will enable you to actually use the mSATA. If you don’t have one inserted you can leave the connector on the side and free up a port on the PI. Close the case, connect you network (or connect to the wifi later on) and power the beast up.
Note that connecting power to the PWR-in doesn’t enable the pi, you HAVE to press the button.
Now that we have installed the Pi Desktop we can have our fun with whatever we wish to do with out new desktop.
But before we continue i strongly advice you install the required software to use the HAT.
This makes all the extra’s work. so go over to GitHub and install this software.
Looking a bit closer at the case we can see that airflow is restricted. This is the reason why i added active cooling to the PI. It is a pretty fancy enclosure that can potentially have a lot of internal memory
Will the Raspberry PI enter thermal throttling when playing old games?
The on-off power button works as advertised.
The status LED illuminating the element14 logo can’t be turned off, so it can be a bit disturbing if you leave the Raspberry PI powered on at night.