work / 2026
Ronin: A BC250 Desktop with a Front Panel
The Computer They Didn't Make
89-second unofficial Voron thought experiment. Current CAD, Matchstick lighting and an instrumental score; no Voron endorsement.
Cinematic commercial
The original cinematic film, with its calm-audio revision. This earlier design uses the previous materials and ring-and-foot-strip lighting.
Preliminary CFD — Revision C
The complete 48-second airflow animation. It replays a frozen computed field; the model needs refinement and does not predict temperatures.
Officially Ronin: a BC250 desktop with an animated ESP32-P4 panel and saved touch controls. The first LED adapter PCB is ordered, and the CAD now includes it alongside the NVMe mount and extension. Build it, remix it, and make it your own.
Build and remix
Build it, remix it, and make it your own. Ronin is a rapidly evolving work in progress, so the CAD, parts list and build steps may change. If you have questions, feel free to reach out.
Updated October 6, 2026. The project is officially Ronin. The first ESP32 LED adapter PCB is ordered and modeled in the assembly, which also now shows the NVMe extension board, two printed mounts and its ribbon-cable route. Read the PCB, storage and harness update. The tested Windows display controls, films, preliminary CFD report and draft manual remain available.
I had a BC250 board and wanted to turn it into a desktop for managing my networked AI agents. The project grew into two connected builds: a case designed around the board, and a small front display that can show what the host is doing without taking over the main screen.
The machine internals work, and cooling has had an initial practical check. The software and resource display are set up. Gamepad startup is unfinished, and the enclosure has not been fabricated. The first custom LED adapter PCB is ordered and awaiting arrival and bench checks.
The films and earlier studio images were rendered from the CAD snapshot used for each release. The new adapter images use its ordered fabrication layers and board geometry. The desk scenes combine Ronin and official Voron V0.2r1 CAD with generated room and person backgrounds. They show the proposed case, not a fabricated enclosure or a tested CAD workflow running on the BC250. The finished case will need its own thermal tests. The commercial has no Voron endorsement.
The cost of making one
About $375 has gone into the project so far, including the filament needed for the case. The sheet-metal backbone is estimated at $275 for a single unit. That put the expected total at roughly $650 when those figures were recorded. The first assembled LED-adapter PCB order is an additional cost and is not included in that earlier estimate; a new complete build cost is still to come.
For a batch of at least five machines, my target is to cut the sheet-metal cost by at least 60%, from $275 to about $110 or less per piece. That reduction applies only to the metal part. It is a target, not a confirmed production quote.
A case around the actual parts
The design uses a sheet-metal backbone, removable magnetic covers, and untinted transparent PCTG filament for the printed panels. The layout accommodates the BC250, cooling hardware, an SFX power supply, storage, antennas, and the touchscreen at the base. The repository includes the SolidWorks assembly and 45 part files, plus neutral CAD files and a backbone flat-pattern DXF.
The Blender scenes retain the component geometry for the lighting studies and editable films. They show the covers' appearance and where light escapes. Physical fit and cooling still need testing after fabrication.
Twenty RGB LEDs, in their actual CAD positions
The current assembly uses two Rainbow on a Matchstick boards by Blamm, with ten addressable RGB LEDs each and matching printed diffusers. These twenty LEDs are the case's only auxiliary RGB lighting. The earlier auxiliary rings and foot strip have been removed. The display has its own backlight, and the main power button has a fixed neutral-white ring as its integral power indicator, independent of the RGB arrays.
The new renders use the boards' positions from the updated SolidWorks assembly. The PCB and metal backbone block direct light, while gaps, perforations and the printed parts let diffused light escape. White, cyan, magenta, mint and rainbow shots use the same untinted material. The rendered brightness is an artistic choice, not a measured prediction of LED output.
Clear filament does not make an FDM part look like glass. The material is 3D-Fuel transparent PCTG, rendered with a frosted finish and visible 0.20 mm layers. The RGB LEDs supply the panels' color. I prefer upright panel printing where practical. The large rear cover still needs a print-orientation or split decision.
The first Ronin LED adapter PCB is ordered
The RONIN ESP32 LED ADAPTER / REV A is a compact, 44 × 34 mm board designed to separate LED power from display power. The display stays powered by USB. A SATA power harness supplies the adapter, which provides protected LED power and translates two display data signals from 3.3 V to 5 V.
This build uses V1.0 Rainbow on a Matchstick boards, without daisy-chain output connectors. Each ten-LED board gets its own data channel from the adapter. That gives the future firmware twenty individually addressable pixels across two channels; it does not require a board-one-to-board-two data cable.
Both outputs share a manual 5 V / 12 V selection. These Matchsticks must use 5 V. The 12 V option is intended for compatible 12 V addressable lighting in another configuration, not for these boards. Voltage selection changes LED power, not the 5 V data-signal level. It is not automatic voltage detection.
The render uses the ordered board artwork and the current CAD component bodies, with simplified IC and fuse package bodies. The 5 V shunt shows the intended setup, not a confirmed factory assembly.
The PCB is ordered and has been added to the current SolidWorks assembly. It has not arrived or passed electrical, thermal or installed-fit tests. Physical LED control also remains unfinished. The public update includes renders and connection guidance; the PCB source, Gerbers and assembly files are being held back for now.
Building the harness, one checked connection at a time
The new route is display → adapter → two separate Matchstick leads. A fourth harness brings SATA power to the adapter. The adapter's JST VH power header is not a native SATA socket; a correctly wired cable joins the PSU's SATA connector to that header.
The adapter labels its connections +5 / G / +12 at the power input, A / B / 3V3 / G at the display input and D / V / G at each LED output. These labels describe electrical nets. A mating plug viewed from its wire-entry side can appear reversed, so the final cavity map must be checked against the physical connector before crimping.
The draft crimping and harness guide covers choosing matching housings and contacts, checking wire size, making open-barrel crimps, testing retention and checking every connection with a meter before power. It also separates confirmed adapter pin assignments from the display-side mating parts and harness dimensions still awaiting physical checks.
The finished loom must not connect SATA LED power to the display's USB supply. Both devices need the intended common ground and a verified display-side data connection. The first powered check will use one Matchstick at low brightness, then the second, with power sequencing and temperatures checked before installation. Cable lengths and tie points need measuring in the assembled case; the fan corridor, heatsinks and removable-cover paths must stay clear.
Specific parts, and the people behind them
- Lighting: Rainbow on a Matchstick by Blamm, two ten-LED boards.
- Power adapters: Mosfet.Party's EPS Power Adapter and PS_ON adapter. The EPS board distributes power to the BC250 connectors. The PS_ON board handles the PSU-enable signal. Follow the designers' wiring instructions when building.
- Fans: two ARCTIC P9 PWM PST 92 mm fans.
- Fan shroud: the single 92 mm fan-shroud remix is based on MandicReally's CAD. The credit applies to that part only.
- Storage and PSU: the existing build uses a 1 TB Sabrent Rocket Gen4 NVMe SSD and an Apevia 500 W SFX supply. The SSD's product name does not imply a Gen4 host link.
- APU cooling: a UTLgameng low-profile cooler, with the stock heatsink reused in three sections as described in the original build write-up.
NVMe mounting and the extension route
The current SolidWorks assembly now shows the relocated 2280 NVMe SSD, its extension board, two printed extension mounts, and a modeled ribbon cable. The drive is placed in the intended main-fan airflow path. The cable model makes the proposed route visible rather than leaving it to guesswork during assembly.
This update documents the new local assembly. The public CAD download remains an earlier snapshot while the PCB model is held back. The extension is a layout change, not an upgrade to the BC250's host-link generation. Printed fit, connector access, screw lengths, actual cable bend limits and clearance from fans, heatsinks and magnetic covers still need checking on the build. Storage link stability and sustained-load temperatures will need testing with the real cable installed. The new PCB and cable routing also need to be represented in a later CFD revision; the existing study remains preliminary.
Four USB ports sit on the right side, and magnetic covers are designed to make access easy. The M.2 splitter layout targets storage plus a Wi-Fi 7 / Bluetooth LE 5.3 module; the radio's exact identity and host compatibility tests still need documenting.
The rear cover's hexagonal vent pattern gets its own close-up in the film. Bestagons, naturally.
The ESP32-P4 display is intended to control the two RGB boards as well as provide the local resource interface. Working USB-serial resource monitoring is documented below; the revised physical lighting and control integration remain to be done.
A first look at the airflow
Read the complete CFD Revision C report, including all five figures, the diagnostic tables, methods and limits. The full animation is the third video above, after the Voron commercial and the calm-audio cinematic film. Download the original CFD evidence bundle.
I have started a CFD study to see where air from the two P9 fans travels through the case. Revision C accounts for the solid outer faces of the PCB heatsinks and the direction of their vertical fin channels. It also follows the route behind the backbone to the rear VRAM heatsink, and examines exits around the exposed APU cooler and through the top and rear cover vents.
This is rough CFD, not a cooling-performance result. The model needs updated geometry and a finer mesh around the fin channels, small vents and narrow rear passage. Some fin dimensions are estimates, the calculation has not met its convergence targets, and the optional P12 Slim is not included. The final cable routing and filter arrangement also need to be represented. No chip temperatures or safe overclock have been established by this study.
The diagrams overlay computed paths on the CAD. They help review routing and find places to investigate. Individual fins are not resolved by the current mesh. The heatsink channels use an approximate directional resistance, and the narrow rear corridor is especially sensitive to mesh refinement.
The current calculation gives net outward flow at both vent groups, with small local inward patches. The numbers shown in the figure are provisional solver diagnostics and may change substantially as the model improves. The APU exit analysis uses a projected section outside the enclosure; it does not isolate flow through the cooler. The study's animation replays a frozen flow field rather than simulating changing temperatures over time.
Final cooling decisions need a more complete model and sustained-load temperature and fan-speed measurements on the assembled case. The present study helps choose what to check next.
Linux setup
Several Linux distributions are options for the BC250. Bazzite and Arch-based systems such as CachyOS are my preferred starting points because they have dedicated BC250 community guides and tooling. My current build uses Bazzite, and the manual uses Bazzite-Deck / Steam Gaming Mode as its example. Other distributions need compatible kernel and Mesa versions, along with the appropriate board configuration.
The resource display
The front panel uses an Elecrow CrowPanel Advanced ESP32-P4 touch display at 800 × 480 pixels. A companion program on the computer sends CPU load plus memory and disk usage over USB serial. Windows CPU temperature is optional through LibreHardwareMonitor.
The background is an animated ronin and onsen scene. Day and night each have a roughly 20-second loop; separate clips handle sleep and wake. Each clip retains its own audio. The player lets transition audio finish over the following idle scene instead of cutting it off at the video boundary.
Measured playback after the media update was about 10 fps. The larger set took about 47 seconds to load at startup and left roughly 4.7 MB of PSRAM free. Those limits require compressed frames at a fixed frame rate, stored locally on the card. The display does not stream live desktop video.
The revised film uses the display's installed day animation, with the resource-panel layout and LVGL fonts reconstructed from the firmware source. Its resource fields show the real "--" startup/offline placeholders. A short piece of the loop's original audio plays in sync with the screen, quietly under the instrumental score. Older static and lifestyle stills keep the earlier GUI reference artwork.
An October 3 hardware check confirmed live readings on the physical panel through UART0 USB serial, with Windows temperature supplied by LibreHardwareMonitor. On October 4 I installed the first paired firmware and companion update. It identifies the panel and its supported controls before enabling them, and waits for the panel to acknowledge each command. Physical tests confirmed that Sleep/Wake change the display scene and Mute/Unmute control its scene audio while telemetry continues.
These sleep controls affect the display, not the host computer. Increment 3 was installed as an application-only firmware update, preserving the SD animations and their audio. It adds the menu and action pages below while keeping resource readings running. The Windows laptop is the first test host; physical Linux testing will follow on the reassembled BC250.
Native menu and saved action pages
The panel's menu opens Resources, Actions, the animated Scene, sound controls, display Sleep and Settings. Local scene and sound controls remain usable without a host connection. Actions asks the connected companion to send a profile picker, so a saved page can be selected on the panel without opening the desktop editor each time.
The first Applications page has this arrangement:
| Row | Left | Middle | Right |
|---|---|---|---|
| Top | SolidWorks | Steam | Claude |
| Bottom | PrusaSlicer | OBS | Codex |
Each tile refers to a reviewed target on the current host. A short tap acts on release. A held touch times out after two seconds; a cancelled or lost release does not run an action. Input starts disabled for each session. Home returns to the native menu and cancels the active action page.
The current Windows display-button setup has passed user testing. Physical checks confirmed that the SolidWorks, Steam, Claude, PrusaSlicer, OBS and Codex buttons bring their already-running programs forward without opening duplicates. SolidWorks and PrusaSlicer launches and the Home return were also checked.
On Windows, a closed app can now be launched with an eight-second startup deadline for finding its own window. If the window appears, the companion makes one focus request. Leaving the action context or disconnecting cancels the wait. A closed OBS launch-and-focus test passed on the Windows host. Other programs' first-launch behavior and Linux desktop focus still need their own tests.
Display roadmap
Manual profile selection and reviewed touch actions are implemented. Automatic selection by active application or display context remains future work. Other unfinished integrations are:
- Voice companion: use the panel's onboard microphone and amplified outputs for external speakers as the listening and speaking interface for a companion. The complete voice workflow still needs implementation.
- ARGB controller: control the two ten-LED Rainbow on a Matchstick boards from the touch interface, with colors and effects for all twenty LEDs.
- Gamepad wake of the host: use the controller to wake or start the BC250. Display connection-wake experiments are separate; they do not yet operate the host's power signal.
- Context-aware shortcut pages: switch profiles according to the active program or screen. Current pages are selected manually; held keyboard shortcuts and broader script integrations still need their own work and testing.
The manufacturer audio lesson documents recording and speaker playback hardware. The current Bluetooth work demonstrates scanning/pairing experiments, rather than reliable host wake or controller handoff. The working action pages and scene audio do not provide an AI voice session or operate the host power signal.
The Windows/Linux companion app
Linux is the primary platform, starting with Bazzite on the BC250. Windows and Linux use the same Ronin companion source and display protocol. The Windows laptop supplies the current physical tests; Linux pure-code and loopback tests have passed, while its desktop, hardware and Gaming Mode checks are still ahead.
Saved named profiles describe the page layout and button IDs. They can be exported without carrying executable paths or authorization to run them on another computer. Each host keeps its own reviewed targets. Missing applications stay unavailable; a SolidWorks label does not imply a native Linux SolidWorks installation.
The Connection and Monitor tabs keep firmware identification, display Sleep/Wake, scene-audio Mute/Unmute and live host readings in the same app. Windows CPU temperature can come from LibreHardwareMonitor. Only one program owns the USB connection, so close the earlier resource helper before connecting the Ronin companion. Starting a sensor web server alone does not send readings to the display.
The optional Bitfocus Companion integration remains a separate counter proof. Normal manual profiles use the Ronin app directly, with a guarded handoff between the two sources. Elgato software is not required.
The app is still a local prototype without a finished installer or automatic startup service. Its LED-scene and agent-setting editors save local configuration only. Physical Matchstick output, gamepad host wake and the AI voice portal remain unfinished. The earlier resource helper is retained in the repository; it is not the new companion download.
The things that needed fixing
The first large media transfer rejected a packet and stopped. The uploader and receiver gained per-packet CRC32 checks, bounded retries, a larger receive buffer, and a larger receiver stack. All eight video and audio assets then transferred and passed SHA-256 verification.
The supplied sleep and wake videos also ended in black footage while their audio continued. Trimming the picture and keeping the full audio avoided an unnecessary black-screen pause. Timing playback against elapsed time kept slow rendering from stretching the transition.
Windows temperature reporting took another detour. The installed monitor's WMI interface returned an invalid-namespace error. Its local HTTP feed worked, but some readings arrived as strings with units. The companion needed to parse those values and reject sensors such as distance-to-throttle that are not the CPU temperature itself.
Build status
| Area | Current state |
|---|---|
| Machine internals | Working. Initial cooling check complete |
| Software and resource display | Live USB readings, SD scenes/audio and native menu installed. Display Sleep/Wake and Mute/Unmute physically tested on Windows |
| Companion app | Shared named profiles and release actions implemented. Current Windows button setup user-accepted, including all six existing-app focus outcomes and a closed OBS launch-and-focus test. Other first-launch cases pending. Linux desktop/hardware tests and installers pending |
| Cooling analysis | Rough CFD includes capped PCB heatsinks, rear VRAM route and top/rear/APU exits. Geometry, mesh and physical validation still need work |
| Enclosure | CAD and renders available. No case parts manufactured yet |
| LED layout and harness | Two V1.0 ten-LED Matchsticks; independent adapter outputs replace the earlier daisy-chain plan. Draft crimping guidance available; mating parts, lengths and physical tests pending |
| LED adapter | Rev A PCB ordered and modeled in the assembly. Awaiting delivery, fit, electrical and thermal checks; PCB/manufacturing files held back for now |
| NVMe extension | Relocated 2280 SSD, extension board, two printed mounts and ribbon route in current CAD. Physical fit, cable bends, link stability and cooling pending |
| Gamepad startup | Bluetooth experiments, not a completed PC power-on solution |
| RGB control | Planned for the ESP32-P4 display. Boards are not wired; no physical ARGB test has run |
| Voice companion and context switching | AI voice, automatic profile selection and held shortcuts remain unfinished |
| Wireless | Wi-Fi 7 / Bluetooth LE 5.3 via M.2 splitter planned. Radio identity and validation remain |
Film and image archive
The previous films and original website stills remain available here alongside the current work. These are earlier design studies: their material treatment, ring-and-foot-strip lighting and some feature captions differ from the latest Matchstick layout. The films and images remain design visualizations, rather than photographs of a manufactured enclosure.
Earlier films
- Original cinematic commercial — calm-audio revision (V5).
- “Made to Be Seen” — calm-audio director's commercial (V5).
- 60-second directional RGB film (V5).
- Earlier 89-second Matchstick cut — “The Computer They Didn't Make” (V6c).
Browse the full original eight-photo studio gallery and films. The four stills below are the original images used on this website.
Original studio stills
Original lifestyle concepts
These are the original AI-generated environment concepts, retained as part of the design history. They show the previous enclosure appearance and do not demonstrate a completed case, gamepad startup or game performance.
Printing and assembly manual
The Rev0.3 printing and assembly manual is a working draft, revised alongside the CAD. It uses original illustrations from Ronin's assembly, a lavender-and-sakura palette and a little workshop humor. The parts list still has unresolved part numbers and dimensions. Missing components must be added to the CAD before final exploded views and assembly steps can be checked. The manual uses no Voron artwork or copied assets and has no official affiliation.
The manual is not a final build specification. Fit and assembly steps still need checking against the fabricated enclosure. Use it as a starting point for your build or remix, and expect revisions as the design develops.
Download the Rev0.3 manual PDF.
A later manual revision will cover the native menu, saved profiles, local target review and the tested Windows existing-window workflow and OBS startup behavior, with broader first-launch guidance following further testing. The new draft harness supplement and the current PCB/NVMe revision notes are separate working documents. The frozen Rev0.3 PDF does not contain those updates.
The SolidWorks assembly currently published in the repository differs from the CAD snapshot used for the manual illustrations. Compare the revision notes as you build or remix; some diagrams may lag behind the CAD. If you have questions about the differences, feel free to reach out.
The manual repository includes the CAD component inventory (CSV, JSON), open checks (CSV, JSON) and proposed hardware (CSV, JSON). These are working records, not a complete purchasing list.
What is available to build on
The small screen now combines the resource dashboard with manual action pages. Read the display update, the wider reuse story in the BC250 blog post, or the lighting and film update.
The project repository opens with the case-design overview. The case-design guide explains the SolidWorks files, editable Blender scenes and films, including Git LFS download requirements. The existing firmware, host companion, supplied display media, and build instructions are together in display/, with the original display README retained there.
The next fabrication step is to manufacture the case, check the fit, and repeat the thermal checks with the enclosure in place. Gamepad startup remains on the software and control side.
If you would be interested in a small production run, get in touch. I am gauging interest in a batch of at least five. There is no confirmed sale price or order process yet.