De boordcomputer
Mijn grote project. De hardware: een computer met touchscreen en uitbreidingsmodules om alles aan boord te schakelen en te bewaken. De software heet BKOS.
Eén scherm voor alles aan boord
De boordcomputer bestaat uit de computer met het touchscreen en uit uitbreidingsmodules die je er naar behoefte aan koppelt. Samen schakelen en bewaken ze wat er aan boord staat: verlichting, pompen, koeling, sensoren.
Deze pagina gaat over de hardware: wat hij kan en wat hij moet doen. Welke software erop draait, lees je bij BKOS.
Impressie, geen schermafdruk. Echte foto's van het 7-inch paneel volgen.
Wat hij moet doen
Schakelen
Lichten, pompen en apparaten aan en uit zetten, op het scherm of automatisch.
Bewaken
Zien wat er aan staat, en gebeurtenissen of storingen melden.
Meegroeien
Beginnen met weinig en modules toevoegen als je meer wilt aansturen.
Eenvoudig blijven
Zo weinig mogelijk onderdelen die stuk kunnen of die je moet programmeren.
Domme modules, slimme computer
De modules worden achter elkaar doorgelust met een UTP-kabel. Ze bevatten geen programmeerbare onderdelen: alleen eenvoudige onderdelen, zoals schuifregisters, die volledig door de boordcomputer worden aangestuurd.
Alle logica zit op één plek, in de software. Als er iets misgaat, ligt het dus aan de software en kan ik het op die ene plek onderzoeken, of aan kapotte hardware. Er zit niets tussenin dat een eigen leven leidt.
Modulair, ook binnen de module
Elke module bestaat zelf uit een logisch en een uitvoerend deel. Zo combineer je wat je nodig hebt.
Logisch deel
Het deel dat signalen inleest of doorgeeft: de schuifregisters die de ingangen en uitgangen van de computer verlengen.
Uitvoerend deel
Het deel dat echt iets schakelt of meet: de stap van laag-voltage signaal naar lamp, pomp of sensor.
Herkenning
Elke module meldt zich met een ID, zodat de computer weet wat er aan de kabel hangt.
Soorten
Er zijn onder meer schakelmodules, sensormodules, bypassmodules, hubs (analoog en UART) en logische modules, naast de hoofdmodule zelf.
De kabel en zijn layout
Al vroeg in het project is de UTP-kabel als verbinding gekozen, met een vaste indeling van de aders. Die indeling gebruik ik nog steeds. Wie eigen hardware voor BKOS wil maken, moet deze layout volgen, dan werkt het met elke andere module.
De exacte indeling per RJ45-pin en aderkleur staat nog niet op de site. Dat vul ik aan zodra het schema en de foto's erbij staan.
| Signaal | Wat het doet | RJ45 |
|---|---|---|
| Seriële klok | Schuift de data bit voor bit door de schuifregisters. | volgt |
| Parallelle klok | Zet de ingeschoven waarden tegelijk op de uitgangen en leest de ingangen in (latch). | volgt |
| Data uit | Van de computer naar de modules: de uitgangen (74HC595). | volgt |
| Data in | Van de modules naar de computer: de ingangen (74HC165). | volgt |
| Module-ID | De modules melden hiermee wat ze zijn. | volgt |
| Voedingsspanning | 12 volt, of in elk geval de voedingsspanning van het systeem. | volgt |
| Logische spanning | 3,3 of 5 volt, voor de chips op de modules. | volgt |
Van breadboard tot 7 inch
Een project dat langzaam groeit, met twee grote verbeterslagen per jaar.
Het begin: een alarm voor een stalen boot die water kon maken.
Een breadboard met een Raspberry Pi Pico (de eerste): berichten sturen, een klein scherm, schuifregisters om met weinig pinnen veel te schakelen.
De eerste eigen printplaten, puur op functie ontworpen (versie 0.2 in december 2023, versie 0.3 in mei 2024, versie 0.4 in november 2024). Al vroeg kwam de UTP-kabel met de layout die ik nu nog gebruik.
De ontdekking van de ESP32 en van displaymodules, tot en met het 7-inch scherm dat nu de basis is. Een mooier ontwerp met behuizing en een tweedelige printplaat.
Versie 1.5 en 1.6 (mei tot juli 2025): schakelmodules in een budget- en een premiumuitvoering, een sensormodule, een bypassmodule, een seriële module en een moederbord voor het 4-inch scherm.
Meer functies en meer modules, aangestuurd door BKOS op de ESP32-S3.
Zo lees je een versie van een printplaat
Ik nummer mijn hardware als publicatie.iteratie.id-code.datumHW. Zo valt er veel af te lezen uit het nummer zelf. Het voorbeeld is de seriële module (BPC 0.5.0.250511D1616).
0
Telt per project. Een eerste versie is altijd 0: nog niet goed genoeg getest om te delen.
5
Loopt op elke keer dat ik een set printplaten maak. Nieuwe hardware begint meteen bij de dan huidige iteratie, niet bij 0.
0
De code die bij het soort printplaat hoort.
250511
De datum van het ontwerp, als jaar, maand en dag (hier 11 mei 2025).
D1616
Een letter voor het soort behuizing van de onderdelen (package), soms gevolgd door de belangrijkste chip: bij een schakelmodule het type mosfet, hier het ATtiny-nummer van de seriële module.
Blijkt een stuk hardware zonder aanpassing goed te zijn, dan verhoog ik alleen de publicatie. Er is technisch niets veranderd, dus de iteratie blijft gelijk.
Printplaten en behuizingen
De bestanden voor de hardware staan op mijn tweede GitHub-account. Zie hierboven hoe de versienummers zijn opgebouwd.
Boordcomputer_printplaten
Alle printplaten als gerber-bestanden, per versie, met bestellijsten (BOM en CPL) en testresultaten.
Behuizing
3D-printbare behuizingen: profielbehuizing, schakelmodule, sensormodule, bypassmodule en de 2,8-inch computer.
Boordcomputer_project
Het oorspronkelijke project: de eerste code, de eerste printplaten en de eerste behuizingen.
Ik test de printplaten zelf en laat in de video's en in de readme van de repo weten of ze werken en welke handmatige aanpassing nodig is. Lees dat dus voor je bestelt.
De bouwgids is in de maak
Een onderdelenlijst, schema's en foto's komen op de site. Tot die er zijn, staat alles op GitHub. Loop je ergens op vast, vraag het gerust.