|
Universal SBC Temperature & Voltage Health Check — Quick Reference Guide

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 / FieldMeaningNotes
rp1_adc → temp1RP1 chip temperature (near USB/PCIe)Not the main CPU temperature
cpu_thermalMain CPU temperature (most important metric)Focus on this one
rpi_volt → in0: N/A ALARMCritical warning — input voltage abnormal or undervoltage occurredSee Section 4
pwmfan → fan1Fan 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

ComponentIdle Safe TempLoad Safe TempThrottling StartsDanger Shutdown Temp
CPU< 50°C< 70°C~80°C85°C–100°C+
GPU (if present)< 55°C< 75°C~80°C85°C–100°C+
SoC/entire chip< 55°C< 75°C~80°C85°C–100°C+
NPU (if present)< 60°C< 80°C~90°C100°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, or VDD_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

BoardMinimum Power RequirementRecommended Power SupplyCable Requirement
Raspberry Pi 4/55V/3A USB-C5V/5A PD (official)e-marker 5A USB-C cable
NanoPi R5S/R6S5V/4A5V/5A+Short, thick 5A cable
Orange Pi 55V/4A5V/5A PDe-marker USB-C cable
Most ARM SBCs5V/3A5V/5AAvoid 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 sensors output

  • vcgencmd get_throttled returns 0x0 (Raspberry Pi), or check dmesg on 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

BoardPrimary Temp SensorPrimary Voltage SensorSpecial Notes
Raspberry Pi 5cpu_thermalrpi_volt in0Use vcgencmd; ALARM = undervoltage
NanoPi R5Sbigcore_thermalsimple_vin in0Multiple core/NPU temperature zones
Orange Pi 5soc_thermalaxp2101 in0Commonly uses AXP power management chip
Generic ARM boardthermal_zone0in0 or VDD_5VIf 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! 😊🐧🔌