Home Blog Page 12

Trying Out The Revopoint POP 3D Portable Scanner

Today I’m going to be unboxing and trying out the POP 3D portable scanner, which Revopoint have sent to me to share with you. This is a handheld 3D scanner that Revopoint say can scan with an accuracy of within 0.3mm using dual infrared sensors and an RGB camera. The addition of the RGB camera means that you can capture RGB colour information for each data point and render full-colour 3D models.

Revopoint POP 3D Scanner Features

Here’s my unboxing and review video, read on for the write-up:

Where Can You Get The Revopoint POP Scanner?

You can buy your own kit from Revopoint’s website or on Amazon.

These come in three different options:

  • POP 3D Scanner
  • POP 3D Starter Kit
  • POP 3D Advanced Kit
Revopoint POP 3D Starter Kit

The options mainly differ in their inclusion of a turntable, that automatically rotates your models and a mobile accessory kit that makes it easier to use your phone in conjunction with the scanner.

At around $600, they’re not cheap, but they are priced quite competitively when you compare them to what else is available in the consumer-level at-home 3D scanning space.

Specifications

Scanning TechnologyDual Camera Infrared Structured Light
Single Point AccuracyUp to 0.3mm
Single Frame Capture Range210mm x 130mm
Operating Distance275mm ± 100mm
Minimum Scan Volume30mm x 30mm x 30mm
Scan SpeedUp to 8fps
Light SourceClass 1 Infrared
Output Format.stl, .ply, .obj
Scanner Weight225g
Scanner Dimensions155mm x 38mm x 26mm
Compatible WithWindow, Mac, iOS & Android

Unboxing The Revopoint POP Scanner

Now that we’ve taken a look at its basic specifications, let’s open up the box and see what it looks like.

Revopoint have sent me the POP 3D starter kit, which is the kit that includes the turntable and a mobile phone mount.

Unboxing The Starter Kit

In the box we’ve got some marker stickers and a black background sheet, then a box containing the POP Scanner, a sample object to scan (a white bust), a mobile phone holder and then the turntable with tracking markers already stuck onto the table.

Revopoint POP 3D Starter Kit Unboxing

Now let’s open up the POP Scanner and see what’s included in its box.

We’ve got a quick start guide, user manual and warranty card, we’ve also got two scanner cables, one with USB type A and one with USB type C connectors. We’ve got a strip of blue-tac (I’m not entirely sure why – possibly to secure models on the turntable), a telescopic stand for the scanner and lastly the POP Scanner itself.

Inside The Revopoint POP 3D Scanner Box

So altogether you get quite a bit with the kit. It literally has everything you need to be able to complete your first couple of scans, including a few consumable items like the markers, and the black background to make it easier to scan more difficult objects.

The cables are a little bit strange looking, they’re a USB 3, micro-USB port on the scanner end that also have a thumbscrew on either side of the port to secure it to the scanner.

Cables Supplied With Revopoint POP 3D Scanner

This helps to ensure that the cable isn’t pulled out of the scanner while it’s being move around which is a nice addition. You’re given a USB A and a USB C version of the cable so it’s compatible with more devices, like the newer Macbooks which have done away with USB A ports.

Cables Secured To Scanner

The actual scanner is quite compact, on the front there are four visible elements, at the centre is a projector, which I assume emits the infrared light for the two outer infrared sensors to detect, and on the left side of the projector is an RGB camera which shows you where the scanner is pointed and captures colour information for each scanned point.

First Look At Revopoint POP

On the bottom is a tripod mount.

Underside of Scanner

And on the back is an indicator LED, a button. Which to be honest, I’m not sure what it does, it doesn’t seem to be mentioned in any manual that I’ve seen. I thought it might have been a WiFi pairing button or something similar but this doesn’t seem to be the case either. And next to the button is the micro-USB port.

Back of Scanner

Installing The Revopoint Scanning Software

To use the scanner, we need to head over to the Revopoint Downloads page to download two software packages, Handy Scan and Handy Studio. These have both been developed by Revopoint.

Software Descriptions and Download Page

Handy Studio is only available on Windows at the moment but is only used for editing and refining the models, for which Handy Scan has some basic functionality as well.

It’s also worth noting that Handy Scan is also available as a mobile app for IOS and Android. You can pair the scanner with your phone over WiFi and scan directly on your mobile device, so you don’t even need to use a computer.

Their website also has a number of instruction manuals in a few different languages.

Revopoint Manuals Repository

In addition to the standard user manual and the quick start guide, they have more in-depth instructions for some common features that people might be trying to scan, including:

  • Face and Body Scanning
  • Marker Scanning
  • Scanning Small Objects
  • Scanning Black Object
  • Scannable and Unscannable Objects
Revopoint POP Scanner Manuals

These each take you through the best settings to use and the process to get a good quality scan of the feature type. In the Scannable and Unscannable Objects manual, they even tell you what you can do to be able to scan objects that are typically unscannable.

Scanning The Test Object

Let’s set up the scanner and try our first scan of the test object that came with the kit.

I’ve got the USB A cable hooked up to the scanner and the software running on my computer.

I’ve put the object onto the turntable and aimed the scanner near the top, looking slightly downward at it. You don’t have to capture the whole object in one go, you can move the scanner or object around to capture different viewpoints, we’ll look at this in a bit.

Scanning The Top Of Test Model

In the scanning utility, you can see a feed from the RGB camera in the top left and the infrared feed in the bottom left. You get a current render of the model and what the scanner is seeing in the middle of the screen.

Scanning The Included Model

I’m going to start a new project and select to scan a feature and no colour as the model is all white in any case.

We can then just click on start to start capturing the point cloud information, and we can now see the model developing as the scanner captures it.

Starting The Scan

Once all of the features at this angle have been captured, we’ll need to re-position the scanner at a new angle to capture the features that were hidden. We just pause the scan while we move the scanner and then hit resume to continue scanning.

Scanning With Changes Oritentation

We can also change the orientation of the model on the turntable and the application will automatically detect the new orientation and continue capturing the point cloud. I was actually quite impressed by how well this works. I expected it to have some difficulty reorienting itself when I turned the model on its side but it picked it up really quickly and continued the scan.

Once you’re done scanning, you can click complete and the application does some post-processing of the model.

There are a few points that I can see have been scanned outside of the model area, so I’m going to open the model up in Handy Studio to edit.

Modifying The Point Cloud In Handy Studio

I can then crop these addition points off of the model after meshing it. We can now also see that the surface of the model is a little rough, so I’m going to run the smoothing function on it to smooth it out a bit.

After 7 hours of printing, this was the result.

I’m actually really impressed with how well this print turned out. You can see it has lost a tiny bit of definition in the features, but it has captured the model really well. Even the scale is pretty much perfect. I have used some 3D scanning apps on my phone before and I can tell you that this is a massive improvement over anything I’ve seen from a phone app.

Scanning A Mug With Limited Features

Next, I tried capturing a mug. I choose a mug because it was one of the objects mentioned in the manuals as being difficult to scan. So I figured that if I could get good results with a difficult object then I’d definitely be able to scan easier models.

What makes the mug difficult to scan is that it doesn’t have many distinct features for the scanner to keep track of as it rotates. The handle is pretty much the only feature on an otherwise cylindrical object. So we have to make use of the white dots on the turntable to help keep track of the rotation of the object.

I’ve put the mug in the middle of the turntable and I’ve got the scanner set up to look down at the mug so that it captures a portion of the yellow inside edge.

Scanning The Mug

By setting the software up in marker mode, you can see that the white markers on the turntable are being identified and displayed in red on the main model view in the middle.

Mug Open In Handy Scan App

I then started the scan and allowed the model to make one full rotation. When using the markers, you can’t adjust the orientation of the object. So I have to do two scans to get both sides of the mug. One upright and one turned over so that we capture the bottom part of the handle and bottom face of the mug.

Turning Mug Over For Second Scan

So I saved the upright model and then started a new scan to scan the underside of the mug.

Underside of Mug Being Scanned In Handy Scan App

I again let it scan a little over one full revolution before stopping and saving the model. I’m also quite impressed by how well the image and text on the mug have come out in the point cloud.

Now that we’ve got the two sides of the mug scanned, we need to combine them. We can do this in Handy Studio using the merge function. This allows you to combine two models into a single model. You could also repeat over and over if you have multiple angles of the same object which have each captured different details.

Two Mug Models Before Being Combined

The auto-align feature didn’t work at all on the mug, but this is again probably due to it not having enough features to properly identify the orientation of each model.

Auto-align didnt Work

So the second option is to identify alignment markers on the models to tell the software how to merge them. This was quite easy to do with the text and image on the mug.

Combining The Mugs In Handy Studio

I mapped out 6 identification markers and then tried to merge them again. This time it worked really well.

Finished Combined Scan

The only real issue is that some of the resolution in the image (just the coloured texture, not the 3D model) has been lost and the white areas have developed a bit of a blue hue. I can only assume that this is because the images were probably not perfectly aligned.

This also got me wondering why you couldn’t use the distinct graphics on an object as an aid in tracking its orientation. The scanning app only seems to “track” an object using the infrared data, the RGB camera data is then just overlaid onto it. So as soon as the handle on the mug went out of sight, the scanner lost track of its orientation, although the text and graphics were still clearly visible and would have been an easy way to track the movement of the object. This was just a thought, I might be oversimplifying or misunderstanding how the “spatial awareness” of the scanner works entirely.

In any case, the actual 3D model came out pretty well for an object that was said to be difficult to scan.

Scanning A Full Colour Textured Model

Next, I wanted to try a model with some colour. I chose this one as it’s still light coloured, so should be easy to scan, but it has some texture to it and also some smaller features, including a hole between the arms – which are usually a challenge for scanners.

Trying Out The Revopoint POP 3D Portable Scanner

This also scanned impressively well. There were a couple of small spots on the face and neck which were obscured by the arms and weren’t captured, but it actually did a pretty good job overall.

Scanned Model Rendering

I tried the meshing option in the Handy Scan app and this did quite a good job of filling in the gaps. The only downfall was that it lost a bit of definition in the bird – making it a bit fatter or thicker than it actually was on the model.

Finished Meshing The Model In Handy Scanner

When I printed it out, you could see that the bird didn’t quite look like the original model.

Printed Model From Handy Scan App

Handy Studio had another effect. It meshed fine and kept the definition in the bird, but when trying to fill in the gaps in the chest and face area, it filled the gap between the arms as well. There didn’t seem to be a way to tell the app to leave this “gap” open.

Meshing Model From Handy Studio

My 3D printer also had some trouble printing the bird in that level of detail, but you can see it looks much more similar in size to the original model, although the arm area is now filled in.

Printed Model From Handy Studio App

All in all, I still think it did a pretty good job on both, aside from the bird, the model looks almost perfect, even the carved texture on the surface of the model was captured.

Printed Model Comparison

Final Thoughts

Overall I’m really impressed with the performance of the Revopoint POP 3D Scanner and I’d definitely recommend checking it out if you’re interested in reproducing 3D models at home or if you’ve been looking for a portable and affordable scanner.

It definitely is a bit more difficult to scan darker objects and it struggles with smaller objects – anything smaller than about a 5cm x 5cm x 5cm cube is quite difficult to get a meaningful model of.

Revopoint POP 3D Scanner on Stand

Revopoint have also recently launched the POP 2 scanner, so have a look at that as an option as well and let me know what you think of this scanner in the comments section below.

Making A Raspberry Pi Zero 2 W Case – 3D Printed

In this project, we’re going to be making a case for the Raspberry Pi Zero 2 W. This is a new and more powerful version of the original Pi Zero W, and has a quad-core 64-bit Broadcom BCM 2710 A1 chip. The CPU is similar to the original Pi 3, but with a few tweaks made specifically for the Pi Zero 2 W. 

This new, more powerful board is a significant improvement over the original Pi Zero, but it also uses more power and produces more heat. So we’re going to design a case which uses a 40mm fan to provide some additional cooling to the CPU.

Raspberry Pi Zero 2 W

The original Pi Zero and the new Pi Zero 2 have the same footprint and form factor, so this case will be compatible with both versions.

Here’s my video of the build, read on for the full written instructions:

What You Need For Your Pi Zero 2 W Case

You’ll need the following components to complete this project:

Parts Required For Case Build

You’ll also need some tools and equipment. If you don’t have some of these tools, have a look if you’ve got a local MakerSpace.

Some of the above parts and equipment are affiliate links. By purchasing products through the above links, you’ll be supporting my projects, with no additional cost to you.

Soldering Header Pins Onto Your Pi Zero 2 W

Most Pi Zero 2 W boards are sold without the header pins pre-soldered, so you’ll probably need to solder your own on. We need access to the pins in this project to power our 40mm fan, so let’s start by soldering the pins to the board. These will also be accessible through the front of the case to add a displays, sensors or other peripherals.

Just push the short end through the board and solder them on the under side of your Pi Zero 2W.

Soldering Header Pins Onto Pi Zero W 2

When you’re done, you should have your full set of GPIO pins accessible on your Pi Zero 2W.

Header Pins on Pi Zero W 2

Designing And 3D Printing The Case

I’m going to design the case in Autodesk Fusion360. I’ll start by creating a generic model of the Pi Zero and then design the case around it.

I decided on a basic rectangular design with the fan blowing across the Pi and out of a vented panel on the other side. I added a large acrylic window to the front so that the Pi is visible and this will also provide access to the GPIO pins. 

Case Design of Pi Zero W 2

The Pi and main acrylic panel are secured with M2.5 screws and the fan and vented side cover are held in place with some M3 screws. I’m going to use a thinner 2mm clear acrylic for the two covers so that they don’t protrude from the case as much.

Download the 3D Print & Laser Cutting Files

We can then export the main body of the case for 3D printing and open it up in Cura to slice it.

Slicing Case In Cura

I’ve designed the case with a 1.2mm wall thickness, which is perfect for 3 layers with a 0.4mm nozzle and I’ve added in supports for the cutout on the front and the mounting points on the inside.

I’ve also added a brim around the bottom of the print so that there is a bit more contact area with the build plate. I initially tried printing the case without the brim, but due to the rounded edges, there is only a single line contacting the build plate which caused warping on subsequent layers.

I printed the case out on my Creality Ender 3 V2 in black PLA, which took about 5 hours to complete.

3D Printed Case

Installing The Pi Zero 2 W In The Case

Before we can install the Pi Zero 2 W, we need to remove the brim and support material from the print.

Most of the brim can just be gently snapped off by hand, the remaining edges can be cleaned up with a sharp craft knife. The supports can then be removed using a screwdriver, craft knife or some needle nose pliers.

Make sure that you remember to remove the internal supports around the standoffs and fan mounting points.

Removing Supports From Pi Zero 2 W Case

The Pi can then be mounted in the case, with the GPIO pins on the open side and the ports aligned with the cutouts on the opposite side.

Installing Pi Zero 2 W

The Pi Zero 2 W is then secured using some M2.5x6mm screws which screw into the 3D printed standoffs. These standoffs also provide some room underneath the Pi for airflow as well.

Securing With M2.5 Screws

Next let’s add the heatsink to the CPU. I’m just using a small aluminium heatsink which should provide more than enough cooling with a 40mm fan. These is quite a bit of room in the case though so you can try using a different heatsink design if you’d like. There are a few options available online with taller fins. The one I’m using is quite compact and just has a peel and stick backing.

Installing Aluminium Heatsink Onto Pi

Before adding the fan, we also need to install the SD card with our operating system on it. The one I’m using came with the Pi Zero 2 W a few months back, so I assume it’s going to be the older Raspberry Pi OS Buster rather than Pi OS Bullseye but this can be upgraded at a later stage if need be.

Installing SD Card Into Pi Zer 2 W

Installing The 40mm Cooling Fan

I’m using a 40mm, 5V, clear RGB fan, you can also use a plain black one if you don’t want any lights on your case. Either way, first make sure that the power cable comes out the back of the fan and not off to the side. You might need to pull the cable out of the little retaining clips on the side like I’ve done.

Remove Power Cables From Fan Retaining Clips

I originally planned on using some M3x8mm screws for the fan and opposite side panel to keep them consistent, but they don’t protrude all the way through the fan so I’ll need to use M3x12mm screws on this side and M3x8mm screws on the opposite side for the acrylic cover.

When you position the fan, make sure that the cable is on the top corner on the GPIO pin side of the case and secure it with the M3 screws. Make sure that it is mounted as shown so that it is pushing air into the case rather than pulling it out of the case.

Installing Four Fan Screws For 40mm Fan

Now we can plug the fan into the GPIO pins to power it.

Most of these 5V fans can run on either 5V or 3.3V. 5V will give you more power and 3.3V will be a bit quieter, so try either depending on your use case. You need to plug the black wire from the fan into any ground pin and the red wire from your fan into any 5V power or 3V3 power pin.

Raspberry Pi 4 Pinout
Source: RaspberryPi.org

The 5V and ground pins are the two pins in the front as shown here:

5V Power On GPIO Pins

The 3V pin is the pin on the end in the second row. I’m going to use 3.3V as the fan is then a bit quieter as it turns slower.

3.3V Power On GPIO Pins For Pi Zero 2 W

Now we’re got the fan hooked up, we can start making our acrylic covers for the ventilation side and the main front and top of the case.

Making The Acrylic Covers For The Pi Zero 2 W Case

I drew the up in Inkscape to match the ones modelled in Fusion360.

The front cover has a screw hole on each end and some notches on the sides to indicate where it should be bent.

Front Cover Design In Inkscape

Download the 3D Print & Laser Cutting Files

The ventilation cover has the same form factor and mounting holes as the 40mm fan and I’ve added some hexagon ventilation holes which are similar to my other case designs.

I then cut these out on my laser cutter from 2mm clear acrylic. 

Laser Cutting Acrylic Parts

As mentioned earlier we’ll be mounting the ventilation cover with four M3x8mm screws and the main cover with two M2.5x6mm screws.

Install the ventilation cover first, using the four M3x8mm button head screws. The cover is symmetrical so can be installed in any orientation.

Installing Screws For Side Cover

Before we can mount the main cover, we need to bend it 90 degrees to follow the shape of the case. 

We first need to peel off the protective film and we can then use a heating tool to soften the acrylic along the bend line – the line through the two notches on the sides.

Front Acrylic Panel Before Bending

The tool looks like a hair straightener but it’s actually made to bend small sections of acrylic sheets and you can buy them online for about $15 (from Aliexpress). Be careful when working with the tool and the acrylic once it is soft, it is very hot and can easily cause burns.

Using Bender To Heat Acrylic Side Panel

With the acrylic soft, I’m going to use a second print to bend the acrylic to get a nice clean line. This is not entirely necessary, you can just use the case you’ve already got printed, I just want to support the whole bend while it is hardening.

Bending Acrylic Side Panel

Now we need to add the two M2.5 screws to hold it in place.

Acrylic Side Panel Fitted To Pi Zero 2 W Case

With that done, the case is now complete. So let’s turn boot up the Pi and see how it looks.

Booting Up The Pi Zero 2 W

Depending on what you’re going to be doing with your Pi, you can now plug in your power supply, monitor and and USB devices and boot it up.

Pi Zero 2 W Case Bootup

I quite like the look of the RGB LEDs on the fan, I think this came out quite nicely. You can also add a fan grill or dust filter to the inlet if you’d like, I quite like the fan being open and visible.

Pi Zero 2 W Case With Display

This makes for a really neat compact computer for a number of projects. I’ve been running Pi-hole on a Pi Zero W for a bit over a year now and that’s worked well. I’ve also used one as a security camera using MotionEyeOS

Using The Pi Zero 2 W Case

Let me know what you use yours for in the comments section below, and let me know what you think of the case design. What would you add or do differently?

DIY 4G Air Quality and Environment Monitor – Record Data Anywhere

In this project, we’re going to use the Maduino Zero 4G by Makerfabs to make an air quality and environment monitor that transmits the recorded data wirelessly over a 4G mobile network to a Thingspeak dashboard.

Watch my video of the build or read on for the step by step instructions:

The Makerfabs Maduino Zero 4G LTE

A couple of weeks ago, Makerfabs sent me their Open Wind Station to try out. It’s a compact Arduino compatible device that records temperature, humidity, pressure, wind speed and air quality information and uses a mobile network to transmit the data to a remote database or cloud service.

Makerfabs Open Wind Station

Unfortunately the built in A9G chip only works on a 2G mobile network, all of which have been decommissioned in Australia for a few years now.

Inside the Open Wind Station

But fortunately, they have been working on an alternative – the Maduino Zero 4G LTE. This new board uses a more modern SIM7600 chip which operates on a 4G network. They say can reach upload speeds of up to 50Mbps and download speeds of 150Mbps.

Maduino Zero 4G SIM7600E

The best part about this board is that it is also a fully programmable Arduino compatible microcontroller with 12 digital IO pins, 6 analogue pins and an I2C interface. So it’s perfect for projects that require data to be sent to or from a remote location. You can set this up anywhere that you have 4G coverage and have full control over it from any internet connected device.

Back of Maduino Zero 4G

Some of the Maduino’s features include:

  • LTE Cat-4, with upload speed of up to 50 Mbps and download speed of up to 150 Mbps
  • GNSS positioning
  • Arduino IDE compatible
  • Dual USB type-C ports, one for MCU programming/UART, the 2nd for SIM7600 USB connection
  • Audio Driver – NAU8810
  • Dial-up supports, phone, SMS, TCP, UDP, DTMF, HTTP, FTP
  • Dual SD card slots
  • USB supply voltage: 4.8-5.5V, 5.0V typically
  • Battery supply voltage: 3.4-4.2V, 3.7V typically
  • Onboard charger, up to 1A charge current
  • Overcharge protection(OCP), 4.3V
  • Over-discharge protection(ODP), 2.5V

What You Need For This Project

Equipment Used:

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting this blog, with no additional cost to you.

Testing The Maduino Zero 4G And Sensors

Now that we’ve taken a look at the Maduino Zero 4G, we’re going to use it to make an air quality and environment monitor. I thought it would be good to take the wind and air quality sensors from the Open Wind Station and integrate these with the new Maduino Zero 4G board.

Sensors To Be Used For Air Quality Station

I’m also going to add some additional grove DHT11 and BMP280 sensors to create a truly wireless air quality and environment monitor. These two sensors are just taken from the Grove Beginner Kit and already have the supporting electronics built into them so they just have a three or four wire interface to the Arduino.

We also need to add some pin headers to the Maduino board so that we can plug our sensors into them. The board comes with male pins but I’d prefer to use female pins so that there are fewer exposed pins within the case when it is complete.

Female Pin Headers For Maduino Zero 4G

I just cut these from some lengths of female header strips and soldered them into place on the top side of the board.

Soldering Pins To Maduino Zero 4G

I’m going to do a trial assembly of the components on a breadboard to start with because the original sensors operate on 5V while the Maduino Zero 4G operates on 3.3V, so there is a chance that they won’t even work with it.

I’ve connected the sensors to the same pins that they were connected to on the Open Wind Station so that the original code doesn’t need to be completely re-written for the new system.

Sensor Connections

The sensor connections are:

Anemometer

  • 5V – 3V3
  • GND – GND
  • Data – A0

DHT11

  • VCC – 3V3
  • GND – GND
  • Data – D13

BMP280

  • GND – GND
  • VCC – 3V3
  • SCL – SCL
  • SDA – SDA

PM2.5

  • Sens VCC – 3V3
  • Sens GND – GND
  • Sens Data – A1
  • LED VCC – 3V3
  • LED GND – GND
  • LED On/Off – D10

Now we just need to add the sim card to the tray at the back and plug the three antennas into the connectors on the front.

Plug In Sim Card

We’ve got it all assembled, now we just need to program it. 

Programming The Maduino Zero 4G

I’ve created a sketch using two examples sets of code, one being the 4G example code that Makerfabs have put together for the Maduino Zero 4G and the other being the original code for the Open Wind Station.

Here is the code if you’d like to try it on your Maduino:

The original code has the calculations and settings for the sensors, although I suspect that I might need to re-calibrate these at some stage as my change in cycle time will change the wind speed calculation and the lower voltage probably affects the brightness of the air quality sensor’s LED and its analogue output.

In any case, running the sketch on the breadboard setup seems to work correctly and I’m able to see some values from the sensors, so that looks promising.

Arduino IDE Sensor Values

I have created a new Thingspeak channel with it’s own write API key which will need to be copied into the sketch. This key allows the Arduino to write the data to the Thingspeak channel and it can then be accessed through any internet connected browser.

I added a gauge and chart widget for each of the fields/sensors and scaled them according to the expected values.

Thingspeak Dashboard Empty

If you’d like a more detailed look into how to publish data to Thingspeak, have a look at my 3D Printed Weather Station project. The sketch in this project uses a more user-friendly Thingspeak library.

3D Printing A Case To Hold The Components

Now that we’ve got the electronics working, we need something to mount it in. So, I’m going to use Tinkercad to design a case to hold the board and sensors in such a way that it can be mounted onto a 25mm pole.

Tinkercad Making Model

The case consists of 3 parts, the main body, a cover plate and a bracket. I’ve also made up a bracket to mount the anemometer onto the end of the pole. The components were all printed in PLA on my Ender 3 V2.

Case For Air Quality Monitor

Assembling The Air Quality & Environment Monitor

Let’s start by installing the bracket onto the back of the case. The bracket is held using two M4x8mm screws and nuts. The nuts fit snugly into the cavities in the bracket. A small M3x12mm screw is then used to lock the bracket into place on the pole by pressing against an M3 nut in the cavity on the inside of the bracket.

Adding Bracket To Back

The board is then held in place with some M2 screws and the sensors and components then fit in around it.

Installing Maduino Zero 4G Into Case

I was initially going to add the original battery from the Open Winder Station, but it’s only 1,000mAh, and I suspect this 4G board is going to draw a lot more power than the original one, so this probably won’t provide much benefit. I’ll instead use a USB cable to power it from a 30,000mAh power bank.

All Components Installed

I’m going to be using this in a partially covered area, so it doesn’t need to be rain proof, but I designed a couple of vent covers just in case it does get a bit wet if there is a lot of wind. I just stuck these on with some epoxy adhesive.

Vent Covers Installed

The anemometer is mounted onto the end of the pole using the 3D printed bracket, which is also held in place with an M3x12mm screw and nut.

Adding The Anemometer To Top Of Pole

We can then slide the main control board onto the pole underneath it and tighten the M3 screw to lock it in position.

Installing Case Onto Pole

The anemometer is then plugged in using the 4 pin connector.

Plugging Anemometer Into Controller

Testing The Maduino Zero 4G Air Quality & Environment Monitor

I decided to first test the power consumption to see how long it would last on my power bank. My USB power meter showed that it used around half an amp fairly consistently.

USB Power Meter

So my 30,000mAh power bank should power it for about 40 hours. If you’re going to be using it for longer periods of time then you’ll probably need to use a mains adaptor or solar power to keep it running.

Now let’s get it mounted outside and start recording some data.

DIY 4G Air Quality and Environment Monitor - Record Data Anywhere

After a few hours it looks like we’re consistently getting data from all of the sensors.

PM2.5 Readings and Wind Speed

The air quality reading definitely looks to be a bit higher than what I was expecting, so I’ll need to work on calibrating that. 

The wind speeds looks about right when I compared it to my other anemometer after a couple of days of use.

Anemometer Turning

Let me know what you think of the Maduino Zero 4G in the comments section below. Do you have any project ideas for a 4G Arduino?

Speaking of other ideas, you can actually also use this device to provide a 4G internet connection to your computer or Raspberry Pi and you can use it as a fully functional mobile phone to make calls. So there are a lot of options for it.

Makerfabs Maduino Zero 4G

Grafana Weather Dashboard on the reTerminal by Seeed Studio

Today we’re going to be taking a look at the reTerminal, by Seeed Studio. We’ll unbox the device to see what is included and we’ll then set up a weather dashboard on it using Grafana. We’re going to use weather data that is being recorded by an ESP32 microcontroller and is being posted to an InfluxDB database.

The reTerminal is a compact HMI (human-machine interface) device that is powered by a Raspberry Pi compute module 4 (CM4). It has a 5″ capacitive touch display, along with four physical function buttons, some status LEDs, and a host of IO options.

Watch my unboxing and setup video, or read on for the write-up:

Where To Buy Your Own reTerminal

You can pick one up from Seeed studio’s online store or from Amazon;

reTerminal (Seeed Studio) – Buy Here

reTerminal (Amazon) – Buy Here

Other components used for the Grafana dashboard;

Power Supply – Buy Here

ESP32 – Buy Here

Grove Sensor’s From Beginner Kit – Buy Here

Breadboard – Buy Here

Breadboard Jumpers – Buy Here

Unboxing The reTerminal

The reTerminal is shipped in a white box with a sleek matt black sleeve around it. The box is a little smaller than the display area of an iPad and is about 5cm thick.

reTerminal in Box

It comes standard with a 4GB WiFi variant of the Raspberry Pi Compute Module 4, running a quad-core Cortex-A72 CPU, and has 32GB of built-in eMMC storage.

It features dual-band, 2.4GHz/5GHz WiFi and Bluetooth 5.0, Gigabit Ethernet, Dual USB 2.0 ports, and a crypto-auth chip. It also has a built-in accelerometer, light sensor, and real-time clock.

reTerminal Specifications

The reTerminal is packaged in a protective sleeve and is surrounded by dense back foam.

reTerminal unboxing

In the box, you get the reTerminal, a small pack of mounting screws, and a small screwdriver. There isn’t a manual or datasheet in the box, but there is quite a lot of information available on their product page and the reTerminal wiki.

reTerminal Contents of Packaging

First Look at the reTerminal

The reTerminal is a bit smaller than what I was expecting but also feels like a much better quality product than I had anticipated. It is quite dense and feels solidly put together, with good quality materials.

On the bottom, we’ve got a 1/4″ camera mount and a small hole to access the reset button on the left side.

reTerminal Bottom

Along the top is a power button to the left, used to turn the reTerminal on again once it has shut down, a large aluminium heat sink along the back for the CM4 module, and a threaded mounting point on the right.

reTerminal Top

On the left side, we’ve got a USB C port for power, a micro HDMI port, Gigabit Ethernet, two USB 2.0 ports, and two M4 threaded mounting points.

reTerminal Left Side

On the right side, we’ve got a 40 pin GPIO header that has the same pinout as the other Raspberry Pi boards which is great for interfacing with sensors and expansion modules. We’ve also got another two M4 threaded mounting points.

Right Side of reTerminal

On the back of the reTerminal we’ve got the large heatsink, two more threaded mounting points, a slot for the camera connector ribbon cable, and under a dust cover, a high-speed PCIe Gen 2 lane.

Back of reTerminal
reTerminal PCIe Gen 2 Lane

Let’s Take A Look Inside The reTerminal

I’m not sure if the screwdriver is meant to be used for the mounting screws or to open it up, but we’re going to open it up anyway to take a look at what is inside the reTerminal.

First, we need to remove the 4 rubber feet/plugs that cover the screws securing the back plastic cover.

Mounting Points

One thing the reTerminal is not short of is mounting points. There are literally threaded mounting points on almost every side of the device, so you won’t have any issues securely mounting it for a project.

Removing the first cover and heat sink allows you to access the boot switch to re-flash the operating system on the Compute Module’s eMMC storage.

Removing the Back Cover and Heat Sink

Removing the second cover exposes all of the remaining electronics.

reTerminal Internals

The Pi 4 Compute module, can be replaced if you’d like, but I think they’ve chosen a good variant to ship with. You might want to go with the 8GB variant if you’re going to be doing a lot of multitasking or running more resource-intensive applications, but that seems unlikely on a device like this.

Swap CM4 Module Out With Alternate Model

On the board, some of the main features we’ve got are 15-pin and 22-pin camera ports, a 30-pin display port, a microSD card slot, a real-time clock module and a cryptographic co-processor with hardware-based key storage.

All of the electrical schematics are also available in their documentation.

Hardware Overview

This is version 1.6 of the board in my reTerminal.

Let’s close it back up and turn it on.

Booting Up The reTerminal

The reTerminal comes with Raspberry Pi OS Buster pre-installed, so when you power it up the first time, you’ll need to go through the usual first boot setup process.

reTerminal First Boot

It also comes preloaded with a reTerminal demo app, which just shows some of the basic functionality and use cases for the device.

reTerminal Preloaded App

The touch display is really responsive and is quite accurate for its size. As I’ve mentioned in previous reviews, like my review of the RasPad 3, Raspberry Pi OS itself isn’t the greatest for use with a touch display as the icons land up being really small and quite difficult to touch accurately. But if you’ve going to build your own dashboards and interfaces, which is the point of the reTerminal, then you have the opportunity to make the icons a bit bigger and these should work well.

Creating A Grafana Dashboard

I’m going to use an ESP32 to collect temperature, humidity and pressure readings. These will then be posted to a time-series database in InfluxDB. Influxdb can be run locally on a Raspberry Pi or on their cloud server, we’re going to be using their cloud server. We’re then going to be using an analytics and visualisation application called Grafana to display the information that has been stored in the database. Grafana can also be run locally on our Raspberry Pi (or reTerminal in this case) or on their cloud server. We’re going to be installing and running it locally on our reTerminal. You don’t need to use a separate Pi for influxdb and Grafana, you could run both locally on your reTerminal if you’d like to – I just don’t want to have to leave the reTerminal running all the time in order to collect the data.

Data Processing Between ESP32 and Grafana

Collecting The Weather Data Using an ESP32 And Posting To InfluxDB

To collect the weather data, we’re going to be using an ESP32 with a DHT11 sensor connected to pin 4 and a BMP280 pressure sensor connected to the I2C interface (pins 21 and 22). I’m using two Grove sensor modules from the beginner kit as they already have all of the required electronics built into them (additional resistors etc.).

ESP32 Circuit Diagram

I’ve written up an Arduino sketch based on the InfluxDB interface instructions to read in the sensor values and post the data to InfluxDB every 30 seconds.

You can download a copy of the code from my GitHub repository.

If you set up your API token and bucket, the generated code on the Arduino interface page accessed from your InfluxDB dashboard will already contain the correct setup information, so you just need to copy it into your code.

InfluxDB Arduino Interface Instructions

After a while, we can see that the information is now available in our InfluxDB database, so we know that our ESP32 is working correctly.

InfluxDB Data Explorer

So we can now move on to installing Grafana on our reTerminal and setting it up to display the information in our database.

Installing and Setting Up Grafana On The reTerminal

Next, we’re going to install Grafan by following the terminal instructions outlined on their website for an installation on Debian or Ubuntu.

Then we just need to start Grafana and set it to re-start on bootup.

Installing Grafana

We can then access the Grafana web interface by opening up a new tab in our browser, pointing to localhost, port 3000.

Grafana Web Interface Localhost3000

We then need to configure it to read in the data from InfluxDB by entering the sever and authentication information. This can all be found through your InfluxDB web interface and is quite similar to the information your ESP32 is publishing data to.

Grafana InfluxDB Setup

Once that is done we can start building our dashboard by creating panels. Each panel is essentially a graphic, gauge or other graphic which uses a query to pull information from the database. You can then customise the appearance of each panel through a number of settings and optional plugins.

Grafana Creating Panels

Im going to set up a gauge and historic trend for each of the three metrics.

I’ll also set each trend to display the minimum, maximum and mean or average value recorded for the time period.

Grafana Panels For Weather Information

Grafana gives you a lot of options for building dashboards and is a really powerful visualisation tool for your data.

Now it still looks like a web page on our reTerminal, so to get it to fill the complete screen, we set the browser to fullscreen mode by selecting the three dots in the top right and selecting fullscreen mode next to zoom. We then also need to cycle the view mode in Grafana by clicking on the monitor icon in the top right corner.

Grafana Fullscreen Mode

Now lets just resize the panels to fit onto the single fullscreen display.

Resize Panels To Fit Fullscreen

And now we’ve completed our basic dashboard. If you’ve got a lot of data, it would be great to add multiple tabs to your dashboard and use the buttons on the reTerminal to cycle between them.

Grafana Dashboard Running on reTerminal

If you guys would like me to go through the setup of InfluxDB and Grafana step by step, let me know in the comments section.

reTerminal InfluxDB and Grafana Weather Dashboard

Also, let me know what you think of the reTerminal, and be sure to check out their product page.

Seeed Studios sent me this reTerminal to review and share with you, but I was not paid to review or endorse the product.

Turning a Beelink SER 3 into a Custom Ryzen 7 Mini Gaming PC

Today we’re going to be taking a look at the new SER 3 series Mini PC from Beelink which has an AMD Ryzen 7 3750H processor and Radeon RX Vega 10 graphics.

People often ask me if they can run Windows on their Raspberry Pi, and I generally answer this by saying that – yes, there are ways to run windows or windows look-a-like operating systems on a Raspberry Pi, but you’re better off running Windows on a system that was designed to run it. That’s what the SER 3 is, it’s a mini PC that has been specifically built to run Windows, and to run it really well.

Raspberry Pi 4B

I’m obviously not comparing the SER 3 to a Raspberry Pi. This is a way more powerful computer, and it also costs a few times more than even the most powerful Pi. But, this is a compact computer that can easily be used in similar mobile environments.

Here’s my video of the unboxing and new case build, read on for the write-up:

Where To Get The Beelink SER 3

Beelink’s full range of Mini PCs are available through their website and a number of them are also available on Amazon.

Unboxing the SER 3 Mini PC

The SER 3 comes in a black cubic box with prominent red text on the front. It has some information on the specifications on the back, but there isn’t much else printed on the box.

Beelink SER 3 Series Mini PC

Inside the box, we’ve got the SER 3 on the top, which is protected by a layer of foam on the top and bottom. Taking it out of the box, it’s got some weight to it and the full metal enclosure is cold to the touch. It immediately feels like a well-built and good-quality computer.

Beelink SER 3 In Box

Underneath the computer is the user manual and in a compartment below that we’ve got a power adaptor, HDMI cable, short HDMI cable, VESA mount to attach it onto the back of a monitor or onto a wall, and a pack of screws.

Unboxed SER 3 and Components

I like the addition of the mount and short HDMI cable so you don’t need to buy any additional hardware to mount it onto the back of your monitor.

The power adaptor is quite large, being able to supply 3A at 19V, or a total of 51W. It’s pretty similar to a typical laptop charger although the plug is integrated into the adaptor, whereas most laptops have another lead to the plug. It would have been nice to have swappable plug designs to suit different countries, but this isn’t really a big deal.

Power Adaptor

The user manual covers all of the basic functions and how to use the mounting hardware.

User Manual

Exploring The SER 3 Hardware

On the front of the computer, we’ve got two USB 3.0 ports, a USB C port, a 3.5mm audio port, and a power button. This USB C port is able to drive a third monitor (in addition to the two HDMI ports on the back). I like that you have the option to be able to drive an additional monitor with it, but I probably would have preferred it to be on the back if I was going to use a USB C monitor full-time. That said, for my use case, I like having the USB C port on the front.

Ports on Front of the SER 3

There are cooling vents on either of the two sides. On the back, we’ve got the processor fan exhausts along the top and an Ethernet port, two more USB 3.0 ports, two full-size HDMI ports, and the power port underneath them.

Ports on Back of the SER 3

The top of the case is also vented to provide airflow to the CPU fan. I like the fine mesh finish rather than having some sort of fan intake pattern. It gives it a more refined look.

Ventilation on Top

The computer is powered by an AMD Ryzen 7 3750H processor, which is a 4 core, 8 thread processor that runs at 2.3 GHz with a maximum boost up to 4GHz.

Graphics are provided by a Radeon RX Vega 10 GPU which can drive up to 3 external displays, two through HDMI and one through the USB-C port on the front.

Ryzen 7 Processor and Radeon Graphics

Let’s open it up and take a look at the internal components.

Under the all-metal shell, we’ve got a compact motherboard. This particular version has 16GB of DDR4 RAM and a 512GB NVME SSD. These are expandable to 64GB of RAM and a 2TB NVME drive, it also has a bay for up to a 1TB 2.5-inch drive on the right side.

Inside the SER 3 Mini PC

As far as connectivity goes, it’s got gigabit Ethernet, dual-band WiFi, and Bluetooth 4.0.

On the other side of the board is the processor and its cooling fan. The cooling system is a heat pipe and fan assembly as typically used in laptops.

Cooling on the Motherboard

Running The Beelink SER 3

When you first turn it on, it’ll take you through the usual Windows setup process on a fresh install of the operating system. It is shipped out with Windows 10 Pro loaded, so you’ll need to run an upgrade to get it onto Windows 11.

I decided to run a quick Geekbench CPU benchmark on it. With Geekbench opened up, you can see the 16GB of RAM listed as well as the processor clock speeds.

Windows 10 Background

I ran the CPU benchmark and got a single-core score of 906 and a multi-core score of 3024, which for a computer of this size is not all that bad.

Geekbench CPU Benchmark Results for SER 3

Designing and Building A New Case For The Beelink SER 3

Now that we’ve had a look at the specs, I thought it would be a good idea to take it overboard and design a new case for it. The stock case has a really clean and minimalistic look that fits in well on a modern desk, but I’d like it to be a bit more eye-catching.

So let’s open up Inkscape and get to work on a design for a new case.

I want to stand the computer upright, more like a traditional PC and I want to add clear acrylic side panels so that the internals are visible. A bonus is that both sides of the computer are interesting to look at, so I can add clear panels onto both sides of the case.

Design of new case in Inkscape

Take a look at my video on how to design your own Pi cases in Inkscape.

My idea was to build the body of the case out of dark-tinted acrylic so that it is still partially translucent and then add the clear panels on the sides to highlight the internals.

I also plan to add some LED strip lights to the inside to illuminate the components.

Now that we’ve got a design, let’s cut the parts out on my laser cutter.

Laser Cutting The New Case
Laser Cut Case Components

I’m going to use some nylon standoffs to mount the computer between the side panels and I’ll then measure and make up the filler pieces and port cover plate.

Nylon Standoffs

I realised that I didn’t make a cutout for the fan on the one clear side, so I had to revisit the design to add it afterward.

No Ventilation Hole In Side of Mini PC

I then measured up and cut the filler pieces.

Cutting Ports on Front Panel

The sides are just glued into place along one edge using acrylic adhesive. I usually use a Fast Set Acrylic Adhesive.

Fast Set Acrylic Adhesive

Now let’s add some LEDs to the inside of the case to light up the internals. I cut the LED strip into two sections of 6 LEDs each and glued the strips into place around the edge of the case. I had to solder a short jumper between the strips on each side of the case.

LED Light Strip For Gaming PC

And that’s the case complete. Let’s turn it on and see what it looks like.

Using The SER 3 Mini Ryzen 7 Gaming PC

SER 3 Mini Ryzen 7 Gaming PC

So now we’ve got a mini Ryzen 7 gaming PC. Obviously not having a standalone graphics card has its performance limitations, but it works well for light gaming and in a tiny package, so it’s great for taking along when you’re traveling.

Playing Games on SER 3 Mini Ryzen 7 Gaming PC

Beelink have also recently released their Ryzen 9 version of these mini PCs, called the GTR 5, I’d definitely recommend having a look at it if you’re interested in a more powerful mini PC – particularly if you’d like to use it for gaming. They’ve currently got an Indiegogo campaign running for them and they expect to start shipping them out this December.

Beelink GTR 5 PC Specifications

Let me know what you think of the case design in the comments section below. Do you prefer the original modern metal enclosure or the acrylic gaming style case?

Beelink SER3 Into Gaming PC

Add an OLED Stats Display to Raspberry Pi OS Bullseye

Raspberry Pi OS Bullseye has recently been released and with it comes a number of improvements, but most of them are under the hood. There aren’t that many visual differences, the most noticeable is probably the new default desktop background which is now a sunset over a dam or lake.

Raspberry Pi OS Bullseye

With this operating system upgrade, we’ve also got the usual bugs and software incompatibilities. These have caused my previous OLED stats display tutorial, that I used for my Raspberry Pi Desktop Case, to no longer work correctly. If you follow the previous tutorial, you’ll be presented with a host of errors.

Errors Running I2C OLED Stats Display

So in this tutorial, I’ll take you through the installation and setup process to get the same 128×64 I2C OLED display running on Raspberry Pi OS Bullseye.

Here’s the video tutorial, read on for the written steps and commands.

What You Need For This Tutorial

Connecting Your OLED Stats Display To Your Raspberry Pi

To start out, we’re going to go through the same process to connect the OLED stats display to our Raspberry Pi. To do this, you’ll need a 4 wire female to female jumper cable. The colours don’t matter, they’re just there to help you keep track of which wire goes to which terminal.

4 Wire Connector Cable and I2C OLED Display

The OLED display’s terminals are labelled on the front, which seems to confuse a lot of people since the pins extend out the back of the display.

128x64 I2C OLED Display Pinout

This is especially difficult to spot once the display has been installed into the case and the front area of the display is no longer visible. So make sure that you jot them down before installing the display into a case or holder.

Pin Labels Hidden By Case

The pin arrangement is most commonly GND, VCC, SCL and SDA. Don’t just copy this arrangement, make sure you check your own display as there are versions of these displays with the VCC and GND pins switched around. If you connect power to them incorrectly they’ll most likely be damaged and will no longer work, even if you correct the wiring afterwards.

Different VCC and GND Pinout On Display

Plug your ribbon cable into these four pins and then take note of which colour you’ve got connected to which pin. If you’re installing the display into your case before connecting it to your Raspberry Pi then it’s a good idea to write down which colour is connected to which pin so that you don’t forget.

Plug in the Ribbon Cable

Next we can plug the other ends of the jumpers into the Raspberry Pi’s GPIO pins. The Pi’s GPIO pinout diagram can be found quite easily online and is available from the official website.

Raspberry Pi 4 Pinout
Source: RaspberryPi.org

Make sure that your Pi is off and the power is disconnected before plugging or unplugging jumpers from the GPIO pins. You don’t want to short a connection or plug a lead into the incorrect pin by mistake and not have a chance to check your connections before powering it up.

Raspberry Pi GPIO Pins

You’ve got a few options for the GND and VCC jumpers. I usually plug the GND jumper into Pin 9 (you can use any pin labelled GND). And I plug the VCC jumper into Pin 1, which is a 3.3V power pin. These displays can operate on 3.3V or 5V inputs, so any power pins on the Pi’s GPIO header will work.

VCC and GND Connections To Raspberry Pi

Next, we need to connect the communication jumpers SCL and SDA, which just get plugged into the corresponding GPIO pins. Plug SCL into Pin 5 and SDA into Pin 3. Don’t get confused between the GPIO numbers and the Pin numbers, ignore the GPIO numbers on the diagram and just go by the SDA and SCL labels and the corresponding pin numbers.

SDA and SCL Connections To Raspberry Pi

Check all of your connections again and you’re then ready to power your Pi up and get started with programming the display.

Completed I2C OLED Display Connections

Programming The OLED Stats Display

Now that we’ve got the display connected, we can look at programming our Raspberry Pi to display the performance stats. I’m going to be doing this on a fresh install of Raspberry Pi OS Bullseye by using the Raspberry Pi Imager utility to flash the operating system image to a new microSD card.

Put the SD card into your Pi’s SD card slot and plug in your power adaptor. Once you’ve booted up your Pi, you should be on the Raspberry Pi OS desktop. It’s possible to do this installation on a headless Pi as well using the same steps.

Raspberry Pi OS Bullseye

Update Your Pi and Install The CircuitPython Library

Open up a new terminal window and start by making sure that your Pi’s software is all up to date by running the following commands:

sudo apt-get update
sudo apt-get full-upgrade
sudo reboot
sudo apt-get install python3-pip
sudo pip3 install --upgrade setuptools
Updating The Raspberry Pi

Next, we’re going to install the Adafruit CircuitPython library using the following commands:

cd ~
sudo pip3 install --upgrade adafruit-python-shell
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py
sudo python3 raspi-blinka.py

Hit yes to any prompts which may come up and yes (Y) to reboot at the end.

Installing The Adafruit Circuit Python Libraries

Check That Your Display Can Be Seen

This previous installation script should also have enabled I2C communication, which is needed to communicate with the display. You can check that it is enabled and your Pi is able to see the connected display by entering the following command:

sudo i2cdetect -y 1

You should then see a table, similar to the one shown below, which has a single set of characters in it (typically 3c for these displays). This code indicates the I2C address of your display.

Checking The I2C Display Address

If it hasn’t shown up then either I2C communication isn’t turned on, which can be done through the configuration utility, or your wiring is not correct. If you get a table full of characters (all addresses shown) then you’ve probably made a wiring mistake as this happens if SDA is shorted to ground. Go back and re-check your connections to your Pi and display and re-check that you’ve got I2C communication enabled after a reboot.

To enable I2C communication, use the configuration utility by entering:

sudo raspi-config

Don’t proceed with trying to get the script to work if you don’t get the correct response in this step. If your Raspberry Pi isn’t able to see the display that is connected to it then it won’t be able to communicate with it to get anything displayed.

Install The OLED Stats Display Script

Next, we need to install the CircuitPython libraries specific to the display. Start by entering the following commands:

sudo pip3 install adafruit-circuitpython-ssd1306
sudo apt-get install python3-pil

Now we just need to download the actual script. Rather than trying to edit it on the Pi, I’ve made it available on Github in its completed form, so you just need to run the following line to copy it to your Pi:

git clone https://github.com/mklements/OLED_Stats.git
Installing The Stats Display Script

Navigate to the new cloned directly by entering:

cd OLED_Stats

Then run the script by entering:

python3 stats.py
I2C OLED Stats Display Running

Automating The Script To Run On Start-up

Now we’ve got the display running, but it’ll stop as soon as we close the terminal window and we’d like it to run automatically on startup. We’re going to do this using crontab.

Open up crontab by entering the following command:

crontab –e

If this is the first time you’re opening crontab then you’ll be prompted to select an editor, select 1 and hit enter.

Add the following line to the end of the file to run the script:

@reboot python3 /home/pi/stats.py &

Don’t forget the “&” at the end to tell the Pi to continue starting up and to run the script in the background.

Adding The Script To Crontab For Automatic Startup

We’ll also need to copy the stats.py script and font into the home directory. You can also just reference the correct path in the previous step, but I find that this is less reliable.

Make sure that you copy both the stats.py script and the PixelOperator font into the /home/pi directory.

cd OLED_Stats
cp PixelOperator.ttf ~/PixelOperator.ttf
cp stats.py ~/stats.py
cp fontawesome-webfont.ttf ~/fontawesome-webfont.ttf
Copy The Script To The Home Directory

If you do leave them in the downloaded directory, you’ll need to amend the crontab command to read:

@reboot cd /home/pi/OLED_Stats && python3 stats.py &

Save the crontab file when you exit and then try rebooting your Pi to see if it is working correctly.

If you’ve followed the process correctly, you should now have a working OLED stats display that starts up automatically each time your Pi boots up. You can now go ahead and install it into your case if you haven’t done so already.

I2C Stats Display Running On Raspberry Pi OS Bullseye

Finish Off Your Pi Desktop Case Build

If you’re using an Ice Tower with your OLED stats display, plug the fan’s power cables into the 5V and GND GPIO pins next to the display’s connections as I’ve done.

Connecting The Ice Tower Fan To The GPIO Pins

Close up your case and your Raspberry Pi Desktop Case build is now complete.

Let me know how you find this tutorial in the comments section below. I’d love to hear your feedback and suggestions.

Stats Displays Running One Raspberry Pis

ClonerAlliance UHD Pro Video Capture Box Unboxing & Review

Today, we’re going to be taking a look at the ClonerAlliance UHD Pro video capture box which was sent to me by the team at ClonerAlliance to review and share with you.

I often get asked on my Raspberry Pi tutorial videos why I’ve used the full desktop version of Raspberry Pi OS when the project is intended to be run without a monitor or external display connected once it has been set up. There’s actually quite a simple answer. I use a screen recording utility, typically SimpleScreenRecorder, running in the background to capture the screen contents for the tutorial.

Simple Screen Recorder Raspberry Pi

Although it looks a bit odd to immediately open up a terminal window and do the whole setup from there, it works pretty well for a tutorial because you can then follow along in either version of the operating system.

It does however have one pretty significant drawback, and that is that it uses a bit of the Pi’s processing power in the background to capture the screen contents. It also slows down the read and write speed to the SD card or SSD in the process as the Pi is continually writing to it.

SSD Case CPU Usage

This goes unnoticed for general command line inputs, but if you’re running any speed tests or benchmarks then they land up being affected by the screen recording, which Is obviously not ideal.

Screen Recording Affects Benchmarks

Another issue is that I can only start recording once the desktop is reached, so I can’t include any initial setup or boot-up footage or prompts and I can’t record the screen contents of builds that do not have a traditional desktop interface.

So when ClonerAlliance asked me if I’d be interested in reviewing their new UHD Pro video capture box, it definitely caught my attention.

Have a look at my unboxing and review video, otherwise, read on for the write-up.

I’ve also tried using a video capture card in the past, but these become messy because you need a second computer to record the video output and there is usually a significant amount of latency involved. This means that the inputs made on the Pi only show up on the video output on the secondary computer’s monitor after a second or two, which makes it almost impossible to work with.

ClonerAlliance UHD Pro Functions

The ClonerAlliance UHD Pro addresses all of these issues in the form of a standalone device that sits between the video source and the monitor and allows you to capture 4K video with very low latency directly to a USB attached drive. So it’s ideal for gamers on consoles, and even computers, as you don’t have to try to run any capture software in the background. Your computer’s processor and graphics card are fully dedicated to the game you’re playing.

The CLonerAlliance UHD Pro also has provision for audio and microphone inputs and has a USB interface for live streaming.

With all that said, let’s get it unboxed and have a look at how it works.

Unboxing The ClonerAlliance UHD Pro

The ClonerAlliance UHD Pro comes in a box that is similar in size to an iPad’s.

ClonerAlliance UHD Pro Unboxing

The device is in a protective sleeve within a cardboard insert that divides the box into three sections, the other two of which contain the cables and accessories.

ClonerAlliance UHD Pro Unboxing - Inside

Included in the box you’ve got the Cloner Alliance UHD Pro capture box;

ClonerAlliance UHD Pro Recorder

A remote control, which is pretty basic, but has all of the functions you’ll need including arrows and buttons for navigating through menus, a set of buttons to control video capture and playback and some audio controls;

Remote Control

You’ve also got an HDMI and micro-USB cable. You’ll need two HDMI cables to use the box as a passthrough device, so they’re relying on you having the first as part of your current setup;

HDMI and MicroUSB Cable

A 5V, 2A power adapter, which is customised to suite your country of order’s outlets (it looks like US, UK, EU and AU options are available). I’m not sure why they didn’t just make this a USB C power adaptor given that it’s running at 5V anyway, that would make it a lot easier to power as part of a mobile setup.

Power Supply

And a quick start guide. The quick start guide is a summary of the basic setup and operating instructions. It’s pretty well written, is in full colour and has images to support the text.

Quickstart Guide

The ClonerAlliance UHD Pro Ports & Interfaces

Taking a closer look at the capture box, on the front you’ve got 3.5mm audio ports for line in, line out and a microphone input as well as three buttons, one for the compression mode, one to capture still frames and the last to start and stop recording.

There is also a tinted window in the middle for the IR receiver for the remote control.

UHD Pro Front

On the right side, we’ve got a USB type-A port to plug in a storage device and a micro-USB port to plug into a computer if you’d like to capture video directly to your computer or use the box for live streaming.

They don’t really mention anywhere what speeds are required for the external drive, they just say that it should be a high-speed drive. I’d imagine that you would want to use a USB 3.0 flash drive or SSD if you’re recording 4K video, you’ll likely run into bandwidth issues on USB 2.0 drives.

UHD Pro Side

On the back, you’ve got your full-size HDMI in and out ports as well as the power supply input and a power button.

UHD Pro Back

The bottom of the case is raised with large rubber feet and is vented to provide some cooling.

UHD Pro Bottom

Setting Up The ClonerAlliance UHD Pro

Setup is really straightforward, you just need to plug a fast storage device into the USB port on the side. As mentioned earlier, you’ll probably need to use a USB 3.0 flash drive or SSD for 4K recording.

Plug Drive Into Side of ClonerAlliance UHD Pro

Then hook up your source and monitor to the HDMI ports and plug in your power supply.

Connect Up Ports and Power

When you switch it on, you’ll notice a green or blue LED band around the rim which is used to indicate the compression mode being used – blue for H.264 and green for H.265. This can be changed using the leftmost button on the front or from the remote control.

It’s a nice addition to support H.265 video compression. This more modern compression standard dramatically reduces the file size of the video files without any reduction in quality, which is particularly useful when you’re recording 4K video or when you’re streaming on a subscription plan where your data usage matters.

LED Band For Recording

The Cloner logo on the top also lights up in green or blue to indicate 1080P or 4K output and recording resolutions respectively. It also flashes between green and blue when there is no input or the input is unsupported.

LED Logo For Resolution

Once your computer, console or set-top box is running, your display will look exactly the same as it does without the UHD Pro. You’ll now be able to hit record on the remote control and a side panel will show up temporarily, to display the recording settings, and the contents of your screen are then being recorded. This is indicated by a small red “REC” icon on the top left, which can be turned off if you’d like.

Overlay While Recording

You can also access a range of overlaid settings menus with the remote control. These settings allow you to make changes to the recording output, set the system date and time, modify the display settings (like the “REC” icon) etc..

This is also where you can schedule recordings so that you don’t miss any live TV or sporting events. If you leave your ClonerAlliance UHD Pro connected, you can set it to start recording automatically on a particular date and time.

Settings Menus

Test Footage From The ClonerAlliance UHD Pro

I tested the ClonerAlliance UHD Pro on a number of devices, including obviously one of my Raspberry Pis, my Apple TV and Xbox and it worked really well with each of them.

Recording Options

The capture box also records any sound being provided over HDMI as well.

Video capture from the Apple TV and Xbox worked immediately. I had to change the display output settings through raspi-config on the Raspberry Pi to get the input to be seen by the ClonerAlliance UHD Pro, but it then worked without any further issues.

I’m not really sure what the issue was, the output resolutions are all listed as compatible with the Cloner Alliance UHD Pro, so it seemed to be an issue with the encoding, although this only seems to affect some output resolutions on the Pi and not others.

Screen Recording Affects Benchmarks

There is one limitation to its 4K recording ability and that is that it can only record 4K video at 30 frames per second. It’ll allow inputs of 4K 60 frames per second and it supports passthrough of the full 4K 60 fps, so it won’t interfere with your framerate for gaming, but it will only capture up to 30 fps in 4K. Alternately you can also configure it to record at 60 fps, but at a reduced 1080p resolution.

Recording Gameplay

Because it just requires an HDMI input, it also works on older platforms. So the ClonerAlliance UHD Pro video capture box is also ideal for capturing retro games, as well as for creating digital copies of old VHS tapes or DVDs. If your media player has an HDMI output and can be seen by your TV then it’ll likely work with the recorder box.

Recording Old Style Games

When you’re done recording, you can also playback your footage directly from the device. So you don’t have to wait to get it onto a computer first.

This interface could be a bit more user friendly, but it has all of the information you need and it is relatively easy to find the video that you’re looking for.

Video Playback Directly From ClonerAlliance UHD Pro

Final Thoughts

The ClonerAlliance UHD Pro is a powerful and compact standalone video recorder that is particularly useful for gamers on consoles and PC’s that don’t want to have to run screen recording utilities in the background. Its’ simple and easy-to-use interface makes it a breeze to get set up and running and I’ve been impressed with the quality of the screen recordings that I’ve taken over the past week.

If I had to nitpick, I’d say that it would have been more functional to replace the barrel jack power supply with a USB C power supply so that it could be used as part of a mobile setup and I would have liked to see an SD or microSD card slot for the footage to be saved to in addition to the USB drive.

I’m definitely looking forward to using it on my upcoming tutorials and project videos!

Let me know what you think of the ClonerAlliance UHD Pro in the comments section below.

ClonerAlliance UHD Pro 4K Video Recorder

3D Printed IoT Weather Station Dashboard

This is my dashboard for my 3D Printed IoT Weather Station project, you can build your own by following my build guide.

You can also view the data on my public Thingspeak Channel.

Temperature

Humidity

Barometric Pressure

Wind Speed

Light Level

I Upgraded My 3D Printed Weather Station Using Your Suggestions

Today we’re going to be making some upgrades to my previously built IoT weather station using suggestions that you guys made in the comments section. We’ll see how well the weather station performs after the upgrades and I’ve included a link to the public Thingspeak channel, so you can have a look at the most recently recorded data.

Here’s my video of the upgrades I’ve made, read on for the written guide:

Upgrade Components Needed

In addition to the components that we’re going to re-use from the last project, you’ll need the following:

I also use the following tools and equipment in this build:

What Hardware Are We Going To Be Replacing?

Let’s start off by taking a look at what hardware we’re going to be replacing within the original weather station.

3D Printed Weather Station Internals

The original build used a DHT11 temperature and humidity sensor. Quite a few people mentioned that this sensor isn’t particularly accurate and is quite slow.

DHT11 Temperature and Humidity Sensor

Most suggested replacing it with a BME280 sensor, so that’s what we’re going to do. This sensor measures temperature, humidity and pressure, so I can also remove the separate pressure sensor from my original build. I’ll leave the light sensor at the top in place.

BME280 Temperature, Pressure and Humidity Sensor

The next change that was suggested was again made by a number of people, and that was to replace the reed switch on the anemometer, or wind speed sensor, with a Hall Effect sensor. The reed switch, being a mechanical device, has a limited number of operating cycles before it wears out. Given that it could be switching up to 150,000 times a day, it probably won’t take too long to wear out either.

Anemometer Reed Switch

I haven’t used a Hall Effect sensor on a project before, and there are quite a few different options available, so the one I choose was an Allegro A3213. This sensor is polarity independent and has a latched digital output, so it’s quite a good fit as a replacement for a reed switch.

Allegro A3213 Hall Effect Sensor

The final hardware change that I’m going to make is to replace the original 1850 lithium-ion cell with a higher capacity 3000mAh lithium polymer cell. This cell will give the station about 30-50% more energy storage capacity, so it’ll be able to run longer between charges. It also has built-in overcharge and over-discharge protection.

Replace 18650 Cell With 3000mAh Lipo

While we’re on the topic of powering the weather station, I’m going to be adding a solar panel and solar power management board nearby to re-charge the battery. This isn’t a modification to the actual weather station as such but is another useful addition.

5V Solar Panel To Charge Station

Replacing The Weather Station’s Sensors & Battery

I’m going to install the BME280 module with the sensor facing towards the stand. This allows me to re-use the original sensor’s mounting holes and I won’t have to modify the sensor pints. This also shields it from any direct sunlight that manages to get into the housing and gives it a bit more protection from moisture. The sensor is still spaced slightly away from the stand, so there aren’t any pockets of air trapped around it.

Mounting BME280 Sensor

Replacing the reed switch with the Hall Effect sensor is a bit more involved. I have to first remove the reed switch, which I moulded in place with resin because I didn’t intend to ever remove it. I also didn’t want to have to print a whole new housing just for the new sensor.

After a couple of failed attempts, a drill eventually worked to crack the switch’s glass tube and I could then pull out all of the pieces. I also cracked the top of the housing in the process, but fortunately, resin prints repair quite well with additional resin, so that’ll be an easy fix.

Removing The Reed Switch

I soldered some wiring to the sensor before installing it in the housing so that I can again pour some resin around it to hold it in place and seal off the top of the sensor housing. It’s important to make a note of the wire colours connected to each leg of the sensor as you’ll need this when connecting them to your Firebeetle board.

Soldering Wiring To The Hall Effect Sensor

I bent the legs of the Hall Effect sensor at 90 degrees about 3mm from the sensor so that they could be directed through the hole in the housing and the face of the sensor would then be facing towards the bottom of the anemometer.

I shouldn’t need to do anything with the magnets in the anemometer, if they worked for the reed switch then they should easily work with the Hall Effect sensor as well, as they’re typically a bit more sensitive.

Hall Effect Sensor In Place

I then filled the void and area around the sensor with some resin to hold it in place. I then left this outside in the sun for a few hours to cure before lighting sanding it with my Dremel for an even finish.

Hall Effect Sensor Moulded Into Place

Now that the sensors are in place, we can make up a new wiring harness to connect them to the Firebeetle board. I also made some changes to the wiring to power the sensors. Rather than connect them directly to power and have the sensors stay on the whole time, a suggestion was made to turn the sensors on and off using the IO pins, as they don’t draw much current.

So I’ve got the BME280 sensor’s power pin (VIN) connected to digital pin 16 and the light and Hall Effect sensor’s power pins connected to digital pin 17. This means I can now turn the sensors on only when measurements are taken, so this should further extend the battery life.

The other connections remain as per the original design. The BME280 sensor is connected to the I2C pins, the light sensor to pin 36 and the Hall Effect sensor to pin 0 on the Firebeetle board.

New Wiring Harness For Firebeetle Board

Improvements Made To The Code

Now that we’ve got the sensors connected up to the board, we obviously need to make some changes to the code so that they can be used.

Here is my revised version of the code:

The first and probably most significant is a look-up table for the wind speed. Ian Finnimore had a number of ideas to improve this part of the code, pointing out that the relationship between the wind speed and the rotation time is not linear. He also included a formula to use as a starting point. I used this along with some measured data to eventually calibrate the sensor, and the code now uses this lookup table to find the actual wind speed based on the rotation time. This also allows calibration adjustments to be made to select individual speeds or the complete range.

Wind Speed Calibration Map

I also reduced the cycle time to about 8 seconds, as this is all that is needed by the wind speed sensors. Even at the lowest measurable wind speed, the anemometer would rotate at least three times during this period, which is enough for the calculation.

Next I made the changes to the digital pins to turn the sensor on and off as they’re needed, rather than staying on all of the time. This just involved setting each sensor’s digital pin high a little before taking the reading from them and then turning them off again.

Lastly, I moved the WiFi connection right to the end of the cycle so that the WiFi connection isn’t active for the full cycle time, which saves power. I also added a timeout to the WiFi connection attempt routine. In my previous code, the board would stay on and keep attempting to connect to the WiFi network even if it was temporarily unavailable or there was an error. Getting stuck in this loop obviously dramatically drained the battery and resulted in the station dying in a day or two if it occurred. It’ll now try for only 10 seconds and if there is no connection available it’ll timeout and go to sleep anyway.

Testing The Weather Station’s New Power Consumption

We’ve made a few improvements to the hardware and software, which should result in lower power consumption, especially during the sleep period, so let’s test it.

I connected my multimeter to the supply and turned the board on.

The current draw spikes to a little over 100mA when starting up and then quickly settles around 45-55mA while it is taking readings, which is for the majority of the “on” period.

Current Draw When Running

The most significant improvement was during the sleep period. It now goes down to just 0.01mA or 11µA, which is a large improvement over the last version. This is using almost 100 times less power during sleep mode than the previous version.

Note that the multimeter below is now in µA rather than mA shown above. So this is 11.3 thousandths of a mA.

Current Draw During Sleep Mode

So if we calculate the expected battery life using a 10 minutes cycle time, with 10 seconds of “on” time and 590 seconds of “sleep” time in each cycle, and an average draw of 60mA while on, with the new battery we should get a little under 3000 hours or 124 days of run time. So that’s around four months off a single charge, which is also a great improvement.

Run Time Calculation

Mounting And Adding Solar Power

I previously mounted the weather station directly onto a flat surface using the three feet on the base. This time, I want to rather mount it onto a pole so that there are no flat surfaces around it to affect the wind speed and I want to add a solar panel mount onto the same pole.

So I designed and 3D printed a bracket to mount the weather station onto a 25mm pole, which is easy to then mount onto a railing or fence post.

Now I know that improving the battery life means that it hardly ever needs to be charged, but to make it a truly plug-in and forget weather station, I wanted to add a solar panel so that the battery is kept charged without me having to remember to charge it.

I’m using this 5V panel which I have from a previous project. It claims to be a 1A panel, but that seems a bit optimistic for its size. In any case, it’s way more than what we need to replace the 25 or so milliamp hours used each day. It’ll work well to provide some additional capacity for longer periods of overcast days and allow for a drop in efficiency over time.

5V Solar Panel To Charge Station

I’m going to use a DF Robot solar power management board to control the charging of the battery. This board basically takes the power provided by the solar panel and uses it to charge the battery and provide a regulated supply to the Firebeetle board.

DF Robot Solar Charge Controller

I’ve also made a 3D printed bracket and housing to hold the panel and the solar power management board and these will be installed on the same pole underneath the weather station.

The bracket for the solar panel and the holder for the solar power management board are glued onto the solar panel using some epoxy. I used four nylon standoffs to hold the board in place and provide supports for the cover.

Glued Into Place On Holder

The cover can then be held in place using four screws that came with the solar power management board.

Solar Power Management Cover

I drilled an 8mm hole in the bottom of the weather station base to run the wiring to the battery and to the Firebeetle board. Be careful drilling through resin prints as they’re quite brittle. It doesn’t take much force to crack them entirely (like I did with the sensor housing).

Drill Hole In Bottom Of Weather Station Housing

The solar panel bracket is then mounted onto the pole and the weather station is mounted onto the 3D printed bracket on the end of the pole. An M3 screw and nut are used to hold each in place, the nut sits on the inside of each bracket and helps press the screw against the pole to secure them. The wiring is fed through the base and then plugged into the battery and the Firebeetle board.

Assembled Components On Pole

Using The Modified Weather Station

I mounted the weather station’s pole outside and it has been running for about three weeks at the time of writing this post.

This is a sample of the temperature graph, you can view my full weather station dashboard here, or visit my public Thingspeak channel.

Since the weather station’s power consumption has gone down quite substantially, I’ve been thinking of trying to power it using some sort of supercapacitor arrangement rather than a battery.

Let me know if you’ve done this or if you’ve got any suggestions for this in the comments section.

Raspberry Pi 4 SSD Case With Stats Display

In this project, we’re going to be taking my previous Raspberry Pi Desktop Case design and adapting it to accommodate an SSD underneath the Pi.

The case uses the same Raspberry Pi and Ice Tower combination that I used on the last version, but this time I’m going to add a Geekworm mSata SSD shield and a 128gb SSD. I’ve chosen an mSata shield and drive as these are typically quite a bit cheaper than NVME drives, and you don’t get that much benefit from using an NVME drive as you’re limited by the maximum speed of the USB 3 port in any case. You only really benefit from an NVME drive if it is connected through a PCIe port.

This case design is also compatible with the Geekworm M.2 NGFF SSD shield.

You can buy a premade kit to assemble your own Pi SSD Case from my Etsy store.

Watch my video of the build below or read on for the full project details:

What You Need For This Project

or

Equipment Used

Components Required

Preparing Your Components

I’m using an 8GB Raspberry Pi 4B, but you can use the 2GB or 4GB version as well as they’re identical in their layout. Unfortunately, this case won’t be compatible with the Pi 3 or 3b+ as their port layouts are different to the Pi 4.

Raspberry Pi 4B 8GB

I’m designing this case around the Geekworm mSATA SSD shield. This is version 2 of this shield, so it is powered directly through the USB port and is slightly lower profile than the earlier versions. It supports UASP and up to a 2TB mSATA SSD.

Geekworm mSATA SSD Shield

Cooling will be provided by an Ice Tower, which is a large heatsink that sits on top of the CPU. We’re going to move the fan off of this heat sink and onto the side of the case. It’ll be positioned so that it pulls air in from outside the case and blows it across the heat sink and out vents on the opposite side.

Ice Tower Cooling Fan

Assembling The Pi & SSD Stack

Let’s start off by assembling the Pi stack so that we can take measurements from it so that we know what we need to modify on the case.

First, we need to mount the legs onto our Ice Tower. These are just installed as per the instructions supplied with the Ice Tower and screw in underneath the heat sink.

Legs Installed on Ice Tower

Next, let’s remove the fan from the Ice Tower so that we can mount it on the side of our case later on. Set the screws aside as well as we’re going to re-use them.

Fan Removed From Ice Tower

The Ice Tower and the SSD shield both come with some screws and standoffs to mount them onto the Raspberry Pi.

For this case, we’re going to use the 4 female-to-female standoffs and 4 black screws from the SSD shield, leaving the longer screws and male-to-female standoffs unused. We’re also going to use 8 brass standoffs from the Ice Tower and four silver screws to secure it. We won’t be using the four nuts or the spare screw and standoff.

Although the male-to-female brass standoffs that come with the SSD shield might look similar to the Ice Tower ones, they’re actually a bit longer, so don’t muddle them up.

Screws Required For The Build

Screw the female-to-female standoffs to the SSD shield using a male-to-female standoff on the opposite side. The female-to-female standoffs go on the USB port side of the shield.

Standoffs Installed On Shield

The Pi is then held on top of the standoffs with the second set of standoffs from the Ice Tower.

We can then add the Ice Tower to the Pi, remembering to first add the thermal pad on top of the CPU. The four silver screws hold the Ice Tower in place.

Our stack is now complete and ready to install in our case, so let’s modify the case design.

Ice Tower Installed On Pi

Designing and 3D Printing The Pi SSD Case

Now that we know what we’re going to be mounting in the case, we can start modifying the previous design to fit the SSD shield in underneath the Pi.

I took some measurements from the stack and adapted the design by moving the ports higher up on the front, slotting the middle USB port cutout to accommodate the jumper, and modifying the holes in the base to allow the screws to screw into the brass standoffs from underneath.

Case Design Modifications Complete

If you’d like to 3D print your own case, you can download a copy of the 3D print files, including a version with the ports on the back of the case, from the following link.

With the case design done, let’s print it out in Black PLA with a 15% infill. We’ll need to print it on its side and add some supports to the front for the ports.

3D Printing The Case

We then need to clean up the case and remove the supports before putting our Pi into it. Also, remember to remove the supports from the bottom holes in the case if you added them there as well.

Removing The 3D Print Supports

Installing The Stats Display

Last time, I put the Pi in before the display, but it’s actually a lot easier to put the display in first so that you’ve still got space to screw the bracket’s retaining screw in.

I’m using a small I2C oled display that is perfect to be driven straight from the GPIO pins. Make a note of your pin labels on the front of the pins before installing the display as they’ll be hidden once it is in place.

Installing The OLED Display

There are also two different versions of these displays online, and they have the VCC and GND pins swapped around, so don’t just copy my wiring because you might damage your display. They don’t have reverse polarity protection.

OLED Display Differences

Slide the top edge of the display in underneath the top clips in the case and use the 3D printed bracket and black M3x8mm screw to hold it in place. Don’t screw it down too tightly or you might crack the display. This bracket just needs to gently hold it in place.

OLED Display Installed

Push the ribbon cable connectors onto the pins on the back of the display. It doesn’t matter which colour goes onto which pin, just make a note of which way around yours are connected for now.

Ribbon Cable Connected To Display

Installing The Raspberry Pi Stack Into Our SSD Case

Before putting our Pi stack into the case, we need to install the SSD. I’m using a 128GB drive as this is just a secondary computer for me. You can use up to a 2TB drive if you’re going to be using yours as a NAS or media centre.

Installing The SSD

You’ll also want to configure your Pi to boot from the SSD and flash the operating system image to your SSD before putting it into your case, as you can’t get to the SD card to remove it after the Pi is installed. The Pi also often isn’t able to supply enough power to power two SSDs simultaneously. So if you intend on copying the operating system image from another SSD, you’ll need to use a powered hub or self-powered drive.

Put the Pi stack into the case and secure it with the small black screws which go through the holes in the base and into the brass standoffs.

Securing The Pi Within The Case

Making Up The Acrylic Side Panels

Now we just need to close up the sides of the case with our acrylic side panels. I’m going to laser cut these from some 2mm clear acrylic. If you don’t have access to a laser cutter, you can either buy them as part of my kit or cut your own by hand using a fine-tooth saw to cut the profile and an electric drill to make the screw and vent holes.

Laser Cutting The Side Panels

The template and laser cutting file for these side panels is available in the same download as the 3D print files for the case. I’ve also included a 3D printable version of the panels. They won’t be clear if they’re 3D printed but give you another option if you can’t get the side panels made up.

Laser Cut Side Panels

To mount the fan onto the side panels, we need to push four M3 nuts into the pockets on the fan. These enable us to use the existing screws that come with the Ice Tower to hold the fan in place.

This is easiest done by putting the nuts down on a flat surface and gently pressing the fan pocket down onto each one.

Adding M3 Nuts To Fan Pockets

The nuts sit on the acrylic side of the fan, so the fan is held using the press-fit on the nuts, the screws don’t go all the way through the fan.

Securing Fan To Side Panel

The side panels are then each held in place with four M3x8mm button head screws, one in each corner. Don’t overtighten these screws as it is very easy to strip the 3D printed plastic and they’ll then be a bit loose.

Before putting the opposite side panel on, you’ll need to connect your display and fan to the GPIO pins. I connected my display to power and the I2C pins and the fan to 5Vs. If you need help with this and programming the display, follow my guide on connecting and programming the OLED stats display.

Connecting Display and Fan To GPIO Pins

We can now close up the second side with the next four M3x8mm screws.

Lastly, let’s plug our USB jumper into the shield and Pi. I 3D printed a small cap to cover the jumper and make it blend in with the case a bit better.

Pi SSD Case Complete

The Completed Pi SSD Case

Our Pi SSD Case is now complete, so let’s turn it on and try it out. Mine will work right away as I’ve cloned my SD card from the previous project which already has the stats display programmed to run on startup using crontab.

Pi SSD Desktop Case Complete

The display shows your local IP address, which is useful for network-related projects, as well as the CPU load, CPU temperature, memory and disk usage. The python script is fully customisable, so you can add or remove stats as you’d like and even integrate stats from other utilities like Pi-hole or Openmediavault.

Stats Display Running On Pi

Let me know what you think of the case in the comments section below. Are you going to try to build your own?

Pi Desktop Case With SSD
Fan Side of Pi Desktop SSD Case
Vent Side Of Pi SSD Desktop Case