Raspberry Pi 5 Power Button Not Working in NVMe Case: What’s Actually Going On

Two separate problems, probably one to rule out first

When a Raspberry Pi 5 power button stops responding inside an NVMe case, there are usually two culprits: a physical one (the button isn’t pressing the right spot on the PCB) and a software one (the OS isn’t listening for the signal). Running Home Assistant OS makes the software side the more likely cause. HAOS doesn’t handle the Pi 5’s power button signal the same way Raspberry Pi OS does.

Start with a quick test. Hold the button down for a full five seconds. If the Pi cuts power, the physical side is fine. That five-second hold bypasses the OS entirely and forces the PMIC (the power management chip) to cut all outputs at the hardware level. It’s a hard shutdown, not graceful, but it’s enough to confirm the button is actually reaching the Pi’s PCB button underneath the case lid.

How the Pi 5 power button actually works

The Raspberry Pi 5 has a dedicated power button soldered directly onto the PCB, the small white button near the USB-C power connector. It connects to the RP1 I/O controller and the PMIC, so it operates on two levels.

  • Short press: sends a power event signal to the OS. What happens next depends entirely on what the OS does with it. Raspberry Pi OS Lite initiates a graceful shutdown; the desktop version shows a shutdown dialog first.
  • Double-click: on current Raspberry Pi OS builds, this triggers an immediate clean shutdown without the dialog.
  • Hold for 5+ seconds: the PMIC cuts power at the hardware level. No software involved. The Pi goes off hard.

There’s also a J2 header on the board, two unpopulated pads near the RTC battery connector, that mirrors the power button electrically. External buttons or enclosures can wire to J2 and behave identically to the onboard button.

What the PIM771 case button actually does

The Pimoroni NVMe Base Case (PIM771) is a folded aluminium enclosure that houses the Raspberry Pi 5 with the NVMe Base attached underneath. The power button in the case is a small plastic piece, roughly top-hat shaped, that sits in a hole in the lid positioned directly above the Pi 5’s PCB button. Press the case button and it physically depresses the Pi’s own button. No electronics involved. It’s purely mechanical.

That matters for diagnosing faults. If the five-second hold test works, the button is making contact. If it doesn’t, the plastic button may not be reaching the PCB button underneath, either because it wasn’t seated correctly during assembly or because the Pi isn’t sitting flush inside the case.

Check the assembly orientation

Pimoroni’s assembly guide describes the button as going into the round hole in the lid with the wide part on the inside of the case. If it’s reversed, the travel will be wrong and it won’t reach. Open the case and check before going further. It’s a common enough mistake and takes about thirty seconds to verify.

Why Home Assistant OS doesn’t respond to a short press

This is where most people get stuck. The Pi 5’s power button sends a short-press signal that Linux normally handles via logind or a similar power event daemon. Raspberry Pi OS is configured out of the box to respond to this signal and call a graceful shutdown.

Home Assistant OS is a custom embedded Linux build, not a standard Raspberry Pi OS install. It runs a minimal OS layer with its own power management approach. By default, HAOS does not ship a handler for the power button event, so a short press arrives at the hardware layer, nothing in software acts on it, and the Pi keeps running. There are open feature requests on the Home Assistant community forum specifically asking for native Pi 5 power button support.

This is a known gap, not a fault with the case or the Pi.

Getting a clean HAOS shutdown from the button

A few approaches exist, with different levels of complexity.

Hard shutdown (5-second hold): Always works, no configuration needed. Not graceful — Home Assistant won’t have time to sync state or close its database cleanly — but it does turn the Pi off. Treat it as an emergency option, not a daily workflow.

Supervisor REST API approach: Home Assistant exposes a local REST API through the Supervisor. Community members have set up small scripts at the host layer that detect the power button signal and call the Supervisor API to trigger a clean HA shutdown. This requires access to the HAOS host shell via SSH and some comfort with Linux scripting.

GPIO-based workaround: The J2 header on the Pi 5 can be wired to a separate GPIO pin rather than used as a direct button mirror. Combined with a GPIO integration in Home Assistant, this can trigger an automation that calls the homeassistant.stop service on button press. It requires soldering to J2 and a compatible HACS GPIO integration. Fair warning: GPIO support on the Pi 5 under HAOS has been patchy, because the Pi 5 uses a different GPIO architecture from earlier models and some integrations don’t fully support it yet.

Community addons: Keep an eye on the Home Assistant community forums. There are active discussions around addons that add proper power button handling to HAOS on Pi 5 hardware. The situation is changing.

If the button does nothing even on a five-second hold

Open the case. Confirm the plastic button is correctly seated, wide part inside the case and narrow stem through the lid hole. Check that the Pi 5 is sitting flush and its PCB button aligns with the hole. If everything looks right, try bridging the J2 header pads directly with a small piece of wire while the Pi is running. If that triggers the expected behaviour, the case button alignment is the problem, not the software.

Sources

Similar Posts