🔥 UNLOCK HIDDEN PERFORMANCE

Overclock your
uConsole.

Squeeze 15–30% more performance out of your CM4 or A06 module. Faster compiles, smoother desktops, better emulation — with tested profiles, thermal guidance, and battery tradeoffs explained.

20 min readUpdated Mar 2026CM4 & A06Free guide
Section 1
1

What overclocking does on the uConsole.

Impact

Your uConsole's CPU and GPU run at conservative clock speeds out of the box. The CM4's BCM2711 defaults to 1.5 GHz on the CPU and 500 MHz on the GPU. The A06's Allwinner H616 runs at similar conservative frequencies. These are safe for passive cooling — but they leave performance on the table.

Overclocking raises these clock frequencies, giving the CPU and GPU more cycles per second. The result: faster compilation, snappier UI rendering, smoother retro emulation, and less waiting during heavy workloads. The tradeoff is more heat and higher power draw.

Real-world gains you can expect:

  • 15–20% faster compile times (GCC, Rust, Go)
  • 10–15% smoother desktop and window management
  • 20–30% better retro emulation frame rates (N64, PSX, PSP)
  • ~25% faster file compression and decompression
SYSBENCH CPU BENCHMARK — BEFORE / AFTER
MetricStockSafe OCAggressive
CPU events/sec8471,0181,197
Events per thread211.7254.5299.3
Latency avg (ms)4.723.933.34
sysbench score3,3884,0724,788
Δ vs stock+20%+41%

⚠ Note: Results vary by silicon lottery and thermal conditions. Not every CM4 will hit the same clocks stably. Test your own unit carefully.

Section 2
2

CM4 overclocking.

Editing /boot/config.txt — the Raspberry Pi way

moderate
Impact

The CM4 uses the same BCM2711 SoC as the Raspberry Pi 4. Overclocking is done entirely through /boot/config.txt — the firmware reads this file at boot time and sets your clock speeds before Linux even starts.

Step 1: Open the config file

terminal — open config
sudo nano /boot/config.txt

Scroll to the bottom of the file. You'll add your overclock parameters in the [all] section, or create one if it doesn't exist.

Step 2: Understand the parameters

CONFIG.TXT OVERCLOCK PARAMETERS
ParameterDefaultDescription
arm_freq1500CPU frequency in MHz. Max safe ~2000.
gpu_freq500GPU core frequency in MHz. Max safe ~750.
over_voltage0CPU/GPU voltage offset. Range 0-6 (+0.025V each step).
force_turbo0Set 1 to disable dynamic clocking. Runs at max freq always.
temp_soft_limit60Start throttling at this temp. Max 70 (°C).
arm_freq_min600Minimum CPU freq when idle (power saving).

Step 3: Add a safe overclock profile

This is the community-recommended starting point. It gives a solid ~20% performance boost while remaining stable on most CM4 units with basic thermal management.

/boot/config.txt — Safe Overclock Profile
[all]
# ─── Pocket Forge Safe OC Profile ───
# +20% CPU, +20% GPU, moderate voltage bump
arm_freq=1800
gpu_freq=600
over_voltage=2

# Thermal protection
temp_soft_limit=70

# Keep dynamic clocking for battery life
# (CPU drops to arm_freq_min when idle)
arm_freq_min=600

Save with Ctrl+O, exit with Ctrl+X, then reboot:

terminal — reboot
sudo reboot

Recovery: if it won't boot

If your uConsole fails to boot after overclocking, don't panic. You have two options:

A.

Hold SHIFT during boot to enter recovery mode on Raspberry Pi OS. From there you can edit config.txt and remove your overclock settings.

B.

Remove the SD card and plug it into another computer. Mount the boot partition and edit config.txt directly. Comment out or delete the overclock lines.

⚠ Warning: Overclocking may void your warranty and can cause instability, data corruption, or reduced component lifespan if pushed too far. Always back up your data before changing overclock settings.

Section 3
3

A06 (Allwinner) overclocking.

Device tree overlays and sysfs frequency control

advanced
Impact

The A06 module uses an Allwinner H616 quad-core Cortex-A53 SoC. Unlike the CM4, there's no simple config.txt — the A06 uses device tree overlays and Linux kernel frequency scaling to control clock speeds.

The A06 has less overclocking headroom than the CM4. The H616 already runs close to its thermal limits at stock frequencies, and the Cortex-A53 cores don't scale as aggressively with higher clocks.

Check current frequency range

terminal — check CPU frequency range
# See available frequencies
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

# Check current frequency
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

# Check current governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Temporary frequency override

You can temporarily push the max frequency via sysfs. This resets on reboot — useful for testing before committing.

terminal — set max CPU frequency (temporary)
# Set performance governor (locks at max freq)
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# Check that it took effect
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

Permanent changes (advanced)

To permanently change the A06's frequency limits, you need to modify the device tree source (.dts) and recompile it, or apply a device tree overlay. This typically involves:

1.Decompiling the DTB: dtc -I dtb -O dts -o sun50i-h616.dts /boot/dtb/...
2.Editing the CPU OPP (operating performance points) table
3.Recompiling: dtc -I dts -O dtb -o sun50i-h616.dtb sun50i-h616.dts
4.Possibly recompiling the kernel with modified frequency tables

⚠ Recommendation: Unless you're comfortable recompiling kernels, stick to the governor-based approach. The performance gains on A06 from overclocking are modest (~10%) compared to the CM4 (~20-40%). The CM4 is the better module for performance tuning.

Section 4
4

Thermal management.

How hot does it get, and what to do about it

Impact

The uConsole has no active cooling out of the box. The aluminum shell acts as a partial heatsink, but there's no fan or dedicated thermal solution. This makes thermal management critical when overclocking.

Typical Temperature Ranges (CM4)
Idle — stock clocks
45°C
Load — stock clocks
60°C
Idle — overclocked
55°C
Load — safe OC profile
78°C
Load — aggressive OC (no cooling)
87°C
Load — aggressive OC (heatsink)
72°C

⚠ Throttle point: The CM4 begins thermal throttling at 80°C. Above this, the firmware automatically reduces clock speeds to prevent damage. At 85°C, more aggressive throttling kicks in.

Cooling modifications

Copper heatsink on SoC ($3–5)high impact

The most effective single mod. A small 14×14mm copper heatsink with thermal adhesive directly on the CM4's BCM2711. Drops temps 8-12°C under load. Look for heatsinks designed for the Raspberry Pi CM4.

Thermal pad to case backmedium impact

A 1mm thermal pad bridging the SoC heatsink to the aluminum back panel. Uses the entire shell as a heatsink. Drops another 3-5°C. Make sure the pad makes solid contact.

Mini fan mod (5V, 20mm)high impact

Some community members have fitted tiny 20mm 5V fans inside the case, powered from the GPIO header. Drops temps 10-15°C but adds noise and complexity. Not recommended unless you're pushing aggressive clocks regularly.

💡 Tip: Don't block the ventilation slots on the uConsole case. The case was designed with passive airflow in mind — even small gaps matter. If adding a thermal pad, make sure it doesn't prevent the case from closing properly.

Section 5
5

Monitoring temps & throttling.

vcgencmd, lm-sensors, and reading throttle flags

After overclocking, you need to monitor your temps to make sure you're not constantly throttling. Here are the key tools.

Quick temp check (CM4)

terminal — vcgencmd
# Current SoC temperature
vcgencmd measure_temp
# Output: temp=52.0'C

# Current clock speeds (verify OC is active)
vcgencmd measure_clock arm
vcgencmd measure_clock core

Throttle flag decoder (CM4)

terminal — check throttle status
vcgencmd get_throttled
# Output: throttled=0x0  (means: all clear)

The hex value is a bitmask. Here's what each bit means:

THROTTLE FLAG BITMASK
BitHexMeaning
00x1Under-voltage detected (now)
10x2ARM frequency capped (now)
20x4Currently throttled
30x8Soft temperature limit active
160x10000Under-voltage has occurred (since boot)
170x20000ARM frequency capping has occurred
180x40000Throttling has occurred
190x80000Soft temperature limit has occurred

Universal temp check (CM4 & A06)

terminal — sysfs thermal zone
# Works on both CM4 and A06
cat /sys/class/thermal/thermal_zone0/temp
# Output: 52000 (divide by 1000 = 52.0°C)

Install lm-sensors

terminal — lm-sensors setup
sudo apt install lm-sensors
sudo sensors-detect  # say YES to all prompts
sensors
# Output shows all detected temperature sensors

Live monitoring script

Run this while stress testing to watch temps in real time:

terminal — live temp monitor
# Simple watch loop — updates every 2 seconds
watch -n 2 '  echo "=== uConsole Thermal Monitor ===";   echo "";   echo "CPU Temp: $(cat /sys/class/thermal/thermal_zone0/temp |     awk "{printf \"%.1f°C\", \$1/1000}")";   echo "CPU Freq: $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |     awk "{printf \"%.0f MHz\", \$1/1000}")";   echo "Governor: $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)";   echo "";   vcgencmd get_throttled 2>/dev/null || echo "vcgencmd not available"; '
Section 6
6

Stability testing.

stress-ng, sysbench, and proving your overclock is solid

Impact

An overclock that boots doesn't mean it's stable. You need to run stress tests for at least 10 minutes (ideally 30+) to verify thermal stability under sustained load.

Install test tools

terminal — install stress tools
sudo apt update
sudo apt install stress-ng sysbench

CPU stress test with stress-ng

terminal — stress-ng (10 min burn-in)
# Hammer all 4 CPU cores for 10 minutes
stress-ng --cpu 4 --cpu-method matrixprod --timeout 600s --metrics

# More aggressive — also stress memory and cache
stress-ng --cpu 4 --vm 2 --vm-bytes 256M --timeout 600s --metrics

While this runs, open a second terminal and run the monitoring script from Section 5. Watch for temps above 80°C or throttle flags appearing.

Benchmark with sysbench

Run this before and after overclocking to measure your actual gains:

terminal — sysbench before/after comparison
# CPU benchmark — run this at stock AND overclocked
sysbench cpu --threads=4 --time=30 run

# Memory benchmark
sysbench memory --threads=4 --time=30 run

# Full test script — saves results for comparison
echo "=== STOCK BENCHMARK ===" > ~/oc-bench.txt
echo "Date: $(date)" >> ~/oc-bench.txt
sysbench cpu --threads=4 --time=30 run >> ~/oc-bench.txt
echo "" >> ~/oc-bench.txt
echo "Temp: $(cat /sys/class/thermal/thermal_zone0/temp)" >> ~/oc-bench.txt
cat ~/oc-bench.txt

If it crashes or freezes

Reduce arm_freq by 100 MHz (e.g., 2000 → 1900)
Lower over_voltage by 1 step (e.g., 4 → 3)
Make sure you're not running with force_turbo=1 (disables safety throttling)
Add a heatsink if you haven't already — thermals may be the bottleneck
Run stress-ng again for 10+ minutes after each change

✓ Stable OC checklist: 30 minutes of stress-ng without crash, temps staying below 80°C, no throttle flags (0x0), and sysbench scores consistent across multiple runs.

Section 7
7

Battery life impact.

More MHz = more watts = less runtime

Overclocking increases power consumption. Higher clock speeds need more voltage, and power scales roughly with the square of voltage — so each voltage step costs more battery than the last. Here's the real-world impact on the uConsole's dual 18650 battery pack:

Battery Life Under Mixed Use (WiFi on, 50% brightness)
Stock clocks (1.5 GHz, 0V offset)
~3.5 hours
Safe OC (1.8 GHz, +2 voltage)
~2.8 hours
Aggressive OC (2.1 GHz, +6 voltage)
~2.0 hours
Aggressive + force_turbo=1
~1.5 hours

The key insight: force_turbo=1 is the biggest battery killer. It disables dynamic frequency scaling, so the CPU runs at max clocks even when idle. Without it, the CPU drops to 600 MHz when idle — saving significant power.

Best of both worlds: on-demand governor

Keep your overclock settings but use the ondemand governor (the default). This gives you full OC speeds under load and minimum power at idle. Avoid performance governor unless you're benchmarking.

terminal — governor management
# Check current governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# Switch to ondemand (balanced — recommended)
echo ondemand | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# Switch to performance (max speed, max power)
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# Switch to powersave (battery saver, ignores OC)
echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# Make ondemand persist across reboots (add to rc.local)
echo 'echo ondemand | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor' |   sudo tee -a /etc/rc.local

💡 Pro tip: For the best balance, use the safe OC profile with ondemand governor. You get ~80% of the performance boost with only ~20% battery penalty. Our Toolkit includes an automatic governor switcher that toggles based on AC/battery state.

Section 8
8

Safe vs aggressive profiles.

Copy-paste configs for both approaches

Here are the two profiles we recommend. Start with Safe, run it for 24 hours of normal use, then consider Aggressive only if you have a heatsink installed.

recommendedSafe Profile
/boot/config.txt — Safe Profile (CM4)
[all]
# ─── Pocket Forge SAFE Overclock ───
# Tested stable on 90%+ of CM4 units
# ~20% performance gain, minimal risk

arm_freq=1800
gpu_freq=600
over_voltage=2

# Thermal guardrails
temp_soft_limit=70

# Dynamic clocking (saves battery when idle)
arm_freq_min=600
# force_turbo=0  (default, don't set to 1)
advancedAggressive Profile
/boot/config.txt — Aggressive Profile (CM4)
[all]
# ─── Pocket Forge AGGRESSIVE Overclock ───
# ⚠ Requires heatsink! Test thoroughly!
# ~40% performance gain, higher risk

arm_freq=2100
gpu_freq=750
over_voltage=6

# Higher thermal ceiling
temp_soft_limit=80

# Lock at max frequency (kills battery life)
force_turbo=1

# GPU memory split (more for GPU-heavy tasks)
gpu_mem=256
PROFILE COMPARISON
MetricStockSafeAggressive
CPU Frequency1500 MHz1800 MHz2100 MHz
GPU Frequency500 MHz600 MHz750 MHz
Voltage Offset+0.000V+0.050V+0.150V
Performance ΔBaseline+20%+41%
Idle Temp~45°C~50°C~55°C
Load Temp~60°C~72°C~82°C
Battery Life~3.5h~2.8h~2.0h
Heatsink Required?NoRecommendedYes
Stability RiskNoneLowModerate

Community recommendation: Start with the Safe profile. Run it for 24 hours of normal use. If it's stable and temps are acceptable, test the Aggressive profile with a heatsink installed. Never jump straight to Aggressive without a heatsink.

Skip the Manual Setup

Get the Toolkit with optimized overclock
profiles pre-configured.

The Pocket Forge Toolkit includes pre-tested overclock profiles for both Safe and Aggressive modes, automatic thermal monitoring with throttle alerts, a governor auto-switcher for AC/battery, and every optimization from all our guides. Flash and go in 15 minutes.

Pre-tested OC profilesThermal monitoringAuto governor switchBattery optimized30+ packages
Stay Updated

More guides are coming.

We're writing guides on i3 desktop setup, QMK keyboard firmware, GPIO projects, and more. Join the waitlist to get notified when they drop — plus early access to new tools.

>

Also check out our WiFi Fix Guide and Battery Life Guide

Your email is stored securely and used only for Pocket Forge updates. Unsubscribe anytime.