The onboard computer
My big project. The hardware: a computer with a touchscreen and expansion modules to switch and monitor everything on board. The software is called BKOS.
One screen for everything on board
The onboard computer consists of the computer with the touchscreen and expansion modules you attach as needed. Together they switch and monitor what is on board: lighting, pumps, cooling, sensors.
This page is about the hardware: what it can do and what it must do. The software that runs on it is described under BKOS.
An impression, not a screenshot. Real photos of the 7-inch panel will follow.
What it has to do
Switching
Switch lights, pumps and devices on and off, from the screen or automatically.
Monitoring
See what is on, and report events or faults.
Growing
Start small and add modules when you want to control more.
Staying simple
As few parts as possible that can break or that you have to program.
Dumb modules, smart computer
The modules are daisy-chained with a UTP cable. They contain no programmable parts: only simple components, such as shift registers, fully driven by the onboard computer.
All logic lives in one place, in the software. If something goes wrong, it is either the software, which I can investigate in that one place, or broken hardware. There is nothing in between living a life of its own.
Modular, also inside the module
Each module itself consists of a logic part and an executing part. That way you combine what you need.
Logic part
The part that reads or passes on signals: the shift registers that extend the computer's inputs and outputs.
Executing part
The part that actually switches or measures something: the step from a low-voltage signal to a lamp, pump or sensor.
Identification
Each module identifies itself with an ID, so the computer knows what is on the cable.
Kinds
There are, among others, switching modules, sensor modules, bypass modules, hubs (analogue and UART) and logic modules, besides the main module itself.
The cable and its layout
The UTP cable was chosen as the connection early in the project, with a fixed assignment of the wires. I still use that assignment. Anyone who wants to build their own hardware for BKOS has to follow this layout, and it then works with every other module.
The exact assignment per RJ45 pin and wire colour is not on the site yet. I will add it once the schematic and photos are ready.
| Signal | What it does | RJ45 |
|---|---|---|
| Serial clock | Shifts the data bit by bit through the shift registers. | to follow |
| Parallel clock | Applies the shifted-in values to the outputs at once and captures the inputs (latch). | to follow |
| Data out | From the computer to the modules: the outputs (74HC595). | to follow |
| Data in | From the modules to the computer: the inputs (74HC165). | to follow |
| Module ID | Modules use this to report what they are. | to follow |
| Supply voltage | 12 volts, or at least the supply voltage of the system. | to follow |
| Logic voltage | 3.3 or 5 volts, for the chips on the modules. | to follow |
From breadboard to 7 inches
A project that grows slowly, with two big improvement rounds a year.
The beginning: an alarm for a steel boat that might take on water.
A breadboard with a Raspberry Pi Pico (the first one): sending messages, a small screen, shift registers to switch a lot with few pins.
The first circuit boards of my own, designed purely for function (version 0.2 in December 2023, 0.3 in May 2024, 0.4 in November 2024). The UTP cable with the layout I still use arrived early.
The discovery of the ESP32 and of display modules, up to the 7-inch screen that is now the basis. A nicer design with an enclosure and a two-part circuit board.
Versions 1.5 and 1.6 (May to July 2025): switching modules in a budget and a premium version, a sensor module, a bypass module, a serial module and a motherboard for the 4-inch screen.
More functions and more modules, driven by BKOS on the ESP32-S3.
How to read a circuit board version
I number my hardware as release.iteration.id-code.dateHW. That way a lot can be read from the number itself. The example is the serial module (BPC 0.5.0.250511D1616).
0
Counted per project. A first version is always 0: not tested well enough to share yet.
5
Goes up every time I make a set of circuit boards. New hardware starts at the then-current iteration, not at 0.
0
The code that goes with the kind of circuit board.
250511
The design date, as year, month and day (here 11 May 2025).
D1616
A letter for the package type of the parts, sometimes followed by the main chip: the mosfet type on a switching module, here the ATtiny number of the serial module.
If a piece of hardware turns out to be good without changes, I only raise the release number. Nothing technical changed, so the iteration stays the same.
Circuit boards and enclosures
The files for the hardware are on my second GitHub account. See above for how the version numbers are built.
Boordcomputer_printplaten
All circuit boards as gerber files, per version, with bills of materials (BOM and CPL) and test results.
Behuizing
3D-printable enclosures: profile enclosure, switching module, sensor module, bypass module and the 2.8-inch computer.
Boordcomputer_project
The original project: the first code, the first circuit boards and the first enclosures.
I test the circuit boards myself and report in the videos and in the repository readme whether they work and which manual change is needed. So read that before you order.
The build guide is in the making
A parts list, schematics and photos will come to the site. Until then everything is on GitHub. If you get stuck, just ask.