Teknik & Fix

Serverbygge

I dag 14/1-25 dök de sista delarna delarna till serverbygget upp, som ett litet barn på julafton går jag igång på bygget direkt!

Jag ska försöka dokumentera stegen som togs här bara för att kunna gå tillbaka och göra det igen vid behov.

Först montage av Sailot HAT och CAN HAT, enkelt och rakt på, bara att stapla dem på varandra, beskrivningar här: https://docs.hatlabs.fi/sh-rpi/docs/getting-started/

20mm hex först för att ge rätt avstånd till SailorHAT med vidarekopplingen till nästa kort, därefter 16mm hex för att ge rum för kondensatorer.

Även sparad som pdf ifall HatLabs skulle försvinna. Man kan ändra strömbegränsningen som servern drar från sin matning (upp till 3A) genom att placerar jumprar på olika sätt, men eftersom vi inte har någon stor förbrukare i denna setup och vi tänker strömförsörja direkt från NMEA2000 låter vi default 0,8A vara (inga jumprar monterade).

Jumprarna på CAN HAT ska sättas på ”off” för att ge normal funktion med droppkabel och central terminering av NMEA-nätverket https://docs.hatlabs.fi/sh-rpi/docs/add-ons/can_hat/.

I köpet från HatLabs åkte en omformare 230V AC -> 12V DC och en 12V anslutning med, perfekt för att strömmata servern med här hemma under tiden konfiguration osv. sker. Ursprungligen hade jag tankar på att mata den från ett gammal bilbatteri på något sätt, men detta blir så mycket enklare och snyggare.

Produktlänkar: https://shop.hatlabs.fi/products/dc-barrel-panel-connector

https://shop.hatlabs.fi/products/12v-power-supply

Anslutningen behövde få kablar lödda. Inte det jobb jag gör allt som oftast, och de kablar jag hade liggande var kanske väl grova, men det verkar sitta fast och ihop, det kommer funka.

Dags för installation av mjukvara.

Jag väljer OpenPlotter Headless här: https://openplotter.readthedocs.io/4.x.x/getting_started/downloading.html#raspberry-pi-images

Filen är på 1,7 GB och ska innehålla operativsystem och förberedda installationer för de programvaror jag kommer behöva, bara att vänta och se.

Att flasha operativsystemet på minneskortet är enkelt nog med den officiella programvaran från RaspberryPi, beskriven här https://openplotter.readthedocs.io/4.x.x/getting_started/installing.html, och väljandet av ”custom OS” samt välja nej när det frågas om OS customisation. För enkelhetens skull har min laptop en minneskortsläsare. Har man inte det finns enkla adaptrar till USB A, värt att tänka på när man skaffar minneskortet.

När väl vår server har minneskortet instucket och fått ström anslutet startar den automatiskt. För att kunna ansluta till den behöver vi en VNCViewer, jag använder denna: https://www.realvnc.com/en/connect/download/viewer/. De försöker lura in en att skapa ett konto, men inget behövs, bara att välja ”fortsätt utan att logga in”.

Headlessversionen av OpenPlotter är konfigurerad som både en WiFi accesspunkt och en klient som ansluter till routrar från start. Detta gör att vi kan ansluta till serverns WiFi efter en stund, när den startat upp. Byte av lösenord anmodas vid första start!

Det lyser!
Vi är inne!

Väl inne och med viktiga lösenord ändrade är det lämpligt att ansluta servern till den lokala routern så den får internet. Direkt fungerar den som en router själv, vilket gör att anslutna enheter får internet genom servern. Därefter kan några initiala inställningar göras, så som språk, format på tangentbord, placering och tidszon etc, men starta inte om ännu!

För att våra påbyggnadskort ska fungera behöver dess drivrutiner installeras och mjukvaror ställas om. Detta är beskrivet i pdf:en jag la upp tidigare och sker automatiskt genom att man kör detta script:

curl -L \
    https://raw.githubusercontent.com/hatlabs/SH-RPi-daemon/main/install-online.sh \
    | sudo bash

Det man då får göra är att välja vilka tillägskort man har installerade, vilket gör att CAN-kortet fungerar och att servern tål att bli av med strömmen. Ett batteri ska man visst ha också, CR1220, det hade jag missat i första bygget.

I detta läge har vi nu en stabil liten dator utan skärm och tangentbord som bootar och ansluter till det lokala nätverket samt sätter upp en AP så vi kan ansluta till den av sig själv när den får 12V spänning på rätt ställe. Dags att uppdatera operativsystemet.

I en konsol, kör först

sudo apt-get update

Det kontrollerar vår status gentemot senaste status på programvarorna online, och skapar en list på vad som behöver uppdateras. Kör sedan

sudo apt-get dist-upgrade

Det kör uppdateringssekvensen. Du kommer behöva svara ja på frågor om du vill ladda ner uppgraderingar och sedan vänta en stund. För att hålla systemet fräscht är det lämpligt att köra denna rutin någon gång månadsvis/halvårsvis. För att göra uppdateringen fullständig, starta om.

sudo reboot

I skrivande stund använder OpenPlotter X11, så stanna där när/om du får en fråga vid omstart.

Nu är det dags att kontrollera inställningarna i OpenPlotter, och börja fundera på hur man vill ha det konfigurerat. Det är väldigt rätt-fram här, som att konfigurera vilken Windows-dator som helst, och dessutom med automatiska uppdateringar under Meny -> OpenPlotter -> Settings. Ett bra första trick är att se till att man har alla de programvaror man önskar använda uppdaterade. Kolla i fliken OpenPlotter Apps och kör en Refresh samt installera de uppdateringar du behöver.

För att vi ska få in data från CAN-bussen behöver vi berätta för vår serverprogramvara att den kan och får läsa från can-kortet. Detta gör man genom att gå in på Meny -> OpenPlotter -> CAN Bus. Där väljer man initialt MCP2515 (vilket är vår korttyp) och sedan ”Add Connection”. Det script vi körde tidigare gör att kortet redan syns i listan, vi behöver bara koppla det till servern.

Med det så har vi vår server bygg och klar för att börja sätta upp den som vi vill ha den, att konfigurera SignalK med dess plugin och WebAppar. Det får nog bli ett separat inlägg tror jag.

När det gäller inbyggnad har jag börjat luta åt att ta fram något 3D-printat, det skulle kunna bli snyggt. Men vi får se, jag kanske är kvar vid glasslådan när det väl är dags att montera i Helga.