Dev Diary: Mining Crypto on a Handheld Gaming Console and a Satellite TV Box 🎮📡
Or: How we taught a Rust miner to run on everything with a pulse
The Premise
What if your gaming handheld could mine crypto while you’re not playing RetroArch?
What if your satellite TV receiver — the one recording soap operas — could contribute to a blockchain between EPG updates?
We decided to find out.
PoCX is a Rust-based Proof-of-Capacity miner. Designed for desktops, ARM servers, even phones. But “designed for” ≠“limited to.” With stubbornness, zig, and a sprinkle of prayers, we got pocx_miner running on two very unlikely devices:
- Anbernic RG40XX H — $70 handheld
- Dreambox DM7080 HD — 2014 satellite DVR
🎮 Target #1: Anbernic RG40XX H
Specs:
- Quad-core ARM Cortex-A53 @ 1.5GHz
- 1GB RAM, MuOS (BusyBox Linux)
- Day job: Playing GBA games
The Easy(ish) One
Cross-compiling Rust → aarch64-unknown-linux-musl from Windows? Easy with zig + cargo-zigbuild. One command:
cargo zigbuild --release --target aarch64-unknown-linux-musl -p pocx_miner
Result: 3.9MB static binary, no dependencies. SCP → SD → run:
root@rg40xx:~$ ./pocx_miner --version
PoCX Miner 1.0.0-rc.10
Bug: Instant crash. BusyBox doesn’t support stat -c %D.
Fix: libc::stat syscall. Works everywhere. PR #23
Outcome: Mining PoCX in your pocket. Won’t win races, but fully autonomous.
📡 Target #2: Dreambox DM7080 HD
Specs:
- Quad-core BMIPS5000 @ 1.4GHz
- 2GB RAM, Linux 3.4
- Day job: Recording satellite TV
The Hard One
MIPS + Rust = headache:
- Tier 3 target → Rust nightly +
-Zbuild-std - No Docker, no WSL → zig scripts only
- Wrong endianness → switched to
mipsel-unknown-linux-musl - Wrong ISA → LLVM emits MIPS32r2, device is MIPS32r1 →
Illegal instruction
Hours of disassembly → 249 r2 instructions in standard library.
Fix:
-C target-feature=+mips32,-mips32r2,+soft-float
Combine with -march=mips32 on Zig linker → binary works:
root@dm7080:~$ /media/hdd/pocx_miner --version
PoCX Miner 1.0.0-rc.10
A satellite DVR. Mining crypto. In 2026.
đź§° The Recipe
Anbernic (AArch64)
cargo zigbuild --release --target aarch64-unknown-linux-musl -p pocx_miner
# 3.9MB static binary
Dreambox / MIPS32r1
cargo +nightly build --release --target mipsel-unknown-linux-musl -Zbuild-std -p pocx_miner
# 4.7MB static binary
PR #26 → anyone can build MIPS binaries on-demand.
đź’ˇ Lessons Learned
- Zig is cheat code for cross-compilation. Musl for all targets.
-C target-cpuâ‰-C target-feature. Old hardware needs both.- BusyBox ≠GNU. Avoid coreutils shell-outs.
- Static musl binaries = magic. Zero dependencies. Runs anywhere.
- PoC mining is perfect for weird hardware. Even 2014 MIPS32 can mine from a single disk.
🚀 What’s Next?
The Anbernic has an SD card slot and a battery. The Dreambox has a 2TB hard drive and runs 24/7. Both are now mining PoCX.
If it has a CPU and storage, it can mine. Now it’s your turn: try something crazy. Could your router, smart fridge, car, or smartwatch join the fun?
PoCX Framework is open source: https://github.com/PoC-Consortium/pocx
Posted Feb 15, 2026, 8:37 PM UTC