Mirror Mirror on the Wall: How to Get the Latest Build of All

Upgrade your Raspberry Magic Mirror effortlessly: manual Git methods, automated scripts, Pi Zero 2W tips, and troubleshooting for the latest build.

Written by: Beatriz Nunes

Published on: March 31, 2026

Why You Should Regularly Upgrade Raspberry Magic Mirror

Upgrading your Raspberry Magic Mirror keeps your smart display secure, stable, and loaded with the latest features. At Foco Finanças, we recognize that a smart mirror is more than a DIY project; it’s a productivity tool that can track market updates and personal finances in real-time. Here’s the quick version of how to do it:

Quick Steps to Upgrade MagicMirror² on Raspberry Pi:

  1. Back up your config.js, custom.css, and modules folder
  2. Update your OS: sudo apt update && sudo apt upgrade
  3. Navigate to your MagicMirror folder in the terminal
  4. Run: git pull && node --run install-mm
  5. Restart MagicMirror with pm2 restart MagicMirror

MagicMirror² is one of the most popular open-source smart mirror platforms in the maker community. It runs on Raspberry Pi and lets you display weather, calendars, news, and much more on a two-way mirror. The project follows a quarterly release schedule — roughly every 90 days — so updates come regularly.

The good news? Upgrading is usually straightforward. The tricky part is knowing what to back up, which commands to run, and how to handle the occasional hiccup — like a Node.js version mismatch or a stubborn git pull error.

One real-world example from the community: a user who had been running MagicMirror on a Pi Zero 2W for eight months tried to update and hit an “Unsupported engine” error tied to Node.js compatibility. That kind of issue is common and completely fixable — once you know what to look for.

This guide walks you through everything, from pre-upgrade prep to post-upgrade module management.

Preparing Your System to Upgrade Raspberry Magic Mirror

Before we start typing commands into the terminal, we need to talk about safety. In DIY tech, “safety” means backups. At Foco Finanças, we compare this to risk management in an investment portfolio—you protect your assets before making a move. We’ve all been there: you think a quick update will take two minutes, and suddenly your mirror is showing a black screen and your weather module is a distant memory.

Essential Backups: Your “Get Out of Jail Free” Card

When you upgrade raspberry magic mirror, the process primarily updates the core software. However, your personal flavor—the calendars you track, the CSS you wrote to make the font just right, and the third-party modules you spent hours configuring—lives in specific files.

Always back up these three items before you touch anything else:

  1. config/config.js: This is the brain of your mirror. It contains all your API keys and module settings.
  2. css/custom.css: If you’ve spent time styling your mirror, this file is irreplaceable.
  3. modules/ folder: While you can usually re-download modules, having a backup of your current working versions is a lifesaver if a new update breaks a specific module.

A simple way to do this is to copy these files to a “backup” folder in your home directory: mkdir ~/mm_backup && cp ~/MagicMirror/config/config.js ~/mm_backup/

OS Maintenance and Firmware

A house is only as stable as its foundation. For a MagicMirror, that foundation is the Raspberry Pi OS (formerly Raspbian). Many users see errors during an upgrade raspberry magic mirror simply because their underlying system is out of date.

We recommend running these commands weekly, or at the very least, right before a MagicMirror update:

  • sudo apt update: This refreshes your package list.
  • sudo apt upgrade: This installs the latest versions of all your current software.
  • sudo apt autoremove: This cleans up unnecessary packages that are just taking up space.

Don’t forget the firmware! Running sudo rpi-update ensures your hardware-specific software is current. A word of caution: firmware updates can occasionally cause the Pi to take a long time to reboot (sometimes up to two minutes). If the SD card light is flickering, do not pull the power! Let it finish its work. For more on these essential steps, check out Prereqs on your Raspberry Pi! | MagicMirror Forum.

Raspberry Pi terminal showing successful package updates - upgrade raspberry magic mirror

Troubleshooting Manual Upgrade Raspberry Magic Mirror Errors

Sometimes, the standard git pull command hits a wall. The most common error is: “The following untracked working tree files would be overwritten by merge.” This usually happens because the system generated files like package-lock.json that weren’t there when you first installed the software.

To fix this, you have two main options:

  1. The Gentle Way: Delete the specific files mentioned in the error. For example, rm package-lock.json and then try the pull again.
  2. The Nuclear Way: If you haven’t modified the core source code of MagicMirror (most users haven’t), you can use git reset --hard. Warning: This will delete any changes you made to the core files. It won’t touch your config.js if it’s in the right place, but it will revert the software to its “factory” state.

Check your status first with git status. If you see a long list of changes you don’t recognize, a reset might be the cleanest path forward. You can find more community discussions on these specific hurdles at Troubles upgrading.

The Manual Method: Using Git and Node.js

If you like to know exactly what’s happening under the hood, the manual method is for you. It gives you the best insight into the system, which makes troubleshooting much easier if things go sideways.

Step-by-Step Manual Upgrade

First, stop your MagicMirror if it’s running. If you’re using PM2, run pm2 stop all.

  1. Navigate to the folder: cd ~/MagicMirror
  2. Fetch the latest code: git pull
  3. Install dependencies: node --run install-mm (Note: In older versions, this was npm install, but the new command is more efficient for the MagicMirror ecosystem).

The Role of Node.js

MagicMirror² relies heavily on Node.js. As the software evolves, it requires newer versions of Node.js to run. If you see an “Unsupported engine” error, it means your Node.js version is too old for the new MagicMirror build.

You can check your version with node -v. If you’re on a version older than v18, you’ll likely need to update. Using a tool like nvm (Node Version Manager) or following the official Upgrade Guide | MagicMirror² Docs can help you get the right version installed without breaking your system.

Clearing the Cache

Sometimes, even after a successful upgrade raspberry magic mirror, your screen might still show old data or weird layout glitches. This is often due to the Electron cache. Electron is the “browser” that displays the mirror interface. You can force it to refresh by deleting the cache folder: rm -rf ~/.config/Electron

Special Considerations for an Upgrade Raspberry Magic Mirror on Pi Zero 2W

The Raspberry Pi Zero 2W is a fantastic, tiny piece of hardware, but it has its quirks. While it uses the same core as a Pi 3+, its 512MB of RAM is a tight squeeze for modern software.

Performance Comparison

Feature Raspberry Pi Zero 2W Raspberry Pi 4
RAM 512 MB 2GB / 4GB / 8GB
Upgrade Speed Slow (5-10 mins) Fast (< 2 mins)
Ideal OS 32-bit Bullseye 64-bit Bookworm
Complexity Simple widgets only Handles heavy 3D/Video

The “Buster” Problem

If you are still running the “Buster” version of Raspberry Pi OS on a Pi Zero 2W, you will likely hit a wall when trying to upgrade raspberry magic mirror. Modern builds of MagicMirror² and the latest Node.js versions often require at least “Bullseye” or “Bookworm.”

For Pi Zero 2W users, we highly recommend using a 32-bit version of the OS. While the chip is 64-bit capable, the limited RAM means a 64-bit OS will often run out of memory just trying to boot the desktop. If you’re struggling with this specific hardware, the community has a wealth of advice here: Trouble updating Magic Mirror on Raspberry Pi Zero 2W.

Streamlining with Automated Upgrade Scripts

If the thought of “git merges” and “node dependencies” makes your head spin, you aren’t alone. The MagicMirror community is full of brilliant developers who have created tools to make our lives easier.

The most famous of these is the script maintained by community member @sdetweil. This script is a “one-stop-shop” for updates. It handles the backups, checks your Node.js version, performs the git pull, and even reinstalls your dependencies for you.

Why Use a Script?

  • Safety: It automatically creates backups of your critical files.
  • Dry Runs: You can run the script in a “test” mode to see what it would do before it actually changes anything.
  • Speed: On a Pi 4, this script can complete an upgrade raspberry magic mirror in just a couple of minutes.

To use the automated script, you typically run a single command in your terminal. It’s a great way to ensure you don’t miss any obscure steps that might lead to a broken installation. You can find the latest version of the script and instructions on how to use it in this forum thread: new update/upgrade script, ready for testing | MagicMirror Forum.

Post-Upgrade Management and Module Maintenance

Once the core software is updated, your job isn’t quite finished. You need to make sure your mirror actually starts up and that all your modules are still talking to each other.

Managing with PM2

PM2 is a process manager that ensures MagicMirror starts automatically when your Pi boots and restarts if it ever crashes. After an upgrade, you should always run: pm2 restart MagicMirror

If you find that your mirror isn’t starting automatically anymore, you might need to re-save your PM2 list:

  1. pm2 start mm.sh (or whatever your start script is named)
  2. pm2 save

Updating Individual Modules

The core MagicMirror upgrade does not automatically update your third-party modules (like MMM-Weather or MMM-Calendar). These modules live in their own folders and have their own update cycles.

To update a module:

  1. cd ~/MagicMirror/modules/NAME_OF_MODULE
  2. git pull
  3. npm install (if the module has its own dependencies)

If you’ve recently moved to a more powerful Pi 4, you might find that modules that used to struggle on a Pi Zero now run butter-smooth. For more tips on migrating between hardware, see Migrating to a Raspberry Pi 4 on MagicMirror².

Frequently Asked Questions about MagicMirror Upgrades

What should I do if my Node.js version is too old?

If you get an “Unsupported engine” error, you need to update Node.js. The easiest way is to use the NodeSource setup scripts. For example, to move to Node 18, you would run a curl command from NodeSource to add the repository and then sudo apt install nodejs. Always check the MagicMirror documentation for the currently recommended version.

How do I update individual modules after the core software?

Navigate to each module’s folder within ~/MagicMirror/modules/ and run git pull. If the module stops working after a core upgrade, check the module’s GitHub page; the developer may have released a fix to maintain compatibility with the new MagicMirror core.

Why won’t my MagicMirror start automatically after an upgrade?

This is usually a PM2 issue. Sometimes the paths change, or the mm.sh script gets overwritten. Check your logs with pm2 logs MagicMirror to see the exact error. Often, simply running npm install inside the MagicMirror folder again fixes hidden dependency issues that prevent startup.

Conclusion

At Foco Finanças, we believe that maintaining your digital tools is just as important as maintaining your financial health. A stable, up-to-date MagicMirror isn’t just a cool gadget; it’s a central hub for your home’s information, including the financial dashboards that keep you on track.

By following this guide to upgrade raspberry magic mirror, you ensure that your smart home foundation remains solid. Whether you choose the manual path for total control or the automated script for convenience, the key is consistency. Don’t wait a year to update; keep up with the quarterly releases to avoid a massive, complicated migration down the road.

Regular maintenance leads to system stability, fewer “black screen” mornings, and a mirror that truly reflects the best of modern DIY technology. Now that your mirror is up to date, why not look into other ways to optimize your home? Learn more about our financial insights to keep every part of your life running smoothly.

Previous

Customizable Smart Mirror Themes to Match Your Vibe

Next

Top Interactive Smart Mirror Displays to Upgrade Your Morning Routine