Wes Ellis./ a personal notebook
Technology. Stories. Side projects.
A few things worth writing down.
← Back to Retro Tech

Retro Tech

A BC-250 Cyberdeck: The Build Spec for a Console-Board Desktop

An old expansion card with chips and gold contacts lying on a wooden table.

Part 11 of the thread The retro workbench

THE SHORT VERSION4 points
  • The plan: an AMD BC-250 board in a printed slim console case, with a 15.6" touch panel mounted on VESA 75x75.
  • It runs Bazzite with niri in three big-type columns, driven by keyboard and touch. No mouse, on purpose.
  • Cooling is the constraint, not wattage. The GDDR6 overheats first, so cooling goes in before the board ever powers on.
  • This is a spec, version 2. Nothing's printed yet, and the parts list priced out around $580 to $790 at the time.

The BC-250 is an odd bit of hardware: a board AMD built for crypto mining around a cut-down version of the PlayStation 5's APU. Six Zen 2 cores, 24 RDNA2 compute units, 16GB of GDDR6, and they turn up used for not much money. People have been turning them into small Linux gaming PCs.

I want to turn one into a cyberdeck. This post is the spec, version 2. It replaces an earlier luggable draft, and none of it is built yet. It's the plan, and we'll see how much of it survives contact with a 3D printer.

The idea

An all-in-one machine built on Arthrimus's AMD BC-250 Slim Console Style Case, remixed so a 15.6" touch panel either side-mounts to the console or the console hangs off the back of the panel on its VESA mount. It runs Bazzite with the niri window manager, laid out as three large-print columns, and you drive it with a keyboard and your finger.

The board

Item Detail What it means for the build
CPU / GPU 6x Zen 2 (~3.5GHz) + 24 RDNA2 CUs Plenty for niri, light gaming and local LLMs
Memory 16GB GDDR6, shared Runs hot; needs thermal putty and airflow
Storage M.2 2280 NVMe (PCIe 2.0 x2) A cheap Gen3 drive is fine
Video out DisplayPort 1.4 only, no HDMI Feed the panel through a DP to HDMI adapter
Network Gigabit Ethernet only Add a USB Wi-Fi/Bluetooth adapter
Power in 8-pin PCIe at J1000 Fed by the Flex ATX PSU
Thermals 220W TDP, ~235W peak, ~50W idle One 120mm fan plus putty
Video codec No hardware encode or decode The CPU handles video; doesn't matter for a desktop

The board cost about $180 on eBay when I wrote this, and the price was trending up.

Case, cooling and power

The case. Arthrimus's design is two printed shells joined by four printed PEG parts, with M3 heat-set inserts and countersunk M3 screws. The front panel has a power button and USB hub, and there are PCB files for the button board. It only supports a Flex ATX power supply, which is what keeps it slim. Two remixes help: mwasserman's adds a bigger PSU bay for the Apevia ITX-PFC500W, a direct power switch and a four-port USB front panel (with STEP files), and isaacalvex's adds alternate side panels, a USB 3.0 hub and a status LED. My own remix adds a VESA 75x75 pattern to the rear shell and a cutout for a fused AC inlet.

Warning

Print the case in ASA or PETG, never PLA. It's sitting next to a 220W board.

Cooling is one high-static-pressure 120mm fan (an Arctic P12 Pro) on the case's fan shroud, fresh paste on the APU, and thermal putty on the GDDR6 chips, because they're what overheats first. The board's fan header is a non-standard 4-pin server one, so the fan runs off a PWM splitter or the PSU. Keep a clear intake to heatsink to exhaust path, and don't seal the shell.

Power is a 500W Flex ATX PSU feeding 12V to the board's 8-pin and 5V to the panel. At a peak of about 235W, that's roughly 2A at 120V, so there's plenty of headroom. Mains comes in through a panel-mount fused IEC C14 inlet with a rocker switch, a short internal jumper to the PSU, and strain relief where the cord enters.

Warning

Don't hardwire or splice mains. Keep it modular with IEC connectors, and measure the exact inlet module you buy before cutting the shell. A common snap-in fused inlet needs a cutout of roughly 48 x 28mm.

Display, mounting and input

The panel is a 15.6" 1920x1080 IPS with 10-point capacitive touch and a 75x75 VESA mount. Video goes DP to HDMI, touch goes over USB, and power comes off the PSU's 5V.

The same 75x75 pattern works in both directions: the case can hold the panel, or the case can bolt onto the panel. Either way, gusset every boss into a wall or rib. A standalone boss on a flat panel snaps off, and that's the most common way these mounts fail. Leave a 4 to 6mm gap behind the panel for screw heads and cable bends.

Try this

Before modeling anything, hang the console behind the panel with an off-the-shelf 75x75 mini-PC sandwich bracket. It lets you check the ergonomics and cable runs for about $12, and then you bake what you learned into the rear shell.

Input is keyboard and touch, no mouse. In niri a tap focuses the column under your finger, natively, with no extra software. The keyboard handles text and niri's window hotkeys. I'm planning on a separate compact 60% mechanical board, which is about the same width as the panel.

Software: Bazzite and niri

Bazzite is the easiest base to get the GPU working. The board needs a recent kernel and Mesa 25.1 or newer, so avoid LTS distros. Install with nomodeset, then take it out after the first boot. These kernel arguments make the full 16GB usable:

rpm-ostree kargs --append=ttm.pages_limit=3959290 --append=ttm.page_pool_size=3959290
rpm-ostree kargs --delete=nomodeset

The Oberon GPU governor cuts idle power by around 20 to 30W; layer it with rpm-ostree and configure /etc/oberon-config.yaml. Then layer niri and reboot:

rpm-ostree install niri

The niri config sets up three columns at 640px each, full height, which leaves room for big type. Check the output name first with niri msg outputs; over DP to HDMI it's often HDMI-A-1.

output "HDMI-A-1" {
    mode "[email protected]"
    scale 1.0
}

layout {
    gaps 8
    center-focused-column "never"
    default-column-width { proportion 0.33333; }
    preset-column-widths {
        proportion 0.33333
        proportion 0.5
        proportion 0.66667
        proportion 1.0
    }
}

For bigger text, raise the font sizes in your apps and terminal, or bump scale to somewhere between 1.1 and 1.25.

Build order

Step What
1. Case Print and assemble the case and chosen remix; fit the board and the front panel PCBs
2. Cooling Paste, putty and the 120mm fan. Never power it up uncooled
3. Power Mount the PSU, add the fused inlet and internal jumper, strain-relieve the cord
4. Bench test Before closing it up: install Bazzite with nomodeset, confirm the GPU with vulkaninfo, add the kernel args and Oberon, layer niri
5. Panel Add the VESA pattern to the rear shell, or test with a sandwich bracket; route the cables
6. BIOS (optional) Only if you want it and accept the risk

The optional BIOS is TuxThePenguin0's, which sets VRAM to 512MB dynamic. Flashing can brick the board. Back up first and use a hardware programmer (a CH341A or a Pi Pico). The board runs fine on stock for a desktop, so I'll probably skip it.

Parts list

Part Notes
BC-250 board eBay
Flex ATX 500W PSU Apevia ITX-PFC500W fits the mwasserman bay
Arctic P12 / P12 Pro 120mm fan Plus a PWM splitter
Arctic MX-4 paste, GDDR6 thermal putty
NVMe SSD, 512GB to 1TB, Gen3
USB Wi-Fi/Bluetooth adapter, DP to HDMI adapter
15.6" 1080p 10-point touch monitor, 75x75 VESA
60% mechanical keyboard
Panel-mount fused IEC C14 inlet with switch Plus a soft right-angle NEMA 5-15P to C13 cord
Powered USB hub
M3x5x4 heat-set inserts, countersunk M3 screws
ASA filament (or PETG)
VESA 75x75 sandwich bracket Optional, for test-fitting
BIOS programmer (CH341A / Pi Pico) Optional

The whole thing came to roughly $580 to $790 at the time, depending on the panel and keyboard.

What changed from v1

v1 (luggable draft) v2 (this spec)
Form factor Luggable clamshell Slim console base plus VESA panel
PSU SFX Flex ATX, which keeps it slim
Cooling Two 120mm fans One 120mm fan
Panel 13.3" 15.6" with 75x75 VESA
AC inlet None Fused IEC inlet with switch

Where it stands

It's a spec. Before any final CAD I need the exact board outline and connector positions from the hardware documentation, though building on Arthrimus's STEP files inherits the board bay already. Then it's printing, the bench test, and finding out which parts of this plan were optimistic.

It's the newest thing on a bench that also has an eMac, an Optiplex GX280 and a Precision T7500 waiting their turns.

Sources I'm building from: