Pironman U1: Advanced UPS and Cooling System for Raspberry Pi¶
Thanks for choosing our Pironman U1.

Meet the Pironman U1, the essential UPS case for Raspberry Pi, designed for seamless performance and sophisticated style. It features Advanced Hardware Power Path Switching for stable power, Triple Current Sensors for efficient power management, and Intelligent Charging to enhance battery life. Enjoy real-time battery monitoring via I2C Communication, extensive storage options with NVMe SSD Compatibility, and easy multimedia control with an IR Receiver. The case also boasts a retro-style Metal Power Button, an Extended 40-pin GPIO with labeled pins for easy access, and a robust, aesthetically pleasing build. With an efficient cooling fan and direct access to the microSD card slot, the Pironman U1 is the perfect blend of functionality and elegance for your Raspberry Pi.
If you have any questions, please send an email to service@sunfounder.com and we will respond as soon as possible.
1. What Else Should We Prepare?¶
Essential Components
Raspberry Pi 5/4 Model B
The Pironman U1 is fully compatible with the Raspberry Pi 5/4 Model B.
5V/5A USB Type C Power Adapter
It is recommended to use the official 27W power supply of Raspberry Pi or other Pi5 dedicated USB PD protocol 5V/5A power sources.
Micro SD Card
It is recommended to use an SD card with a minimum of 16GB of storage for Raspberry Pi OS. For Raspberry Pi OS Lite, a minimum of 4GB is advised.
Optional Components
M.2 NVMe SSD
The Pironman U1 features an NVMe PIP with an M.2 SSD connector, accommodating four NVMe M.2 SSD sizes: 2230, 2242, 2260, and 2280. It supports both PCIE2.0 and PCIE 3.0 NVMe M.2 SSDs.
Screen
To access the Raspberry Pi’s desktop environment, a screen such as a TV or a computer monitor is required.
Micro HDMI Cable
A Micro HDMI cable is required when you want to connect the Raspberry Pi to a screen.
Mouse & Keyboard
Any USB port on the Raspberry Pi can be used to connect a wired keyboard and mouse, or a USB Bluetooth receiver for wireless peripherals.
2. Assembly Instructions¶
Before assembling the Pironman, please first verify that all parts and components have been included. If there are any missing or damaged components, please contact SunFounder immediately at service@sunfounder.com to resolve the issue as soon as possible.
Tips
It is recommended to follow the paper installation instructions step by step.
Before installation, sort and stack the components to find them more quickly.
Repeatedly check the connections of FFC and FPC cables to avoid poor contact.
3. Installing the OS¶
Required Components
Raspberry Pi 5B
A Personal Computer
A Micro SD card
Installation Steps
Visit the Raspberry Pi software download page at Raspberry Pi Imager. Choose the Imager version compatible with your operating system. Download and open the file to initiate installation.
A security prompt may appear during installation, depending on your operating system. For example, Windows might display a warning message. In such cases, select More info and then Run anyway. Follow the on-screen guidance to complete the installation of the Raspberry Pi Imager.
Insert your SD card into your computer or laptop’s SD card slot.
Launch the Raspberry Pi Imager application by clicking its icon or typing
rpi-imager
in your terminal.Within the Imager, click CHOOSE DEVICE and select the Raspberry Pi 5 model from the dropdown list.
Select CHOOSE OS and opt for the recommended operating system version.
Click Choose Storage and select the appropriate storage device for the installation.
Note
Ensure you select the correct storage device. To avoid confusion, disconnect any additional storage devices if multiple ones are connected.
Click NEXT and then EDIT SETTINGS to tailor your OS settings. If you have a monitor for your Raspberry Pi, you can skip the next steps and click ‘Yes’ to begin the installation. Adjust other settings later on the monitor.
Define a hostname for your Raspberry Pi.
Note
The hostname is your Raspberry Pi’s network identifier. You can access your Pi using
<hostname>.local
or<hostname>.lan
.Create a Username and Password for the Raspberry Pi’s administrator account.
Note
Establishing a unique username and password is vital for securing your Raspberry Pi, which lacks a default password.
Configure the wireless LAN by providing your network’s SSID and Password.
Note
Set the
Wireless LAN country
to the two-letter ISO/IEC alpha2 code corresponding to your location.Click SERVICES and activate SSH for secure, password-based remote access. Remember to save your settings.
Confirm your selected settings by clicking Yes.
If the SD card contains existing data, ensure you back it up to prevent data loss. Proceed by clicking Yes if no backup is needed.
The OS installation process will commence on the SD card. A confirmation dialog will appear upon completion.
4. Setting Up Your Raspberry Pi¶
Setting Up with a Screen¶
Having a screen simplifies the process of working with your Raspberry Pi.
Required Components
Raspberry Pi 5/4 Model B
Power Adapter
Micro SD card
Screen Power Adapter
HDMI cable
Screen
Mouse
Keyboard
Steps:
Insert the Micro SD card with Raspberry Pi OS installed into the Pironman U1.
Connect the Mouse and Keyboard to the Pironman U1.
Use the HDMI cable to connect the screen to the Pironman U1’s HDMI port. Ensure the screen is plugged into a power source and turned on.
Power the Pironman U1 using the power adapter. The Raspberry Pi OS desktop should appear on the screen after a few seconds.
Setting Up Without a Screen¶
If you don’t have a monitor, remote login is a viable option.
Required Components
Raspberry Pi 5/4 Model B
Power Adapter
Micro SD card
Using SSH, you can access the Raspberry Pi’s Bash shell, which is the default Linux shell. Bash offers a command-line interface for performing various tasks.
For those preferring a graphical user interface (GUI), the remote desktop feature is a convenient alternative for managing files and operations.
For detailed setup tutorials based on your operating system, refer to the following sections:
For Mac OS X Users¶
For Mac OS X users, SSH (Secure Shell) offers a secure and convenient method to remotely access and control a Raspberry Pi. This is particularly handy for working with the Raspberry Pi remotely or when it’s not connected to a monitor. Using the Terminal application on a Mac, you can establish this secure connection. The process involves an SSH command incorporating the Raspberry Pi’s username and hostname. During the initial connection, a security prompt will ask for confirmation of the Raspberry Pi’s authenticity.
To connect to the Raspberry Pi, type the following SSH command:
ssh pi@raspberrypi.local
A security message will appear during your first login. Respond with yes to proceed.
The authenticity of host 'raspberrypi.local (2400:2410:2101:5800:635b:f0b6:2662:8cba)' can't be established. ED25519 key fingerprint is SHA256:oo7x3ZSgAo032wD1tE8eW0fFM/kmewIvRwkBys6XRwg. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Input the password for the Raspberry Pi. Be aware that the password won’t display on the screen as you type, which is a standard security feature.
pi@raspberrypi.local's password: Linux raspberrypi 5.15.61-v8+ #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Sep 22 12:18:22 2022 pi@raspberrypi:~ $
For Windows Users¶
For Windows 10 or higher users, remote login to a Raspberry Pi can be achieved through the following steps:
Search for
powershell
in your Windows search box. Right-click onWindows PowerShell
and selectRun as administrator
.Determine your Raspberry Pi’s IP address by typing
ping -4 <hostname>.local
in PowerShell.ping -4 raspberrypi.local
The Raspberry Pi’s IP address will be displayed once it’s connected to the network.
If the terminal displays
Ping request could not find host pi.local. Please check the name and try again.
, verify the hostname you’ve entered is correct.If the IP address still isn’t retrievable, check your network or WiFi settings on the Raspberry Pi.
Once the IP address is confirmed, log in to your Raspberry Pi using
ssh <username>@<hostname>.local
orssh <username>@<IP address>
.ssh pi@raspberrypi.local
Warning
If an error appears stating
The term 'ssh' is not recognized as the name of a cmdlet...
, your system may not have SSH tools pre-installed. In this case, you need to manually install OpenSSH following Install OpenSSH via Powershell, or use a third-party tool as described in PuTTY.A security message will appear on your first login. Enter
yes
to proceed.The authenticity of host 'raspberrypi.local (2400:2410:2101:5800:635b:f0b6:2662:8cba)' can't be established. ED25519 key fingerprint is SHA256:oo7x3ZSgAo032wD1tE8eW0fFM/kmewIvRwkBys6XRwg. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Enter the password you previously set. Note that the password characters won’t be displayed on the screen, which is a standard security feature.
Note
The absence of visible characters when typing the password is normal. Ensure you input the correct password.
Once connected, your Raspberry Pi is ready for remote operations.
For Linux/Unix Users¶
Locate and open the Terminal on your Linux/Unix system.
Ensure your Raspberry Pi is connected to the same network. Verify this by typing ping <hostname>.local. For example:
ping raspberrypi.local
You should see the Raspberry Pi’s IP address if it’s connected to the network.
If the terminal shows a message like
Ping request could not find host pi.local. Please check the name and try again.
, double-check the hostname you’ve entered.If you’re unable to retrieve the IP address, inspect your network or WiFi settings on the Raspberry Pi.
Initiate an SSH connection by typing
ssh <username>@<hostname>.local
orssh <username>@<IP address>
. For instance:ssh pi@raspberrypi.local
On your first login, you’ll encounter a security message. Type
yes
to proceed.The authenticity of host 'raspberrypi.local (2400:2410:2101:5800:635b:f0b6:2662:8cba)' can't be established. ED25519 key fingerprint is SHA256:oo7x3ZSgAo032wD1tE8eW0fFM/kmewIvRwkBys6XRwg. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Enter the password you previously set. Note that for security reasons, the password won’t be visible as you type.
Note
It’s normal for the password characters not to display in the terminal. Just ensure to enter the correct password.
Once you’ve successfully logged in, your Raspberry Pi is now connected, and you’re ready to proceed to the next step.
Access the Raspberry Pi desktop through VNC Viewer¶
For those preferring a graphical user interface (GUI) over command-line access, the Raspberry Pi supports remote desktop functionality. This guide will walk you through setting up and using VNC (Virtual Network Computing) for remote access.
We recommend using VNC® Viewer for this purpose.
Enabling VNC Service on Raspberry Pi
VNC service comes pre-installed in the Raspberry Pi OS but is disabled by default. Follow these steps to enable it:
Enter the following command in the Raspberry Pi terminal:
sudo raspi-config
Navigate to Interfacing Options using the down arrow key, then press Enter.
Select VNC from the options.
Use the arrow keys to choose <Yes> -> <OK> -> <Finish> and finalize the VNC service activation.
Logging in via VNC Viewer
Download and install VNC Viewer on your personal computer.
Once installed, launch VNC Viewer. Enter the hostname or IP address of your Raspberry Pi and press Enter.
When prompted, enter your Raspberry Pi’s username and password, then click OK.
You’ll now have access to your Raspberry Pi’s desktop interface.
5. Quick User Guide¶
To effectively utilize the Pironman U1, we’ll be employing the SunFounder Power Control Core (SPC).
This is a tool for power management and control of hardware devices. Its primary functions are to monitor battery voltage, current, capacity, and percentage, and to manage fan speed and modes. The SPC connects with devices via I2C communication, ensuring stable data transfer. Additionally, it supports real-time clock settings and features configuration and logging capabilities. This tool is ideal for professionals and hobbyists who require precise monitoring and control of hardware power.
1. Download and Install SPC¶
Note
For lite systems, initially install tools like git
, python3
, pip3
, setuptools
, etc.
sudo apt-get update
sudo apt-get install git -y
sudo apt-get install python3 python3-pip python3-setuptools -y
Download and install
spc
. If you encounter any errors during the installation, it’s recommended to rerunsudo python3 install.py
.cd ~ git clone https://github.com/sunfounder/spc.git cd ~/spc sudo python3 install.py
After installation, a reboot is necessary to activate certain settings.
sudo reboot
Instructions for Powering On and Off:
Power On: Press the button until the light turns green, indicating the system is powering on. You can then release the button.
Shutdown: Press and hold the button for 2 seconds until the light turns purple, then release. When the power button’s light begins to flash purple, the Raspberry Pi will receive a shutdown signal and proceed to shut down. The power button’s light will turn off once the shutdown process is complete.
Power Cut: If you haven’t configured software on the Raspberry Pi, or for other reasons, you can opt for a power cut shutdown. Press and hold the button for 5 seconds and turns red, indicating a direct power cut. Be cautious with this method as it may damage data.
2. View Data from SPC Dashboard¶
Now, you can visit the SPC Dashboard to view various data.
Enter
<your pi ip>:34001
in your browser to open the SPC Dashboard designed by us.The Dashboard will include the following:
External: Displays the status of the external USB power (Plugged in or Unplugged), its voltage, current, and power.
Fan: Shows the fan status, mode, speed, and the current temperature of the Raspberry Pi.
You can manually turn the fan on or off and select different rotation modes for it.
Battery: Displays the battery’s percentage, charging status, voltage, current, and power.
When an external USB power source is plugged in, the battery is in charging mode, showing its voltage, charging current, and power.
When the external USB is not plugged in, the current and power are negative, indicating the battery’s output current and power.
Raspberry Pi Power: Displays the power supply to the Raspberry Pi (External or battery), its voltage, current, and power.
Storage: Displays the storage capacity of a Raspberry Pi, showing various disk partitions with their used and available space.
Memory: Shows the Raspberry Pi’s RAM usage and percentage.
Processor: Illustrates the Raspberry Pi’s CPU performance, including the status of its four cores, operating frequencies, and CPU usage percentage.
Network: Displays the current network connection type, upload, and download speeds.
You can also switch this page to a white mode.
3. Modify Configuration from Terminal¶
You can also view data related to the battery, fan, etc., from the Terminal.
The
spc
program runs in a python3 virtual environment. Use the following command to enter the virtual environment:source /opt/spc/venv/bin/activate
Once entered, use the following command to view the available instructions.
spc -h
usage: spc [-h] [-m] [-a] [-f [speed percentage]] [-F [{auto,quiet,normal,performance}]] [-b] [-e] [-o] [-p] [-c] [-j] [-st [battery percentage]] options: -h, --help show this help message and exit -m, --monitor open a monitor -a, --all print all the data of spc -f [speed percentage], --fan [speed percentage] get/set the speed of fan -F [{auto,quiet,normal,performance}], --fan-mode [{auto,quiet,normal,performance}] get/set the mode of fan -b, --battery battery voltage, current, percentage -e, --external_input external input -o, --raspberry_pi_power raspberry pi voltage, current -p, --powered power source -c, --charge is charging -j, --json output json format -st [battery percentage], --shutdown-strategy [battery percentage] get/set battery percentage for Shutdown Strategy
For most commands, simply use
spc -x
to print the relevant data. For example, you can use the following command to get the battery voltage, current, and percentage.spc -b
For
-f
,-F
,-st
, you can use them without parameters to get the current data. For example, use the command below to get the current fan speed.spc -f
You can also use them with parameters to set values.
spc -f 40
View log files.
First, enter the log directory.
cd /opt/spc/log
To see what log files are available, use the
ls
command.config.log ha_api.log spc.log system_status.log
To view the contents of a log file, such as
spc.log
, use thecat
command.cat spc.log
To view the logs generated by systemctl, press
Q
to exit the current page.sudo systemctl status spc.service
spc.service
includes software shutdown, fan control, dashboard, and MQTT functionality. If the program isn’t running properly, you can try restartingspc.service
.sudo systemctl restart spc.service
6. About Hardware¶
This chapter is a detailed description of all the components in Pironman U1, as well as the associated software configuration.
Features¶
Functions
Raspberry Pi 5/4 Model B UPS Case
Hardware power path switching to ensure power supply to the Raspberry Pi
Equipped with 3 current sensors to measure: USB input current, Raspberry Pi current, and battery charge/discharge current.
Intelligent adjustment of charging current
I2C communication to read battery voltage, current, and other information
PCIe 3.0 x1 M.2 M key 2230, 2242, 2260, 2280 for NVMe SSD
IR Receiver for multimedia centers like Kodi or Volumio
Comes with a fan controlled by Raspberry Pi via I2C to MCU
Retro metal power button with indicator light for safe shutdown
Extend the 40-pin GPIO outward with pin name label, for easy access
Direct Access to Raspberry Pi’s microSD Card Slot
Aluminum main body with a black Acrylic side panel
Parameters
Dimension: 100x95x47mm
- Material
Main body: aluminum alloy
Two side panel: acrylic
Support Platform: Raspberry Pi 5B/4B
Power Input: USB Type C input, 5V/5A, supports PD protocol. It is recommended to use the official 27W power supply of Raspberry Pi or other Pi5 dedicated USB PD protocol 5V/5A power sources.
Power supply to Raspberry Pi: 5V/5.5A
Charging Power: 7.4V/1A
- Interfaces
Raspberry Pi standard 40-Pin GPIO
micro SD
USB Type C power input
2 x USB 2.0
2 x USB 3.0
Gigabit LAN port
2 x 4Kp60 HDMI Type A
1 x Fan: 40x40x10mm
38KHz IR Receiver
PCIe 3.0 x1 M.2 M key 2230, 2242, 2260, 2280 for NVMe SSD
A CR1220 non-rechargeable battery for RTC
RGB LED Metal Power Button
Dimensional Drawing

Main Board¶

Power Supply¶
Power Input
USB Type C input, 5V/5A, PD protocol. It’s recommended to use the official 27W power supply of Raspberry Pi or other Pi5 dedicated USB PD protocol 5V/5A power sources.
Battery
Equipped with a custom battery pack made by SunFounder, consisting of two 18650 batteries with a capacity of 2000mAh. The connector is XH2.54, 3P, which can be directly charged after being inserted into the board.
The battery includes a built-in protection circuit, with an over-discharge protection voltage of 2.6V and an over-charge protection voltage of 4.2V.
Power Path
The Pironman U1 features an integrated power path function, which can automatically switch power paths to reduce battery wear and ensure uninterrupted power supply to the Raspberry Pi.
When an external USB power source is connected, it directly supplies power to the Raspberry Pi and can also charge the battery if needed.
If external power is lost, the system automatically switches to battery power, ensuring uninterrupted operation.
If external power voltage drops below 4.72V, the system automatically switches to battery power to prevent low voltage issues in the Raspberry Pi.
Advantage: Normally powered by an external USB power source, extending the lithium battery’s lifespan. In critical moments, it timely switches to battery power to ensure the safety of the Raspberry Pi.
Charging Current
Capable of intelligently adjusting the charging current. When the input current from the external USB power source is sufficient, the charging current for the battery is increased, up to a maximum of 7.4V/1A. When the Raspberry Pi requires more current, or the input current is insufficient, the charging current is automatically reduced.
Overcharge Protection
Charging ends when the total battery voltage reaches 8.4V. Charging resumes when the battery voltage drops below 8V.
Charge Balancing
During charging, the voltage of each of the two batteries is continuously monitored. If the voltage of any one battery reaches the balance initiation voltage of 4.1V, the corresponding balance MOS is activated to reduce the charging current of that battery.
Balance is turned off under the following conditions:
The voltage of both batteries exceeds the balance initiation voltage of 4.1V.
Exiting normal charging state (input overvoltage, battery full, etc.).
Power-On Startup¶
The module supports power-on startup, initiating as soon as the external power source is plugged in. To disable automatic power-on, remove the ALWAYS ON jumper cap. This requires manually pressing the power button to start the Raspberry Pi, even when an external power source is connected or after a power outage.

Raspberry Pi Status Monitoring¶
To turn off the Pironman U1, you need to press and hold the power button for 2 seconds until the button light turns purple, then release.
At this point, Pironman U1 will send a shutdown signal to the Raspberry Pi via I2C. If you have followed the 1. Download and Install SPC, the Raspberry Pi will then proceed with a safe shutdown.
After shutdown, the configured Raspberry Pi shutdown signal pin, GPIO26, will go low. Once the main board detects this low signal, it cuts off the power to the Raspberry Pi.
In the spc
program, the shutdown signal pin is set by adding the following line to the Raspberry Pi’s /boot/config.txt
file.
dtoverlay=gpio-poweroff,gpio_pin=26,active_low=0
The RPI STAT jumper cap connects the microcontroller’s shutdown signal with the Raspberry Pi’s GPIO26. You can also remove this jumper cap to free up GPIO26. However, doing so means you won’t be able to perform a safe shutdown of the Raspberry Pi.

Infrared Receiver¶

Model: IRM-56384, operating at 38KHz.
Two pins for enabling the infrared function. By default, a jumper cap is inserted for immediate functionality. Remove the cap to free GPIO13 if the IR receiver is not in use.
An infrared reception indicator that blinks upon signal detection.
To utilize the IR receiver, verify its connection and install the necessary module:
Test the connection:
sudo ls /dev |grep lirc
Install the
lirc
module:sudo apt-get install lirc -y
Now, test the IR Receiver by running the following command. After running the command, press a button on the remote control, and the code of that button will be printed.
mode2 -d /dev/lirc0
Fans Pin¶

Fan Pin, for connecting a 4010 fan.
You can set the fan’s operation mode via command:
auto
,quiet
,normal
,performance
.spc -F auto
Alternatively, you can directly set the fan speed, ranging from 0% to 100%.
spc -f 40
You can use them without parameters to get the current data. For example, use the command below to get the current fan speed.
spc -f
RTC Function¶
The onboard microcontroller supports the RTC (Real-Time Clock) function. Install a button cell battery in the onboard 1220 battery holder, and connect the jumper cap (RTCEN) on the battery holder (by default, it is connected) to use the microcontroller’s RTC function.

For Raspberry Pi 4
When the Pironman U1 is powered off or shut down, the microcontroller is powered by the button cell battery, recording the time, with a standby current of about 2uA. The board does not support charging the RTC battery, so there is no need to use a rechargeable battery. The CR1220 non-rechargeable battery provided in the kit is recommended.
If you have followed the 1. Download and Install SPC instructions, the Raspberry Pi will automatically synchronize with the RTC time upon booting.
For Raspberry Pi 5
Since the Raspberry Pi 5 itself supports RTC functionality, you can choose to remove the RTCEN jumper cap to disconnect the battery from the microcontroller.
And use a SH1.0 2Pin reverse cable to connect the RTC socket to the Raspberry Pi’s BAT power socket. This way, the onboard RTC battery is completely disconnected from the board and only serves as a battery holder.
Enable Trickle Charging
The Raspberry Pi 5 supports charging the RTC battery. By default, the trickle charging feature for the battery is disabled. The
sysfs
files indicate the current trickle charging voltage and limits:Warning
A rechargeable ML1220 battery can be used here.
If you are using the CR1220 non-rechargeable battery provided in the kit, make sure not to enable the Trickle Charging feature.
pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage 0 pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage_max 4400000 pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage_min 1300000
To enable trickle charging, add
rtc_bbat_vchg
to/boot/firmware/config.txt
.Open the
/boot/firmware/config.txt
.sudo nano /boot/firmware/config.txt
Add
rtc_bbat_vchg
to/boot/firmware/config.txt
.dtparam=rtc_bbat_vchg=3000000
After rebooting, the system will display:
pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage 3000000 pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage_max 4400000 pi@raspberrypi:~ $ cat /sys/devices/platform/soc/soc:rpi_rtc/rtc/rtc0/charging_voltage_min 1300000
This confirms the battery is now under trickle charging. To disable this feature, simply remove the dtparam
line from config.txt
.
Pin Headers¶

The Pironman U1 extends the GPIO of the Raspberry Pi, but note that the Pironman U1 utilizes some of these pins. You can choose to disable certain features according to your needs to free up these pins.
Pironman U1 |
Raspberry Pi |
---|---|
IR Receiver(Optional) |
GPIO16(Optional) |
I2C SDA |
SDA |
I2C SCL |
SCL |
Soft Shutdown Status Monitoring |
GPIO26(Optional) |
Pi5 NVMe PIP¶
The Pi5 NVMe PIP (PCIe Peripheral Board), as defined by the Raspberry Pi Foundation, is a PCIe adapter board designed specifically for NVMe solid-state drives. It supports four different sizes of NVMe SSDs: 2230, 2242, 2260, and 2280, all fitting into an M.2 M key slot.

The board connects through a 16P 0.5mm reverse FFC (Flexible Flat Cable) or a custom impedance-matched FPC (Flexible Printed Circuit) cable.
STA: A Status LED indicator.
PWR: A Power LED indicator.
The onboard 3.3V power supply can support up to 3A output. However, since the Raspberry Pi PCIe interface is limited to providing 1A output (equivalent to 5W), additional power for 3.3V/3A usage can be supplied through the J3 connector from a 5V source.
Configure PCIe¶
Enabling PCIe
By default the PCIe connector is not enabled.
To enable it you should open the
/boot/firmware/config.txt
file.sudo nano /boot/firmware/config.txt
Then add the following line to the file.
# Enable the PCIe External connector. dtparam=pciex1
A more memorable alias for
pciex1
exists, so you can alternatively adddtparam=nvme
to the/boot/firmware/config.txt
file.dtparam=nvme
Note
Enumeration of PCIe devices behind a switch is not currently supported.
PCIe Gen 3.0
The connection is certified for Gen 2.0 speeds (5 GT/sec), but you can force it to Gen 3.0 (10 GT/sec) if you add the following lines to your
/boot/firmware/config.txt
.# Force Gen 3.0 speeds dtparam=pciex1_gen=3
Warning
The Raspberry Pi 5 is not certified for Gen 3.0 speeds, and connections to PCIe devices at these speeds may be unstable.
You should then reboot your Raspberry Pi for these settings to take effect.
sudo reboot
About the Model¶
M.2 SSDs, known for their compact size, come in various types mainly differentiated by their keying (notch design on the connector) and the interface they use. Here are the primary types:
M.2 SATA SSDs: These use the SATA interface, similar to 2.5-inch SATA SSDs but in the smaller M.2 form factor. They are limited by the SATA III maximum speeds of around 600 MB/s. These SSDs are compatible with M.2 slots keyed for B and M keys.
M.2 NVMe SSDs: These SSDs use the NVMe protocol over PCIe lanes and are significantly faster than M.2 SATA SSDs. They are suitable for applications requiring high read/write speeds like gaming, video editing, and data-intensive tasks. These SSDs typically require M-keyed slots. These drives utilize the PCIe (Peripheral Component Interconnect Express) interface, with different versions like 3.0, 4.0, and 5.0. Each new version of PCIe effectively doubles the data transfer speed of its predecessor. However, the Raspberry Pi 5 uses a PCIe 3.0 interface, capable of delivering transfer speeds up to 3,500 MB/s.
M.2 SSDs come in three key types: B key, M key, and B+M key. However, later on, the B+M key was introduced, combining the functionalities of the B key and M key. As a result, it replaced the standalone B key. Please refer to the image below.

In general, M.2 SATA SSDs are B+M-keyed (can fit in sockets for B-keyed and M-keyed modules), while M.2 NVMe SSDs for PCIe 3.0 x4 lane are M-keyed.

About the Length¶
M.2 modules come in different sizes and can also be utilized for Wi-Fi, WWAN, Bluetooth, GPS, and NFC.
Pironman 5 supports four (PCIE2.0 / PCIE 3.0) NVME M.2 SSD sizes based on their names: 2230, 2242, 2260, and 2280. The “22” is the width in millimeters (mm), and the two following numbers are the length. The longer the drive, the more NAND flash chips can be mounted; therefore, the more capacity.

Booting from the SSD¶
After you install the SSD into the Pironman 5 and reboot, an NVMe disk connected through the PCIe should be visible. If you want to boot your Raspberry Pi from the SSD, you need to do some configurations and install an operating system on the SSD.
1. Configure boot from the SSD
To enable boot support, you need to change the
BOOT_ORDER
in the bootloader configuration. Edit the EEPROM configuration by:sudo rpi-eeprom-config --edit
Then, change the
BOOT_ORDER
line to be as below.BOOT_ORDER=0xf416
2. Install an Operating System on the SSD
There are two ways to install an operating system on the SSD:
Copy the system from the Micro SD to the SSD: This method is simpler, and your previous configurations can also be directly copied.
Install via Raspberry Pi Imager: If your Raspberry Pi uses a desktop version of the operating system, you can use an imaging tool (like Raspberry Pi Imager) to burn the system to the SSD. This example uses Raspberry Pi OS bookworm, but other systems might require installing the imaging tool first. However, this method requires you to reinstall the prionman module, and other configurations need to be redone as well.
Copying the System from the Micro SD Card to the SSD
Connect a display or Access the Raspberry Pi desktop through VNC Viewer. Then click Raspberry Pi logo -> Accessories -> SD Card Copier.
Make sure to select the correct Copy From and Copy To devices. Be careful not to mix them up.
After selection, click Start.
You will be prompted that the content on the SSD will be erased. Make sure to back up your data before clicking Yes.
Wait for some time, and the copying will be completed.
Installing the System with Raspberry Pi Imager
If your MicroSD card has a desktop version of the system installed, you can use an imaging tool (like Raspberry Pi Imager) to burn the system to the SSD. This example uses Raspberry Pi OS bookworm, but other systems might require installing the imaging tool first.
Select Pi 5.
Choose an operating system.
Select the NVMe SSD card.
After configuration, click Yes.
3. Restart Pironman 5
After restarting the Raspberry Pi, it will boot from the SSD.
sudo reboot
Note
If you are using the Raspberry Pi Imager to install the system on the SSD, you will need to reconfigure the setup after the Raspberry Pi boots up by following the steps to 5. Quick User Guide.
18650 Battery¶

VCC: Battery positive terminal, here there are two sets of VCC and GND is to increase the current and reduce the resistance.
Middle: To balance the voltage between the two cells and thus protect the battery.
GND: Negative battery terminal.
This is a custom battery pack made by SunFounder consisting of two 18650 batteries with a capacity of 2000mAh. The connector is XH2.54, 3P, which can be charged directly after being inserted into the board.
Features
Battery charge: 5V/2A
Battery output: 5V/5A
Battery capacity: 3.7V 2000mAh x 2
Battery life: 90min
Battery charge time: 130min
Connector: XH2.54, 3P
Over-discharge protection: 2.6V
Overcharge protection: 4.2V
Fan¶

Extermal dimension: 40*40*10MM
Weight: 13.5±5g/pcs
Life: 40,000 hours (room temperature 25°C)
Maximum Air Flow: 2.46CFM
Max.Air Pressure: 0.62mm-H2O
Accoustic Sound: 22.31dBA
Rated Input power: 5V/0.1A
Rated Speed: 3500±10%RPM
Operating Temperature: -10℃~+70℃
Storage Temperature: -30℃~+85℃
Home Assistant(Pi 4)¶
This section will guide you in installing the Home Assistant operating system on your Raspberry Pi. Please note that this process will result in the loss of all existing content on your Raspberry Pi system. It is important to backup your data before proceeding.
1. Install the Home Assistant OS¶
Required Components
Raspberry Pi 5B
A Personal Computer
A 16G Micro SD card
Note
To install Home Assistant OS and add some add-ons, 8GB of Micro SD card memory is not sufficient. It is recommended to use a 16GB Micro SD card.
Installation Steps
Visit the Raspberry Pi software download page at Raspberry Pi Imager. Choose the Imager version compatible with your operating system. Download and open the file to initiate installation.
A security prompt may appear during installation, depending on your operating system. For example, Windows might display a warning message. In such cases, select More info and then Run anyway. Follow the on-screen guidance to complete the installation of the Raspberry Pi Imager.
Insert your SD card into your computer or laptop’s SD card slot.
Launch the Raspberry Pi Imager application by clicking its icon or typing
rpi-imager
in your terminal.Within the Imager, click CHOOSE DEVICE and select the Raspberry Pi model from the dropdown list.
Click on CHOOSE OS, and finish select Home Assistant OS xx(xxxx) as shown in the images below.
Click Choose Storage and select the appropriate storage device for the installation.
Note
Ensure you select the correct storage device. To avoid confusion, disconnect any additional storage devices if multiple ones are connected.
Click Next. If your SD card currently has any files on it, you may wish to back up these files first to prevent you from permanently losing them. If thereis no file to be backed up, click Yes.
After waiting for a period of time, the following window will appear to represent the completion of writing.
2. Configuring Your Home Assistant¶
1. Enable the I2C Interface
This involves activating the I2C interface on your device.
Remove and then reinsert the SD card into your computer. Open the File Explorer and locate the SD card named
hassos-boot
.In the root directory, create a new folder named
CONFIG
.Within the
CONFIG
folder, make a subfolder titledmodules
.Turn on the display of file extensions in your settings.
Inside the
modules
subfolder, create a text file and rename it torpi-i2c.conf
. Confirm the extension change when prompted.Edit
rpi-i2c.conf
to include the following line:i2c-dev
Save and exit the file.
2. Setting Up WiFi
Now, let’s set up the WiFi connection.
Note
Skip this step if you prefer using a wired network connection.
In the
CONFIG
folder, create a new folder namednetwork
.Inside the
network
folder, create a text file and name itmy-network
(leave out the file extension).Enter the following configuration in the
my-network
file, substitutingMY_SSID
andMY_WLAN_SECRET_KEY
with your WiFi network’s details:[connection] id=my-network uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3 type=802-11-wireless [802-11-wireless] mode=infrastructure ssid=MY_SSID # Uncomment if your SSID is hidden #hidden=true [802-11-wireless-security] auth-alg=open key-mgmt=wpa-psk psk=MY_WLAN_SECRET_KEY [ipv4] method=auto [ipv6] addr-gen-mode=stable-privacy method=auto
Save and close the file.
3. Adjusting Configuration
In the
hassos-boot
directory, find and open theconfig.txt
file.Append the following settings at the end of the file:
dtparam=i2c_vc=on dtparam=i2c_arm=on dtoverlay=gpio-poweroff,gpio_pin=26,active_low=0 dtoverlay=gpio-ir,gpio_pin=13
Save and close the file.
4. Accessing Home Assistant
Eject the microSD card from your computer and insert it into your Raspberry Pi. Connect the power supply (and Ethernet cable, if applicable).
From your computer, go to homeassistant.local:8123
.
Initial setup of Home Assistant may take some time during first use.
5. Creating Your Account
Follow the on-screen instructions to create your user account. This is the account you’ll use to access the Home Assistant interface.
Proceed through the prompts to set your location and other preferences. You may be asked to install detected devices; you can choose to skip this for now by selecting FINISH.
3. Home Assistant Addon¶
Pironman U1 offers a Home Assistant addon, facilitating the use of Pironman U1 for Home Assistant users.
Note
The addon only supports direct installation of the Home Assistant system on Raspberry Pi, and does not support installing Home Assistant as a Docker container on a Raspberry Pi system.
For this scenario, please directly 1. Download and Install SPC.
Now we will install the Pironman U1 addon for Home Assistant. Choose one of the following two methods to add it.
1. Automatic Addition¶
Please click the button below to quickly add it.
After visiting the link above, a popup will prompt to open a page in Home Assistant, click Open link.
Then, you will be prompted to add the Addon. Choose ADD.
After a few seconds, the Pironman U1 addon will appear.
Then, start (or restart) the addon.
Now you can select these options, such as Start on boot to enable Pironman U1 to start when the system boots up. Or Show in sidebar to show the dashboard specially designed for Pironman U1 in the sidebar.
Instructions for Powering On and Off:
Power On: Press the button until the light turns green, indicating the system is powering on. You can then release the button.
Shutdown: Press and hold the button for 2 seconds until the light turns purple, then release. When the power button’s light begins to flash purple, the Raspberry Pi will receive a shutdown signal and proceed to shut down. The power button’s light will turn off once the shutdown process is complete.
Power Cut: If you haven’t configured software on the Raspberry Pi, or for other reasons, you can opt for a power cut shutdown. Press and hold the button for 5 seconds and turns red, indicating a direct power cut. Be cautious with this method as it may damage data.
2. Manual Addition¶
Alternatively, follow the steps below to install manually:
In Home Assistant, navigate to Settings -> Addons.
Navigate to the ADD-ON STORE tab.
In the top right corner, find and click on the Repositories button.
Type the repository URL:
https://github.com/sunfounder/home-assistant-addon-dev
, and click ADD. After adding the SunFounder repository, close the popup window.Click the menu button again, and click Check for updates.
After a few seconds, the Pironman U1 addon will appear at the end of the addon store. If not, try refreshing the page.
Enter the Pironman U1 addon and click INSTALL. This process may take a few minutes.
Then, start (or restart) the addon.
Now you can select these options, such as Start on boot to enable Pironman U1 to start when the system boots up. Or Show in sidebar to show the dashboard specially designed for Pironman U1 in the sidebar.
Instructions for Powering On and Off:
Power On: Press the button until the light turns green, indicating the system is powering on. You can then release the button.
Shutdown: Press and hold the button for 2 seconds until the light turns purple, then release. When the power button’s light begins to flash purple, the Raspberry Pi will receive a shutdown signal and proceed to shut down. The power button’s light will turn off once the shutdown process is complete.
Power Cut: If you haven’t configured software on the Raspberry Pi, or for other reasons, you can opt for a power cut shutdown. Press and hold the button for 5 seconds and turns red, indicating a direct power cut. Be cautious with this method as it may damage data.
4. View Data from SPC Dashboard¶
If you select the Show in sidebar option in the Pironman U1 add-on and then refresh the webpage, you will be able to open the Pironman U1 dashboard from the sidebar.
The Dashboard will include the following:
External: Displays the status of the external USB power (Plugged in or Unplugged), its voltage, current, and power.
Fan: Shows the fan status, mode, speed, and the current temperature of the Raspberry Pi.
You can manually turn the fan on or off and select different rotation modes for it.
Battery: Displays the battery’s percentage, charging status, voltage, current, and power.
When an external USB power source is plugged in, the battery is in charging mode, showing its voltage, charging current, and power.
When the external USB is not plugged in, the current and power are negative, indicating the battery’s output current and power.
Raspberry Pi Power: Displays the power supply to the Raspberry Pi (External or battery), its voltage, current, and power.
Storage: Displays the storage capacity of a Raspberry Pi, showing various disk partitions with their used and available space.
Memory: Shows the Raspberry Pi’s RAM usage and percentage.
Processor: Illustrates the Raspberry Pi’s CPU performance, including the status of its four cores, operating frequencies, and CPU usage percentage.
Network: Displays the current network connection type, upload, and download speeds.
You can also switch this page to a white mode.
5. Home Assistant MQTT Integration¶
Here, we will guide you through the essential steps required to set up MQTT (Message Queuing Telemetry Transport) within your Home Assistant environment. MQTT is a crucial protocol often used for IoT devices and home automation. By following these steps, you’ll seamlessly integrate MQTT into your Home Assistant system, allowing for efficient communication and control.
Since MQTT operates within your local network, it’s not limited to running Home Assistant on the same Raspberry Pi as the Pironman U1. If you have a separate Home Assistant server or Pironman U1 is running on a different system, you can still configure Home Assistant to monitor Pironman U1.
1. Installing MQTT on Home Assistant
Click the button to navigate to the Mosquitto broker homepage.
Click to INSTALL the Mosquitto broker.
After installation, click START.
Wait for it to start up, then check the log tab for errors. Logs do not auto-refresh, so you need to manually refresh. Successful startup logs should look like this:
2. Adding a Dedicated User for MQTT
Create a separate account specifically for MQTT access.
Click the Settings button, then select People.
Click ADD PERSON.
Enter a Name, and make sure to check Allow person to login.
Note
The name cannot be
homeassistant
oraddons
, as these are reserved usernames.If you can’t see the option to create a new user, ensure that Advanced Mode is enabled in your Home Assistant profile.
In the popup, enter a password, confirm it, and then click CREATE.
Finally, click CREATE again to finish adding the user.
3. Adding MQTT Integration
Navigate to Settings -> Devices & Services.
On the Integrations page, you should see the MQTT integration.
Click CONFIGURE -> SUBMIT -> FINISH. Afterward, you will see mqtt under Configured.
4. Configuring MQTT Using the Dashboard
To set up MQTT for Pironman U1, you have two options: configuring it through the dashboard or via the command line. We recommend using the dashboard for ease of use.
If you select the Show in sidebar option in the Pironman U1 add-on and then refresh the webpage, you will be able to open the Pironman U1 dashboard from the sidebar.
Click on the settings icon located in the upper right corner.
Here are some MQTT parameters you need to configure:
The default value for host is
core_mosquitto
. If your Home Assistant is on Pironman U1, leave it as is; it points directly to the Home Assistant’s MQTT plugin. If it’s on another Home Assistant server, enter that server’s hostname or IP.The default value for port is
1883
. You can leave this unchanged unless you’ve modified the MQTT broker’s settings.Fill in the
username
andpassword
you created earlier.
Then click on the TEST button next to MQTT to test the connection to the MQTT server. A checkmark (✔) will appear if the connection is successful. If it fails, you’ll see an error message: “Connection failed, Check hostname and port.” Make sure your MQTT Addon is running correctly.
You can now view data for Pironman U1’s battery, fan, and other data in the Overview.
Configuring MQTT via Command Line
If your Home Assistant is not installed on Pironman U1, you can configure MQTT using the command line.
Replace the placeholders in the following command with your desired values for host
, username
, and password
. Use the username
and password
you created earlier. Running this command will restart the service.
/opt/spc/spc_server \
--mqtt-host <hostname or ip> \
--mqtt-port 1883 \
--mqtt-username <username> \
--mqtt-password <passowrd> \
restart
After the service restarts, you can add Pironman U1’s sensors to the dashboard.
7. Appendix¶
Get the IP address¶
There are many ways to know the IP address, and two of them are listed as follows.
Checking via the router
If you have permission to log in the router(such as a home network), you can check the addresses assigned to Raspberry Pi on the admin interface of router.
The default hostname of the Raspberry Pi OS is raspberrypi, and you need to find it. (If you are using ArchLinuxARM system, please find alarmpi.)
Network Segment Scanning
You can also use network scanning to look up the IP address of Raspberry Pi. You can apply the software, Advanced IP scanner and so on.
Scan the IP range set, and the name of all connected devices will be displayed. Similarly, the default hostname of the Raspberry Pi OS is raspberrypi, if you haven’t modified it.
Install OpenSSH via Powershell¶
When you use ssh <username>@<hostname>.local
(or ssh <username>@<IP address>
) to connect to your Raspberry Pi, but the following error message appears.
ssh: The term 'ssh' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
It means your computer system is too old and does not have OpenSSH pre-installed, you need to follow the tutorial below to install it manually.
Type
powershell
in the search box of your Windows desktop, right click on theWindows PowerShell
, and selectRun as administrator
from the menu that appears.Use the following command to install
OpenSSH.Client
.Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
After installation, the following output will be returned.
Path : Online : True RestartNeeded : False
Verify the installation by using the following command.
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
It now tells you that
OpenSSH.Client
has been successfully installed.Name : OpenSSH.Client~~~~0.0.1.0 State : Installed Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent
Warning
If the above prompt does not appear, it means that your Windows system is still too old, and you are advised to install a third-party SSH tool, like PuTTY.
Now restart PowerShell and continue to run it as administrator. At this point you will be able to log in to your Raspberry Pi using the
ssh
command, where you will be prompted to enter the password you set up earlier.
PuTTY¶
If you are a Windows user, you can use some applications of SSH. Here, we recommend PuTTY.
Step 1
Download PuTTY.
Step 2
Open PuTTY and click Session on the left tree-alike structure. Enter the IP address of the RPi in the text box under Host Name (or IP address) and 22 under Port (by default it is 22).

Step 3
Click Open. Note that when you first log in to the Raspberry Pi with the IP address, there prompts a security reminder. Just click Yes.
Step 4
When the PuTTY window prompts "login as:", type in "pi" (the user name of the RPi), and password: "raspberry" (the default one, if you haven’t changed it).
Note
When you input the password, the characters do not display on window accordingly, which is normal. What you need is to input the correct password.
If inactive appears next to PuTTY, it means that the connection has been broken and needs to be reconnected.

Step 5
Here, we get the Raspberry Pi connected and it is time to conduct the next steps.
Copyright Notice
All contents including but not limited to texts, images, and code in this manual are owned by the SunFounder Company. You should only use it for personal study,investigation, enjoyment, or other non-commercial or nonprofit purposes, under therelated regulations and copyrights laws, without infringing the legal rights of the author and relevant right holders. For any individual or organization that uses these for commercial profit without permission, the Company reserves the right to take legal action.