Single Board Computer Universal SBC Temperature & Voltage Health Check — Quick Reference Guide
**
For: Raspberry Pi 3/4/5, NanoPi (NEO/R2S/R4S/R5S), Orange Pi, Radxa, Libre Computer, and more**
🔥 1. How to Check Temperature (Universal Methods)
✔️ Method 1: Read /sys/class/thermal/ — Supported on All Linux SBCs
# Display all thermal zones
for zone in /sys/class/thermal/thermal_zone*; do
echo "$(cat $zone/type): $(($(cat $zone/temp)/1000))°C"
done
Example output:
cpu-thermal: 56°C
gpu-thermal: 52°C
soc: 54°C
✔️ Method 2: Use the sensors Command (if installed)
sudo apt update && sudo apt install lm-sensors -y
sensors
**
⚠️ Not all sensors will be displayed — it depends on kernel and hardware monitoring support.
✔️ Method 3: Raspberry Pi–Specific Command
# Built-in temperature query
vcgencmd measure_temp
# Example output: temp=56.2'C
✔️ Tip: Create a Universal Alias
echo 'alias sbctemp="for z in /sys/class/thermal/thermal_zone*; do echo \"\$(cat \$z/type): \$(($(cat \$z/temp)/1000))°C\"; done"' >> ~/.bashrc
source ~/.bashrc
sbctemp
📊 2. Interpreting sensors Output — General Guide
Your Raspberry Pi 5** example output:
rp1_adc-isa-0000
Adapter: ISA adapter
in1: 1.48 V
in2: 2.42 V
in3: 1.29 V
in4: 1.31 V
temp1: +50.8°C
cpu_thermal-virtual-0
Adapter: Virtual device
temp1: +56.2°C
rpi_volt-isa-0000
Adapter: ISA adapter
in0: N/A ALARM (LCRIT)
pwmfan-isa-0000
Adapter: ISA adapter
fan1: 21 RPM
🔍 What Each Field Means:
| Sensor / Field | Meaning | Notes |
|---|---|---|
rp1_adc → temp1 | RP1 chip temperature (near USB/PCIe) | Not the main CPU temperature |
cpu_thermal | Main CPU temperature (most important metric) | Focus on this one |
rpi_volt → in0: N/A ALARM | Critical warning — input voltage abnormal or undervoltage occurred | See Section 4 |
pwmfan → fan1 | Fan speed (if using a fan HAT or active cooling) | 21 RPM = fan not spinning or extremely slow |
**
📌 “ISA adapter” or “Virtual device” are standard labels from lm-sensors and do not represent actual ISA bus devices — they simply indicate the sensor is integrated within the SoC or accessed directly.
🌡️ 3. Safe Temperature Ranges — General SBC Guide
| Component | Idle Safe Temp | Load Safe Temp | Throttling Starts | Danger Shutdown Temp |
|---|---|---|---|---|
| CPU | < 50°C | < 70°C | ~80°C | 85°C–100°C+ |
| GPU (if present) | < 55°C | < 75°C | ~80°C | 85°C–100°C+ |
| SoC/entire chip | < 55°C | < 75°C | ~80°C | 85°C–100°C+ |
| NPU (if present) | < 60°C | < 80°C | ~90°C | 100°C–115°C |
✅ Your Raspberry Pi 5 at 56.2°C is within the normal range**, perfectly safe even under moderate load. 🚨 If temperature > 80°C → check cooling (heatsink/fan), ambient temperature, or case ventilation.
⚡ 4. Voltage Monitoring — Critical for System Stability
✔️ Key Points to Observe:
-
Main input voltage — usually labeled
in0,VIN, orVDD_5V -
Should maintain ≥ 4.90V at idle, ≥ 4.75V under load
-
ALARM (LCRIT) = Undervoltage detected — a serious issue!
❗ Raspberry Pi 5 Example:
rpi_volt-isa-0000
in0: N/A ALARM (LCRIT)
➡️ This means:
-
The voltage sensor reading failed (possibly a driver/kernel issue)
-
Or an undervoltage event occurred recently and the alarm has not cleared
-
Use the following command for further diagnosis:
# Raspberry Pi specific: check if throttling or undervoltage has occurred
vcgencmd get_throttled
Example:
$ vcgencmd get_throttled
throttled=0x50000
➡️ If the value is not 0x0, refer to the official documentation: https://www.raspberrypi.com/documentation/computers/os.html#get_throttled
Common flag values:
-
0x50000= Currently undervolted + currently throttling -
0x50005= Undervoltage/throttling occurred both in the past and currently
✔️ Testing Voltage Under Load
sudo apt install stress -y
watch -n 1 'sensors | grep in; vcgencmd get_throttled'
# In another terminal, run:
stress --cpu 4 --timeout 30s
🔌 5. Power Adapter Recommendations — General SBC
| Board | Minimum Power Requirement | Recommended Power Supply | Cable Requirement |
|---|---|---|---|
| Raspberry Pi 4/5 | 5V/3A USB-C | 5V/5A PD (official) | e-marker 5A USB-C cable |
| NanoPi R5S/R6S | 5V/4A | 5V/5A+ | Short, thick 5A cable |
| Orange Pi 5 | 5V/4A | 5V/5A PD | e-marker USB-C cable |
| Most ARM SBCs | 5V/3A | 5V/5A | Avoid long/thin cables |
**
✅ Always use a wall-outlet power adapter — never power from a computer USB port.**** ✅ Avoid using USB hubs or extension cables.**
🛠️ 6. Cooling & Fan Recommendations
-
Passive heatsinks: suitable for light loads
-
Active fans: recommended for sustained high loads, enclosed cases, or high-ambient-temperature environments
-
Fan speed (
fan1: 21 RPM) — if close to zero, check:
Fan wiring/power
- PWM control (may require a dtoverlay or fan service)
Enabling fan control on the Raspberry Pi 5 (edit /boot/firmware/config.txt):
# Enable POE fan
dtoverlay=rp5-poe-fan
# Or a generic PWM fan
dtoverlay=pwm-fan
📈 7. Professional Monitoring Scripts (Universal Version)
🔄 Real-Time Monitoring (Temperature + Voltage + Throttle Status)
watch -n 2 '
echo "=== SBC Health Status ===";
[[ -x $(which sensors) ]] && sensors | grep -E "(temp|in|RPM)" | grep -v Adapter;
[[ -f /sys/class/thermal/thermal_zone0/temp ]] && echo "CPU: $(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))°C";
[[ -x $(which vcgencmd) ]] && vcgencmd get_throttled;
echo "=== Warning thresholds: >80°C | Voltage/dev/null | grep cpu || echo "N/A"), $(sensors 2>/dev/null | grep in0 || echo "Vin: N/A")" >> ~/logs/sbc_health.log
sleep 10
done
✅ 8. SBC Health Status Final Checklist
-
CPU temperature under load < 70°C (ideally < 60°C)
-
No “ALARM” in
sensorsoutput -
vcgencmd get_throttledreturns0x0(Raspberry Pi), or checkdmesgon other platforms for throttling records -
Input voltage under load ≥ 4.75V
-
Using a quality power supply + cable
-
Good cooling (heatsink/fan/case ventilation)
-
If a fan is installed, speed should be > 500 RPM
🧩 9. Board-Specific Notes
| Board | Primary Temp Sensor | Primary Voltage Sensor | Special Notes |
|---|---|---|---|
| Raspberry Pi 5 | cpu_thermal | rpi_volt in0 | Use vcgencmd; ALARM = undervoltage |
| NanoPi R5S | bigcore_thermal | simple_vin in0 | Multiple core/NPU temperature zones |
| Orange Pi 5 | soc_thermal | axp2101 in0 | Commonly uses AXP power management chip |
| Generic ARM board | thermal_zone0 | in0 or VDD_5V | If sensors shows nothing, check /sys/class/hwmon/ |
📌 We recommend saving this guide as your universal SBC health check manual!
Whether you’re using a Raspberry Pi, NanoPi, Orange Pi, or any other Linux single-board computer, this guide will help you effectively monitor, understand, and maintain optimal temperature and power conditions.
Keep your SBC cool, well-powered, and running stably! 😊🐧🔌