The first major stage of this build project is to gather and assemble the main hardware used for this build. Thankfully the project requires very minimal hardware, which is listed below. In addition this post will also go into further detail about how the hardware is setup and configured to get it into a stable state, ready for the software stage of the build.
CPU: Raspberry Pi Zero
I knew a Raspberry Pi was central to this build, as it has the computing power and connectivity necessary to make this project work. In addition the form factor is the right size to be housed in a photo frame.
The downsides to using the Pi are the long startup times for it to boot into the OS. I did consider an Arduino for this project, but getting the networking working on an arduino would have been a project itself…maybe something for v2!
Even though there are many variations of the Pi available, I knew the Raspberry Pi Zero was the one I would need for project, as it was the smallest of Pi’s and created specifically for siz limited spaces. I picked up the Wi-fi embedded edition, and with the pre-soldered headers, to connect to the screen.
A warning to all, sourcing Pi’s now are a nightmare. Such cheap costs and high demand has caused the prices to skyrocket, and it to be sold out everywhere! I picked mine up here.
Screen: HyperPixel Square Screen
Naturally a screen was necessary for this build, but I cannot express how difficult it was to actually find an appropriate screen for this project. The main requirement was that the screen was square. An easy enough ask, but not something easy to locate. Most screen have a size ratio of 4:3 or 21:9, whereas I needed a pure 1:1, as most album art is square, and I wanted to embed this project in a square photo frame.
Eventually I managed to source a screen that was perfect for this build. This was the HyperPixel 4 Square. It is a perfect 4x4 inch square, and comes in two variants, a touch and non-touch screen version. This screen was perfect for this build as it it designed specifically for thr Raspberry Pi. It plugs directly into the Pi’s GPIO ports, and with a few software updates will begin to act like a colour display for the Pi. I purchased mine alongside the RPi here.
Housing: Deep Square Frame
It took me a while to find the best frame to house this unit, but eventually I located a 10cm square deep set frame from Hobbycraft in the UK. This is is not only the perfect square size, but is also deep enough to house the screen and Pi. Some minor modifications will be required to route the power cable out of the unit.
As the screen is built for the Pi the assembly is easy enough. All that is required is to push the screen into the header pins (that’s why I bought the Pi with a pre-soldered header), and connect up the power and you are good to go.
Installing the OS
The OS I have decided to go with is DietPi. I chose DietPi over the standard Raspbian, or RaspianLite, Because it is a super trimmed down version, and will enable me to get to boot much quicker.
- Download the image for DietPi from the website and flash it onto an micro SD (2gb or above. When writing this I realised I didn’t have any, and had to prime one to my house the next day)
- Flash the image to your card using your standard methods
- If using a headless setup, then follow the additional setup instruction to to configure wifi prior to initial boot
- Insert the SD card and power on the Pi.
- Find the IP address and SSH in using the default credentials!
Getting the Screen Running
The screen largely was simple enough to setup but it came with its own set of issues. I started by connecting the screen to the device (which was a simple click in process) and following the steps located here on the Hyperpixel Github page.
The instructions were slightly convoluted and eventually lead me to this Github Issue #177, which explained that the required drivers were built in to the OS, and all I would need to do is update the
/boot/config.txt file with a single line and “it should just work”…naturally that wasn’t the case.
After some tinkering, I decided to go with the legacy installer, which worked as expected. After digging into the install script I found that it basically pulls the appropriate branch from the repo (branch “square-2021”) from git and simply runs the install script, which can be done manually as well.
After a reboot we get something like this:
Whats going on here? Why does the screen have that weird tint to it? Turns out I have no idea! I emailed support who responded it had something to do with power saving. I didn’t have the energy to diagnose the issue at that time, so with that I packed everything away and went to bed.
The next day I powered the device on and the problem was magically fixed! So I’m not sure what happened, but if you have this issue, just wait a while and it should resolve itself. It’s something I will keep track of to see if it comes back.
With that, the device is now ready for the software portion of this build. Which is the next step of the process.