Doing a rebuild, and how to start from scratch

The small SATA SSD I used to build my BC-250 got quite full quite quickly and I wanted to get a bigger one, but the price is quite scary nowadays.

Browsing second hand items in the local CEX I saw a 1TB "M.2 SATA SSD" lurking at the back of the display for a decent price. I figured SATA is slower than NVME but almost certainly good enough given the BC-250 only does Gen2 speeds. When I paid they handed me this, which is actually a 1TB NVME Gen4 SSD, so I got a real bargain.

Also this meant it was time for a rebuild and I decided to write down the various tweaks to Bazzite I did in the process. This is all information from other people but is scattered around various GitHub pages and Discord so I'm going to try and link to everything useful here. I'll update it if I find other things.


BIOS Flashing

The default BIOS is not what you want for a gaming system, there are a couple of 'unlocked' images available and I would recommend with using v3.00, using this method. Beware lots of the pages are AI generated so it has some duff information in like the pinouts for the power connector, which caught me out, but this section is OK.


Installing Bazzite

Modern versions of Bazzite will just boot and install, only needing some minor tweaks afterwards. Download an image for a USB stick and flash that stick (16GB+) with Balena Etcher. When you do the download, select the following options.

  • Desktop
  • AMD (R4xx+ | AI)
  • KDE
The final option is whether you want to boot straight into Steam gaming mode and that is probably a good choice if that's the main use for the machine.

Enabling SSH

Many of these later tweaks are done in the terminal and it's very helpful to enable remote access over SSH, so go in to desktop mode from the power menu and open a terminal. Pop in the following...

sudo systemctl enable --now sshd

...you will now be able to log in remotely and do the rest of these setup steps.

NexGen-3D-Printing setup script

One of the very involved people on the Discord has come up with a script to do a set of optimisations and fixes that suit the BC-250 better than the Bazzite defaults. This is around swap size, zram and so on.

There are instructions for doing the all-but-essential GPU overclock in the document and you should work through them to set a level that works for you.

Cooler Control

You will almost certainly want to have some monitoring of temperatures and fans. There's a good section in this page on the subject. Essentially you need to install Cooler control from the terminal...
ujust install-coolercontrol
Beware lots of the pages are AI generated so it has some duff information in like the pinouts for the power connector, which caught me out, but this section is OK.

The first time you run Cooler Control it will tell you the commands you need to type in the terminal to enable its service.

Cooler Control can customize your fan speeds for different temperatures in a more flexible way than the basic BIOS settings, so set your fan to 100% in the BIOS then use Cooler Control to lower it from that. You generally want the "Pump fan" to be running 100% if the GPU gets to 70C but below that you can fiddle with the curve to be cooler or quieter.

ACPI

Bazzite by default doesn't handle the BC-250 ACPI states, again NexGen-3D-Printing has some instructions for fixing this. Even with this idle power efficiency is pretty poor and sleep doesn't really work.

CPU overclock

The main NexGen-3D-Printing script takes you through GPU overclocking but not CPU overclocking. Which is frankly less important but the instructions for this are in the same document as the ACPI info.

Heroic Launcher

If you have games in stores other than Steam, perhaps a library of free games from the Epic Games Store, then you can install these using the Heroic Launcher. Switch to Desktop Mode from the Power menu and it's in the "Bazaar" which is Bazzite's app store.

Look through the settings before you install any games, in there is a tickbox to "add to Steam" and this will make these other games appear in the Steam Launcher once you've added them using Heroic Launcher.

The very roundabout on/off switch mechanism

With a little circuit tested that latches on when the BC-250 starts and puts the server PSU into standby when it shuts down I still wanted to make the behaviour more "ATX-like" ie. you can also use the power button to ask the system to shut down.

There is a button on the faceplate of the BC-250 that can act as a shutdown or sleep switch depending on how you configure it in the OS. Sadly this isn't brought out on a header anywhere. Which means soldering directly to the PCB. I checked the BC-250 Discord and made up a little flying lead for this.

Some of the people on the Discord have been making quite complicated latching setups for doing this, some including microcontrollers, but I've opted for simple expedient use of a DPDT momentary button.

One side of the button is connected to my latching setup that turns the BC-250 on. The other side is connected to this flying lead on the BC-250 that asks it to shut down.

That's it.

Push for on, push for off.

This will also allow me to go with the decorative button switch I fancy for my case and I've designed a 3D printed mechanism that holds a brass coin and the actual switch. If I laser-engrave the coin and sink this flush in the front of the case it should look pretty snazzy.



Cardboard engineering

With no ATX compatible power switch and standby mechanism the BC-250 expects there to be a constant 12V at the GPU connector. This is slightly wasteful as the PSU is always on. There's a 'power switch' on the BC-250 you can use to turn it off and on, but it doesn't communicate with the power supply at all.

I quickly bashed together a little MOSFET based setup that puts the server PSU I have in standby. When the BC-250 is on it uses a feed from one of the headers to hold the PSU on but when it shuts down the PSU goes back into standby.

While I plan to make a wooden case I'm probably not going to be CNCing a back panel, it's out of sight so 3D printing will do. I improved on my original brackets and printed them on the Hackspace printer which produces better quality prints than mine do.

These brackets are designed to just screw to a wooden baseplate and hold everything firmly. The baseplate is going to be a bit of boring old plywood and then I intend to lower something more decorative over the top. Most of the gamers doing BC-250 builds are going for gamer type stuff and I quite fancy a 'steampunk steam deck' made of wood with brass accents.

The Hackspace got a fibre laser engraver recently so doing little embedded brass plaques etc. should be very possible but will mean learning to use our CNC machine. My woodworking skills simply aren't up to the chisel work to do it by hand.

Before I get ahead of myself though I need to make sure this arrangement isn't going to cook the BC-250. So it was time for some cardboard engineering and a heat soak test.

Nerdsniped into building a gaming rig

I haven't gamed since the Half-Life 2 era but every now and again I get the urge to play a computer game. This is frustrated by not having a computer with a meaningful GPU, which almost everything needs. 

Even before the recent LLM driven inflation I just couldn't justify the quite expensive exercise that building a gaming PC had become. Nonetheless I "banked" lots of games made free on the Epic Games Store thinking I might one day play them.

I think that time has come. This is because a friend at the Hackspace bought a BC-250.

Designed to work as a crypto miner with multiple boards in a large server chassis it's a single board computer built around a variant/cut-down version of the AMD APU in the Sony PS5. When the bottom fell out of the market for these because mining moved on then they ended up on AliExpress at a huge markdown. At one point they were available for a pittance, maybe £50 but as of now you can get them for £120-130 if you pick your moment. The 'sales' are frequent and the price spikes up and down.

What you get for this is...

  • CPU: 6x AMD Zen 2 cores @ ~3.5GHz
  • GPU: 24 RDNA2 Compute Units (1536 shaders)
  • Memory: 16GB GDDR6 shared memory
  • TDP: 220W (50W idle - 235W max load)
  • OS Support: Linux only (no Windows GPU drivers)
Nothing stellar but when a gaming PC or laptop can easily be £1.5k this is very tempting. You won't be playing brand new AAAA games in 4K, but you can play recent games for example Cyberpunk 2077 in 1080p.

The other thing that's moved the needle is the arrival of gaming on Linux as a thing people just do. Driven by Valve's work on the Steam Deck many many modern games just work, sometimes better than they do under Windows.

There are several Linux distros taking advantage of this Linux gaming surge, notably Bazzite which pretty much turns any generic machine into a Steam Deck. Bazzite supports the BC-250 well. With the addition of "Heroic game launcher" you can play Epic Games Store items as well as things from Steam. So that library of free games I've wanted to play is back on the table.

There are some inconveniences.

Obviously you've got to add an SSD but I was lucky enough to have a small one kicking around.

Also you need a PSU. An ATX one will do but you don't need most of the connectors. I've bought a small server PSU and plan to make a custom power lead although most people use small Flex-ATX ones. I had an old ATX PSU that will power it but it's too bulky for a tidy case build.

Most tiresome is the need to 'peel' the heatsink so you can fit a conventional cooling fan to replace the high pressure airflow that would have been in the server chassis. That's a fiddly job I spent an afternoon doing.

As it's very much a unique form factor you can't just buy a case, but there's a whole community of people designing cases mostly 3D printed. I intend to make a wooden case from scratch.

So far I've got Bazzite on, set it up on a table in a spaghetti wired fashion and proved to myself I can play some games.

More on this when I get to building the case. I suspect the first game I'll play is Half-Life 2 as it's a 'comfort blanket' and a true landmark in design. I need to ease back in slowly.

Why is this related to my various prop building shenanigans? It's not really, but also the BC-250 runs off just 12V not the full set of ATX PSU voltages. Which might make running a moderately powerful Linux machine with a GPU in a field off a lead acid battery a thing. I've not used an LLM as an interactive NPC-like object in a LARP but it has been done and this might get me the hardware to do it without relying on cloud services.

There's a lot of negativity about LLMs in LARP, especially around the replacement of artists and writers and I'd never do that but a set of offscreen low-importance NPCs in our sci-fi LARPs that people can interact with would be interesting. We implemented MU|TH|UR with a Telegram chat but keeping up with it kept one of the GMs very busy.