RemotePI

Såg att Bosse skrev lite i sin tråd om RPi och remote, tänkte att en liten
uppdatering av hur mitt projekt utvecklas kunde vara på sin plats.

Hr nu två RPi som automatiskt kopplar upp sig med varandra det är det systemet
som är min arbetsplattform.

Går nu vidare med min lösning med att helt reducerar bort PC/windows i min
remote anläggning.

Jag har testat och funnit att Parole är ett utmärkt program för ljudöverföring.
Med en bandbredd på drygt 3kb/s så ger det ett rätt anständigt ljud, det använder
sig av Opus för överföringen.

Den sista delen är att göra en "front" med en display, 10 switchar och en
VFO ratt. Just nu är knapparna avkodade i koden och testade, displayen som styrs
med I2C är också färdig att länkas in. nästa steg blir VFO avkodningen.

Det är tänkt att fronten + de två RPi modulerna ska utgöra ett komplett system.

Det är tänkt att hem-RPi ska tala med radion via hamlib på fjärr-RPi och att det
på så sätt blir ett generiskt system då hamlib stödjer ett större antal riggar


Allt är skrivet i C och körs under Linux naturligtvis :)
 
Last edited:
Äntligen efter en hel del irrvägar så har jag nu mitt "remote" system uppe. Det består av en front kopplad till en RPi lokalt och i stugan en RPi med en egen utvecklad "shield", den har diverse interface till radion som inte rigctld hanterar. förbindelsen är över VPN med det tidigare i tråden beskrivna Softether paketet då vår 4g router i stugan fortfarande ligger bakom CGN/NAT444.

Fronten har 10 tryckswitchar, en 2*20 tecken display samt en rotation avkodare, det är en modifierad stegmotor med HALL-effekt sensorer som ger kvadratur avkodningen.
Systemet fungerar helt självständigt och inga datorer eller andra enheter behövs för att köra det.


den slutliga lösningen är att jag använder hamlibs rigctld i min remote RPi, lokala RPin kopplar upp sig via en telnet session till rigctld på fjärr RPin. Programmet i den lokala RPi tolkar händelser på fronten och skickar lämpliga rigctld kommandon till remote stationen och hanterar information som sänds tillbaks. CW hanteras genom att förändringar i tillståndet på nyckelingången överförs med tidinformation till remote RPi som buffrar strömmen och sköter nycklingen av stationen. Har ingen bugg inbyggd utan vill man köra bugg så får man helt enkelt koppla in den i nyckelingången på fronten. för att skicka dessa signaler samt andra kontroll signaler som inte hanteras av rigctld så är en extra virtuell-serieport uppkopplad. Andra signaler som skickas över den är styrning av RF nät switchar, 3 stycken kan kontrolleras, det finns även 3 DC-switchar som kan fjärrstyras på stugans RPi.

För audioöverföring används Parole som är baserat på Opus vilket är det bästa audiokompression paket som finns just nu. Man får en alldeles utmärkt audiokvalité med en dataström på endast 2,5 kB/s.

Har inte implementerat alla funktioner som jag vill ha på fronten än men det är enkelt att lägga till dessa med tiden - man ska ju ha lite kvar att fila på :)
 
Kul att det blivit till belåtenhet!

Ett alternativ för de som inte är bevandrade i RPi och programmering kan vara att använda Node-Red och Mosquitto!
 
Det finns många vägar att gå när man väl har fått upp ett VPN mellan sina RPi burkar. Man bör nog kunna köra Grig och liknande mjukvara om man vill ha en sådan lösning.

Jag ville ha lite övning i att programmera i Linux (Unix) då det var alldeles för länge sedan sist. Kommer antagligen när jag testat klart och anser att systemet är moget för det, att släppa ut det under GPL.
 
Att just välja Hamlib som bas för fjärrstyrning av radion gör att det är enkelt att ansluta till godycklig rig som de stöder. Det är en rätt diger lista som stöds, nu är det tyvärr att det finns buggar och att man ibland måste återgå till riggens egna CAT kommandon. T.ex så fungerar inte kommandona för power on/off för TS-2000 drivaren utan jag var tvungen att "go native" för den funktionen.

För I/O hantering och en del annan low level hantering så valde jag WiringPi, vilket är ett utmärkt bibliotek med många möjligheter.

Jag har ett par QRP riggar som uppträder som IC-718 har jag för mig - kommer testa hur det fungerar med dem, antagligen i sommar. Har också en idé att se om det går att använda något grafisk program som Grig ihop med mitt system.
 
Last edited:
Glömde att nämna att det är Raspberry 3B+ som jag baserar mitt system på - men det går nog antagligen lika bra A modellen då programmen inte är speciellt tunga att köra.

Syba SD-AUD20101 USB soundcard används för audio, mest för att jag köpte ett gäng av dem billigt på Ebay för några år sedan.
 
Kul att det blivit till belåtenhet!

Ett alternativ för de som inte är bevandrade i RPi och programmering kan vara att använda Node-Red och Mosquitto!

För mig var utgångspunkten att systemet skulle göras "old school" med det mesta skrivet i C och i övrigt förlita sig på Unix shellscript.
 
Det var ingen kritik mot din lösning!

Jag har blivit väldigt såld på Node-Red och MQTT som en kombination vad gäller IoT.
Som ex har jag tagit bort ser2net i remote RPin och istället implementerat detta i Node-Red med 2 black box object.

Men som sagt var och en blir salig på sin tro !
 
Ingen kritik mot din lösning heller - men du kan knappast kalla det för ett "programmeringsfritt" system :)
 
Har i helgen testat att köra med Grig på en PC, alltså med en mjukvaruklient i stället för fronten och det fungerade utmärkt. Ljudkanal var Parole mjukvaran på RPi till RPi.
Tänker kompilera Parole för windows Linux subsystem när de kommer med vår uppdateringen Win10, den ska inkludera en Linux kärna. Detta då Parole inte är skrivet för Windows.
 
Bengt, kul att läsa om dina projekt. Har själv haft en liten Orange Pi med Debian Jesse snurrande i några år för att kunna styra mitt shack utifrån. Vad jag nu gärna vill göra är att kunna brygga mitt shack LAN med ett lokalt nät bakom en 4G-router... Planen var först att köra en openVPN brygga mellan de två LAN då routers har detta inbyggt. Men cert, nycklar och annat gör det knöligt så har gått tillbaka till Softether. Insåg att saker och ting hade förändrat sig när Stretch lanserades, så får treva mig fram lite i mörkret. Tänkte kolla hur jag gjorde för några år sedan, men råkat glömma p/w till min OrangePi, plus då att det är Jesse gör att jag försöker starta på nytt (även om jag skall prova att återställa p/w).
Jag skäms inte för att erkänna att jag står på en 3-årings nivå när det gäller UNIX och C, provar utan att riktigt veta vad jag gör, och ibland fungerar det :) men det finns många fällor att gå i! I sådana här lägen skulle det vara bra att ha någon att hålla i handen.
 
Back
Top