r/bitcoin_pocx•
JohnnyFFM

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:

  1. Anbernic RG40XX H — $70 handheld
  2. Dreambox DM7080 HD — 2014 satellite DVR

🎮 Target #1: Anbernic RG40XX H

https://preview.redd.it/in3msvygypjg1.jpg?width=3024&format=pjpg&auto=webp&s=6e0ad219d7d8ca0df8a9de36bcc9cecd7d92c2fb

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.

https://preview.redd.it/ztpnms4lypjg1.png?width=1780&format=png&auto=webp&s=f3c7479938a3f4691129ba39c5c8bb8fdf7f56bd

📡 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

  1. Zig is cheat code for cross-compilation. Musl for all targets.
  2. -C target-cpu ≠ -C target-feature. Old hardware needs both.
  3. BusyBox ≠ GNU. Avoid coreutils shell-outs.
  4. Static musl binaries = magic. Zero dependencies. Runs anywhere.
  5. 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

30
Loading comments…