Skip to main content

M-Hat Hardware Overview

This page covers the physical layout, all connectors and interfaces, and the GPIO reference for the M-Hat. For raw electrical specifications and tolerances, refer to the M-Hat Datasheet.


Board Diagram

M-Hat labeled diagram
LabelComponent
1USB-C Connector
2USB-C PD LED
3DC IN (screw terminals)
4Charge LED
5LiPo Battery Connector
6I/O Expansion (IOEX) Header
7RTC Battery Connector
8Grove Connector
9Qwiic Connector
10SMA: GNSS
11SMA: BLE
12SMA: Cellular
13RESET Button
1440-pin HAT Connector
15Particle M.2 SoM Slot
16MODE Button
17Particle RGB LED

USB-C

The USB-C connector provides power to the M-Hat via USB-C PD (Power Delivery), and also exposes the Particle SoM for programming from a computer.

USB-A cables will not power the M-Hat

The M-Hat negotiates 9V via USB-C PD. Standard USB-A ports are fixed at 5V and cannot supply enough power for the cellular modem and Raspberry Pi together. Use a USB-C PD adapter.

Do not connect the M-Hat USB-C and the Raspberry Pi's USB-C at the same time.


USB-C PD LED

A small LED near the USB-C connector that illuminates when the USB-C PD negotiation has succeeded at 9V. If this LED is off while a USB-C cable is connected, the adapter does not support PD; replace it with a PD-capable adapter.


DC IN

Two screw terminals accept 5V to 12V DC from an external regulated supply. An onboard boost-buck converter regulates this to the voltages required by the SoM and Raspberry Pi. Suitable for fixed industrial installations with a regulated DC rail.


Charge LED

Indicates the battery charging state. See the Power Guide for the full LED state table.


LiPo Battery Connector

3-pin JST-PH (2mm pitch) connector for a 3.7V LiPo battery with integrated 10K NTC thermistor. The third pin carries the thermistor signal used for temperature-safe charging. See the Power Guide for compatibility notes and the NTC jumper details.


I/O Expansion (IOEX) Header

A 5×2 pin header exposing spare GPIO from the Particle M.2 SoM connector, plus ground and 3.3V. Use this for attaching custom digital I/O, such as logic analyzers, custom circuits, or sensors not covered by Qwiic/Grove.

PinSignalDirectionNotes
1GNDN/AGround
23V3Output3.3V rail
3–18GPIO (×8)ConfigurableSpare GPIO from M.2 connector

RTC Battery Connector

A 2-pin 1mm-pitch connector for a Raspberry Pi 5 compatible RTC coin cell. Maintains the AB1805 real-time clock when all other power is removed. Does not supply general board power.


Grove Connector

A standard Grove (4-pin, 2mm pitch) connector providing access to two analog inputs from the Particle SoM. Powered by 3V3_AUX (must be enabled in firmware; see Power Guide).

PinSignalSoM GPIO
1GNDN/A
23V3_AUXN/A
3A2Analog input
4A1Analog input

For compatible sensors and accessories, browse the Grove ecosystem.


Qwiic Connector

A single Qwiic (JST-SH 4-pin, 1mm pitch) connector on the I2C bus of the Particle SoM. Powered by 3V3_AUX (must be enabled in firmware; see Power Guide).

3V3_AUX must be enabled

The Qwiic and Grove connectors will not supply power until the one-time firmware configuration for 3V3_AUX has been run. See the Power Guide or Setup Guide for the configuration snippet.

For compatible sensors, browse the SparkFun Qwiic ecosystem.


SMA Connectors: Cellular, GNSS, and BLE

Three SMA connectors on the M-Hat connect to the Particle SoM's U.FL antenna ports via the included SMA to U.FL adapters:

  • Cellular SMA: connects to the SoM's cellular antenna U.FL port
  • GNSS SMA: connects to the SoM's GNSS antenna U.FL port
  • BLE SMA: connects to the SoM's Bluetooth antenna U.FL port

External antennas are required for cellular and GNSS operation. If using a custom enclosure, route the SMA connectors through panel-mount holes.


RESET Button

Resets the Particle SoM. Does not affect the Raspberry Pi. Equivalent to pressing RESET on a standalone Particle device.


40-pin HAT Connector

An extended 40-pin pass-through header (3mm taller than standard) that connects to the Raspberry Pi GPIO header and passes through signals to HATs stacked above. The extension height allows the M-Hat to clear components on the Pi while still allowing HAT stacking.

UART tethering pins (between SoM and Pi):

RPi GPIOFunctionSoM Signal
GPIO14 (TXD)Pi UART TX → SoM RXSerial1 RX
GPIO15 (RXD)Pi UART RX ← SoM TXSerial1 TX
GPIO16 (CTS)Hardware flow controlSerial1 CTS
GPIO17 (RTS)Hardware flow controlSerial1 RTS

Pi power control pin:

RPi GPIOSoM GPIOFunction
GPIO4D8 (CS)SoM controls Pi power via PFET; 10K pull-up to 3V3 on Pi side

UART supports up to 921k baud (target: 1M baud). Hardware flow control is supported.


Particle M.2 SoM Slot

Standard Particle M.2 slot accepting B-Series and M-Series SoMs. Insert the SoM at a 45° angle, press down until flat against the board, and secure with the included thumbscrew. See Step 1 of the Install and Setup Guide for full assembly instructions.


MODE Button

Puts the Particle SoM into listening mode for device setup. See Particle LED States for the full mode reference.


Particle RGB LED

A standard Particle device status LED driven entirely by the Particle SoM. It is not affected by the Raspberry Pi. For the authoritative reference on all LED color and pattern meanings, see the Particle LED States page.


GPIO Summary

SoM GPIOM.2 PinDirectionFunction
D4N/AInputTMP112A temperature alert (use INPUT_PULLUP)
D5N/AInputAB1805 RTC interrupt (use INPUT_PULLUP)
D7N/AOutput3V3_AUX enable (Qwiic/Grove power)
D8N/AOutputRaspberry Pi power control (PFET)
A0N/AOutputUART isolation bridge enable (HIGH = enabled)
A1N/AInputGrove analog input 1
A2N/AInputGrove analog input 2
A337OutputLiPo boost converter enable (HIGH = off)
A441OutputDC/USB boost-buck enable (HIGH = off)
A7N/AInputPMIC interrupt

I2C Address Map

The following peripherals are on the Particle SoM I2C bus. Note that the SoM and Raspberry Pi I2C buses are not shared by default (solder bridges are available to bridge them if needed).

I2C AddressPeripheralFunction
0x28STUSB4500USB-C PD controller
0x36MAX17043Fuel gauge (battery state of charge)
0x48TMP112ATemperature sensor
0x69AB1805RTC / Watchdog
0x6Bbq24195PMIC (battery charger)

Internal Peripherals

STUSB4500 (USB-C PD Controller)

Handles USB-C Power Delivery negotiation to obtain 9V from the connected adapter. For B-Series SoMs, the NFC pins must be reconfigured via UICR to be available as general GPIO. If using those pins, see the NFC_UICR_RK library.

FSA2567 (UART Isolation)

A UART isolation switch between the Particle SoM and the Raspberry Pi. Isolated by default; A0 must be set HIGH explicitly in firmware before Tether calls. The Tether API does not handle this automatically.

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH); // enable UART bridge

TMP112A (Temperature Sensor)

A precision I2C temperature sensor on the SoM I2C bus. The SoM and Raspberry Pi I2C buses are not shared. Alert pin connected to D4; use INPUT_PULLUP:

pinMode(D4, INPUT_PULLUP);

AB1805 (RTC / Watchdog)

Real-time clock and watchdog timer, maintained by the RTC coin cell battery when main power is removed. Interrupt pin connected to D5; use INPUT_PULLUP:

pinMode(D5, INPUT_PULLUP);

PM-BAT Power Module

Manages the PMIC, battery charger, and fuel gauge. A7 receives PMIC interrupts; D7 controls 3V3_AUX. See Power Guide for configuration.