Worklog · 2026

Asteria

A 4-node DGX Spark AI cluster with dual MikroTik CRS504 switch fabrics.

Nodes
Nvidia DGX Spark 128GB Founders Edition
Fabric
2x 100GbE MikroTik CRS504

Up until early 2026 I was thinking of AI as just another power wasting fad such as blockchains, crypto and so on.

So what happened? Well the frontier models in early 2026 suddenly stopped behaving like hallucinating lunatics.

We had access to CoPilot at work since summer 2025 and it was a joke to use, thankfully in 2026 we got access to Gemini Enterprise that finally let us do proper time saving work, like correlate data between multiple 30-80MB Excel files. I mean I could have done it manually but instead of wasting a good afternoon or two it was done in 20 minutes. Progress, I started to become a beliver. In May/June CoPilot got upgraded to also offer GPT 5.6, I stopped using Gemini Enterprise at that point, as it was smarter and way less annoying to use.

My main PC has an RTX 3080 12GB, so I did what everyone else did, I loaded up ollama and some tiny model that just about could fit in there. I took it for a spin and quickly realized that I would need something better.

I started to research a decent AI workstation build, threadripper, dual 5090’s and 256GB RAM. Well RAMaggeddon had different plans as the RAM itself would have blown my entire budget. Time to look for other options, and after a lot of research I ended up on the Nvidia DGX Spark dev forums and was sold on a dual Spark cluster. The first price increase had just happened in the UK bumping them from £3669 to £3999. I cleared it with senior management (the wife) and a dual pack including the 200G DAC was soon ordered in end of April. One of the justifications for this was so I had something to play with after planned surgery that will have me off work for 2-3 months.

Golden bricks have arrived

The surgery got delayed so I started to play with the cluster in May. First model loaded was MiniMax M2.7 and I got both LibreChat and VSCode pointing to it. I was hooked.

The Sparks run hot so I started to design a shelf/cooling solution using FreeCAD to be MJF 3d printed using PA12S. Each unit is designed to hold 2 Sanyo Denki PWM blower fans, and while the units were off to be printed in India I came to the realisation I had picked OEM fans. Thankfully DigiKey sold them, just with a sexy 12 week lead time…

This is what my virtual stack of the Sparks on the coolers looked like:

FreeCAD dual Spark stack

And by the magic of MJF printing of PA12S in combination of vapour polishing and painting the final result looks better than the virtual concept:

3d printed dual Spark stack

With the prices heading in only one direction from here I decided to invest in another two Sparks before the end of June, lucky I did as they as of writing are 36% more expensive on average and the prices are going up at a steady rate.

DeepSeek v4 Flash and later DeepSeek v4 Flash 0731 became my go to models. I also discovered Hermes the AI Agent by Nous Research at this point and was hooked.

The fans finally arrived in September as did two more printed stands and fan control holders:

Fan installation

The fan controllers are from https://github.com/SasaKaranovic/OpenFan-Micro and they let me control each fan over WiFi and a simple API.

Fans and fan controllers in place

It’s a bit difficult to see but there is also a 1mm thick rubber gasket around the vent nozzle.

Cooling shelf fully assembled

And as a result I now had two 2-node clusters, both running DeepSeek v4 Flash 0731:

Two dual DGX Spark clusters

The Sparks have 2x 200G ConnectX-7 interfaces, however the NIC itself is limited to two sets of PCIe 5.0 x4 lanes for a total of 256G of bandwidth. As a result you can either run a single 100G, single 200G, or in my case 2x 100G.

If you are eagle eyed you can spot the small 3d printed brackets holding the stands in place, I’m not THAT brave to keep something this expensive a few mm from the edge of a desk.

Two dual DGX Spark clusters cabling

The reason for 2x 100G instead 1x 200G was simply because of switch availability. The MikroTik CRS804 can do 8x 200G with the correct and very expensive breakout cables, but it has a useless form factor and running some very noisy fans. The better option is the MikroTik CRS504 with 4x 100G, they use a third of the power and as such can be powered from a PoE++ switch, that I happened to already have for managing the Sparks. That Ubiquiti UniFi switch can be seen attached to the side of the desk leg.

First some more deliveries, 4 short (0.3m) and 4 really short (0.1m) QSFP28 DAC cables and two MikroTik CRS504 switches:

Switches and DACs

Then investigate the CRS504 guts, although I already had a good idea about size and stuff for the PCB before I placed the order, including the ability to remove the AC power circuitry.

CRS504 inside

Main PCB extracted for a proper measurement and planning session for a custom enclosure.

CRS504 main PCB liberated

With everything measured and planned a 3d model was made and sent for printing. It is designed for an 80mm Noctua fan to stay quiet:

CRS504 custom enclosure model

A week later two sets of 3d prints appeared.

CRS504 custom enclosure print

And some clear SLA prints that to act as light rods for the LEDs on the rear of the switch enclosures:

Clear SLA printed light rods

Shortly after the switch PCBs were transplanted to their new homes and the entire cluster was cabled up:

Cluster fully cabled

It is now end of October and the model loaded is DeepSeek v4.1 Flash 1017 served by SGLang.

This is a model that is utterly brilliant to work with, it is smart (763B parameters), and it is fast at 4-5.6k pre-fill and 75-120 tok/s decode with a single stream. KV cache can fit 8 full 1M contexts.

Desktop AI factory in action

My surgery finally happened in early October and I’m still alive and kicking. Not a bad environment to do the recover in when the body permits.