M-Hat Troubleshooting
This page covers the most common issues encountered during M-Hat setup and deployment, with specific causes and fixes for each.
M-Hat Won't Power On
Symptoms: No LEDs light up at all when connecting a USB-C cable.
Likely causes:
- USB-A to USB-C cable: The M-Hat requires USB-C PD to negotiate 9V. A USB-A port is fixed at 5V and cannot power the board.
- Non-PD USB-C adapter: Not all USB-C adapters support Power Delivery. Raspberry Pi-branded 5V adapters are a common example that won't work.
- HAT power jumper in wrong position: If using a PoE HAT or other power-providing HAT, the jumper may be set to
5V_INwhile no HAT power is connected.
Fix: Use a USB-C PD adapter that supports 9V. Confirm the HAT power jumper is set to 5V_OUT when powering from USB-C.
USB-C PD LED Not Lit
Symptoms: The M-Hat shows some activity but the PD LED near the USB-C connector is not illuminated.
Likely cause: The connected adapter does not support USB-C Power Delivery, or the adapter supports PD but not at 9V.
Fix: Replace with a USB-C PD adapter confirmed to support 9V. The PD LED will illuminate once 9V is successfully negotiated.
Charge LED Blinking
Symptoms: The charge LED blinks repeatedly rather than staying solid or off.
Likely causes:
- Battery polarity is reversed (JST-PH polarity is not standardized across manufacturers)
- Battery does not have a thermistor on the third pin, and the normally closed trace jumper has not been cut
- Battery or charger hardware fault
Fix: Disconnect the battery and verify polarity before reconnecting. If using a battery without a thermistor, cut the normally closed trace jumper on the bottom of the M-Hat. See Power Guide for the photo showing its location.
Particle SoM Not Appearing in Particle Console
Symptoms: After power on, the SoM does not appear online in console.particle.io.
Likely causes:
- SoM has not been claimed (the device has never been through the setup flow)
- SoM RGB LED is not breathing cyan (check for red/yellow/blinking patterns indicating a connection issue)
- Cellular coverage issue in your location
Fix: If the SoM has not been claimed, connect the M-Hat USB-C to a computer and navigate to setup.particle.io to claim the device. If the RGB LED is blinking red, check antenna connections and verify cellular coverage. See the Particle LED States reference.
Tethering Not Working: Pi Has No Cellular
Symptoms: The Raspberry Pi cannot reach the internet or Particle Cloud through cellular. The SoM itself connects fine.
Likely causes:
- Tethering firmware not flashed - use web setup at setup.particle.io/?app=particle-blueprint-rpi-tethering
- An M-Series SoM is installed - tethering support for M-Series SoMs is coming soon
- The tethering setup script has not been run on the Pi, or did not complete successfully
- Running on a Raspberry Pi 3, which is not yet verified (see Setup Guide)
Fix:
- Verify your SoM supports tethering - B504e and B524 are confirmed. Tethering support for M-Series SoMs is coming soon.
- Verify the tethering firmware is flashed to the SoM. The easiest way is via web setup at setup.particle.io/?app=particle-blueprint-rpi-tethering. The firmware must include
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);to enable the UART path - the Tether API does not handle this automatically. - On the Pi, run the tethering setup script and reboot:
sudo bash <(curl -sL https://part.cl/tethering)
sudo reboot - After reboot, verify the
ppp0interface is active:nmcli connection show
Qwiic / Grove Not Working
Symptoms: Sensors connected to Qwiic or Grove connectors don't respond or aren't detected.
Likely cause: 3V3_AUX has not been enabled. The Qwiic and Grove connectors have no power until the one-time PMIC configuration is run on the SoM.
Fix: Flash the one-time firmware configuration to the SoM:
SystemPowerConfiguration powerConfig = System.getPowerConfiguration();
powerConfig.auxiliaryPowerControlPin(D7).interruptPin(A7);
System.setPowerConfiguration(powerConfig);
Reset the device after flashing. See Power Guide for details.
Pi Not Booting
Symptoms: The Raspberry Pi doesn't boot after the M-Hat is attached.
Likely causes:
- HAT power jumper is set to
5V_INbut no HAT below is supplying power - Insufficient current from the USB-C adapter (especially with RPi 5 which requires up to 3.5A peak)
- M-Hat not fully seated on the GPIO header
Fix: Verify the HAT power jumper direction (set to 5V_OUT for USB-C or DC IN power). Use a higher-current USB-C PD adapter. Reseat the M-Hat on the GPIO header and check for bent pins.
NFC Pins Not Available as GPIO on B-SoM
Symptoms: Attempting to use the NFC pins as general GPIO doesn't work.
Cause: On B-Series SoMs, the NFC pins default to NFC mode at the hardware level. They require a UICR (User Information Configuration Registers) modification to become usable as GPIO.
Fix: Use the NFC_UICR_RK library to update the UICR bytes on your SoM. This is a one-time operation per device.
Cannot Stack Another HAT on Top
Symptoms: A HAT you want to place on top of the M-Hat either doesn't fit or doesn't make contact with the extended header.
Likely causes:
- Some HATs have tall components on their underside that conflict with M-Hat components
- The M-Hat adds ~3mm of height; some HAT stacking arrangements may need additional standoffs
Fix: Add 3mm brass standoffs between the M-Hat and the HAT above to increase clearance. Check for physical conflicts between components on the underside of the upper HAT and the top surface of the M-Hat before powering on.
More Help
If your issue isn't listed here, these resources can help: