Raspberry Pi 5: Replace microSD with NVMe SSD and migrate system cleanly

I have moved my Raspberry Pi system from a microSD card to an NVMe SSD. Specifically, a 512 GB NVMe is now being used via a PCIe HAT. The aim was to make the system more robust, faster and more stable in the long term.

microSD cards are sufficient for many Raspberry Pi projects, but quickly reach their limits when used continuously with many write accesses. In my case, I run indi-allsky, image storage, database access and regular uploads, among other things. An NVMe SSD is simply the better choice for this: higher performance, significantly longer service life and less risk of file system problems.

In the following, I describe step by step how I migrated the existing system from the microSD to the NVMe during operation.

indi-allsky Watchdog: Automatic reboot in case of camera problems with systemd and Bash

Bitchy USB cameras like the ZWO ASI678MC, cheaply made cables, temperature fluctuations: Raspberry Pi-based all-sky cameras are technically demanding. Even stable setups with indi-allsky can get into a state where no more new images are generated – without the process itself crashing.

This article shows a robust, tried-and-tested watchdog solution that works independently of indi-allsky internals:
An external watchdog monitors the actual image production (JPGs) and automatically restarts indi-allsky as soon as the data flow stalls. Optionally including e-mail notification.

Raspberry Pi as a digital picture frame in kiosk mode – hardware, setup & troubleshooting

External displayI had the crazy idea of building a digital picture frame to display the latest photo from my Allsky camera. The main trigger was the realization that indi-allsky with Redirect Views makes it really easy to always display the latest picture. And the second realization: touch displays aren’t even that expensive.

In this article, I document a tried-and-tested setup with Raspberry Pi 4, HDMI touch display and Chromium in real kiosk mode – including typical pitfalls and their solutions.

Hardware setup

The following components were used for the setup:

  • Raspberry Pi 4 (2-8 GB RAM)
  • HDMI touch display (10.1 inch, 1280×800) – available e.g. from a large Chinese online retailer – detailed information here
  • MicroSD card (min. 32 GB)
  • Separate power supply for Raspberry Pi and display
  • USB touch cable + HDMI cable

Contrary to the manufacturer’s instructions, I use neither a Y-cable nor a loop-through solution for the power supply of Pi and display, but a dual-port power supply (USB-C for the Pi, USB-A/micro-USB for the display).

This is how I stabilized the power supply of my Allsky camera – clean cabling and a proper buffer

Wiring plan allsky en
Klick for large image!

An Allsky camera is a typical “keeps running” project – until it suddenly stops doing so. In my case, it wasn’t a single defect, but a combination of long cables, voltage drops and small faults that only became noticeable after weeks or in unfavorable weather conditions.

In this article, I show why I fundamentally revised my power architecture: away from “works somehow” and towards a robust, documented solution for unattended continuous operation outdoors.

Complete backup of the Raspberry Pi microSD card – indi-allsky backup

indi-allsky on a Raspberry Pi system regularly writes data (logs, databases, images, videos).
microSD cards are only designed for this to a limited extent and can fail without warning in the worst case.

A 1:1 backup of the entire SD card is possible in an emergency:

  • Insert a new microSD card
  • Restore the backup
  • System starts exactly in the previous state