Category Archives: Orienteering

FoxScope – radiopejlmottagare med dubbla mottagarkedjor – del 1

Det här blogginlägget är första delen i en artikelserie där jag beskriver en mottagare (“rävsax”) för radiopejlorientering på 80m-bandet. En snarlik variant av artikeln publicerades i Sveriges Sändaramatörers, SSA:s, tidskrift QTC med början i nummer 10, 2022.

Denna första del beskriver bakgrunden till projektet, hur radiovågor, antenner och pejling fungerar på 80m-bandet samt hur jag valde att tillverka antennerna.

FoxScope

Såvitt jag kan komma ihåg så har det inte publicerats någon artikel om radiopejlmottagare (rävsaxar) i QTC på över 10 år. I nummer 2, 2012 beskrev Bo Lenander sin eleganta 80m12-konstruktion; en artikel som jag läste med stort intresse [1]. Jag var redan då sedan flera år nyfiken på radiopejlorientering/rävjakt, men hade aldrig testat sporten och hade ingen koll på hur sådana mottagare brukar vara uppbyggda. Vad ”sidbestämning” är och hur den finessen fungerar förstod jag inte heller.

Sedan dess har jag fått chansen att prova på sporten ett antal gånger, med första tillfället i maj 2019 då tävlingar arrangerades i Linköping där jag bor. Mottagaren jag lånade för 80-m-tävlingen visade sig vara en nyare variant av just 80m12-konstruktionen och poängen med sidbestämning blev genast uppenbar. Som orienterare och elektronikkonstruktör med radiointresse var radiopejlorientering en mycket positiv upplevelse och förutom att börja åka på tävlingar så kom även funderingarna på hur jag skulle kunna bygga en egen mottagare med ännu bättre egenskaper. Jag lekte med tankar på en direktsamplande arkitektur med en FPGA för signalbehandlingen (vilket påminner om system jag konstruerar på arbetstid) och en uppblandande superheterodyn med kristallfilter, men jag fastnade till slut för en (nästan) direktkonverterande mottagare (låg-MF) med spegelfrekvensundertryckning där den låga mellanfrekvensen (13 kHz) samplas av 24-bitars audio-codecar och resten av signalbehandlingen görs i en mikroprocessor.

Genom att kosta på mig en konstruktion med högre komplexitet än andra radiopejlmottagare jag stött på hoppades jag kunna åstadkomma en mottagare som gör det möjligt att snabbare och mer noggrant pejla riktningen till sändarna (rävarna). Den bärande – och möjligen nya – idén var att ha två parallella mottagarkedjor så att man samtidigt kan ta emot signalerna från både H-fältsantennen och E-fältsantennen och jämföra deras fas för att noggrant kunna avgöra precis när H-fältsantennen sveper förbi riktningen mot sändaren. När det inträffar får man (som bekant?) både ett minimum i signalen från H-fältsantennen (vilket utnyttjas av alla kända pejlmottagare) och dels ett fashopp på 180 grader i samma signal. Signalen från E-fältsantennen däremot har samma fas hela tiden och kan således utgöra referens vid fasjämförelsen. En del ferritantenner ger ett lite diffust minimum, men om antennen är väl skärmad från E-fältet bör fashoppet ske i en väldigt distinkt riktning. Åtminstone i fjärrfältet. På köpet kan man skilja på om antennen pekar mot sändaren eller bort från den, vilket eliminerar det extra momentet med sidbestämning som krävs i traditionella mottagare.

Sammantaget hoppades jag kunna uppnå bland annat följande egenskaper och finesser i min konstruktion:

  • Eliminering av det separata sidbestämningsmomentet.
  • Snabbt få fram en distinkt pejlriktning.
  • Mottagning av endast enkelt sidband för att slippa störningar och brus från spegelbandet. Detta kan vara speciellt viktigt på nattävlingar då allsköns avlägsna stationer kan dundra in. Eller på tävlingar som går nära bebyggelse med diverse störkällor.
  • Kristallstyrd och kalibrerad lokaloscillator för att slippa osäker och drivande frekvensinställning.
  • Ett antal olika valbara filterbandbredder för att kunna göra olika avvägningar mellan att få lågt brus och möjligheten att höra rävar som ligger lite fel i frekvens.
  • Så bra elektrisk skärmning av ferritantennen som möjligt.
  • Inbyggd elektronisk kompass.
  • En grafisk skärm så att mottagaren kan visa signalstyrka och fasskillnad som funktion av kompassriktning.
  • Realtidsklocka för att hålla reda på vilken räv som sänder.
  • LiPo-batteri för låg vikt och laddbarhet.

Saker jag kunde tänka mig att pruta på var att konstruktionen inte behövde vara särskilt enkel, billig eller snabbutvecklad. Men jag ville att den ändå skulle vara möjlig för mig att bygga utan att anlita en professionell elektronikmonteringsfabrik.

Antenner och vågor vid rävjakt

Innan jag beskriver hur mottagaren – som jag kallar FoxScope – fungerar tänkte jag ge lite bakgrund om hur pejling vid 80 m rävjakt går till.

I en traditionell radiopejlmottagare för 80 m så har man två antenner. Huvudantennen är antingen en enkel loop utan kärna (typiskt en eller två decimeter i diameter) eller så är det en ferritstav med spole. Denna antenn tar emot magnetfältsdelen (H-fältet) av radiovågorna. Man har även ett litet vertikalt spröt som tar emot det elektriska fältet. Av nödvändighet är antennerna väldigt mycket mindre än våglängden och därmed tämligen ineffektiva, men de är ändå tillräckligt bra för att kunna snappa upp sändningen från en typisk räv på några km avstånd.

Jag valde att använda en ferritantenn som huvudantenn och resten av beskrivningen är baserad på det.

Sändarna (rävarna) skickar ut signaler i form av nycklad CW, dvs en enkel omodulerad ton som slås av och på i form av morsetecken. Sändarantennen är vertikalt polariserad, vilket innebär att det elektriska fältet i markplan är vertikalt riktat medan det magnetiska fältet är horisontellt i form av cirklar som breder ut sig från sändarantennen.

När man håller ferritstaven parallellt med magnetfältet så fångar man upp maximalt med magnetiska fältlinjer och man får maximal signal, vilket visas i figur 1. Om man vrider staven så att den pekar mot sändaren kommer inga fältlinjer att passera genom spolen och man får minimal signal enligt figur 2. Fortsätter man att vrida antennen så får man återigen en signal, men med 180 grader skillnad i fas mot tidigare.

Figur 1.                   Ferritantennen ger maximal signal när bredsidan är riktad mot sändaren. De blå cirklarna visar de magnetiska fältlinjerna från sändarantennen i mitten av bilden.
Figur 3.                   När ferritantennen pekar rakt mot sändaren ger den minimal signal.

Maximat i en sådan här antenn är väldigt diffust, men minimat är i bästa fall tydligt, så det är det man traditionellt använder för att pejla sändarna. Ett ungefärligt antenndiagram visas i figur 3. På grund av symmetrin finns det ett minimum i ferritstavens båda riktningar, så om man inte på något annat sätt vet vilken av dessa två motsatta riktningar som pekar mot sändaren så behövs en metod för att ta reda på det.

Figur 3.                   Antenndiagram för ferritantenn.

E-fältsantennen pekar alltid uppåt när man pejlar och ger därför lika stark signal med samma fas oavsett hur man roterar mottagaren runt vertikalaxeln. Se figur 4.

Figur 4.                   Fältlinjerna hos E-fältet (röda kurvor) går vertikalt vid den gröna E-fältsmottagarantennen och varken fas eller amplitud på signalen som antennen plockar upp påverkas av hur antennen är roterad runt vertikalaxeln. (I praktiken så gör den ledande marken att undre delen av fältet ser ut på ett annat sätt än i figuren.)

I 80m12 och många andra mottagare finns en knapp som om den hålls in aktiverar även E-fältsantennen och adderar signalen från den till signalen från ferritantennen. Om signalerna är lika starka (något man strävar efter i konstruktionen) vid summationspunkten och inte har drabbats av olika fasvridningar så är de i motfas och släcker ut varandra om man har ena bredsidan av ferritantennen mot sändaren medan signalerna är i fas och adderas om andra bredsidan vänds mot sändaren. Rävjägaren jämför vilken av bredsidorna som ger starkast signal och kan därmed avgöra vilken av de två riktningarna som är den sanna.

En pejling går alltså till som så att man först pejlar tills man hittar ett minimum. Nu vet man att sändaren ligger på linjen genom ferritstaven, men inte i vilken av de två riktningarna den finns. Sedan vrider man mottagaren 90 grader för att få ett maximum och trycker in sidbestämningsknappen. Därefter testar man om denna position av mottagaren ger starkare eller svagare signal än om man roterar mottagaren ytterligare 180 grader. Med denna information kan man avgöra om sändaren finns framför eller bakom en.

Figur 5 visar hur signalerna ser ut för fyra olika riktningar hos mottagaren relativt sändaren. Röda kurvor är signalen från E-fältsantennen, blå kurvor är från ferritantennen medan gröna visar resultatet av additionen av dessa två när man trycker in sidbestämningsknappen. De översta kurvorna visar när bredsida 1 av ferritantennen är riktat mot sändaren. Båda signalerna är starka och i fas, så när man sidbestämmer får man en stark signal.

Nästa kurvor visar vad som händer när ferritantennen har vridits så att den nästan pekar mot sändaren, men utan att dess förlängning passerat sändaren. Nu är H-fältsignalen (blå) svag, men har fortfarande samma fas.

Tredje gruppen kurvor visar fallet att ferritantennens förlängning svept aningen förbi sändaren. Signalen är även nu svag, men har fått omkastad fas.

De nedersta kurvorna visar hur det ser ut när mottagaren vridits så att andra bredsidan av ferritantennen pekar mot sändaren. Nu är H-fältsignalen återigen stark, men denna gång i motfas mot E-fältsignalen, så additionen vid sidbestämning ger en svag signal.

Figur 5.                   Signaler från de två olika antennerna vid fyra olika riktningar hos mottagaren. Röda kurvor är från E-fältet, blå från H-fältet (ferritantennen) och gröna är resultatet av additionen mellan signalerna när man gör sidbestämning.

I praktiken kan det vara svårt att få signalerna från de två antennerna att vara lika starka och i perfekt fas/motfas vid sidbestämning, så för att få en tydlig sidbestämning kan man behöva höja och sänka mottagaren mellan knähöjd och över huvudhöjd i förhoppningen om att på någon höjd över marken hitta en position där signalerna från antennerna är ungefär lika starka och det därför blir tydligt vilken av sidorna som ger starkast signal.

Antennskärmning

En annan svårighet som jag upplevde med den mottagare jag lånat är att minimat vid pejling ganska ofta inte är särskilt tydligt. Dock lärde jag mig att det gick att få det tydligare genom att hålla ena handen en decimeter över antennen under pejlingen. Jag tror dessa fenomen beror på att ferritantennen inte är särskilt väl skärmad från det elektriska fältet så även när den är riktad så att den inte ger någon signal från magnetfältet så plockar den upp en signal från E-fältet som suddar ut minimat. Handen över antennen skärmar i någon mån av E-fältet och gör minimat tydligare och pejlingen därmed exaktare.

I många pejlmottagare man kan köpa färdiga är ferritantennen inbyggd i en skärmad låda (ofta gjord av mönsterkortslaminat ser det ut som) med en slits i kopparfolien i samma riktning som ferritstaven. Skärmningen gör att E-fältet inte kommer åt spolen medan slitsen gör att skärmningen inte agerar som ett kortslutet lindningsvarv, vilket annars kraftigt skulle minska dess känslighet. Se figur 6.

Figur 6.                   Ferritantenn med E-fältsskärm med slits på ovansidan.

Att ha en – bortsett från slitsen – heltäckande folie runt ferritantennen borde ändå i någon mån dämpa magnetfältet när fältlinjerna inte är parallella med ferritstaven. Då tvingas nämligen fältlinjerna passera genom metallfolien så att virvelströmmar induceras, magnetfältet dämpas och minimat borde bli bredare. Se figur 7.

Figur 7.                   Om ferritantennen inte är parallell med magnetfältet passerar magnetiska fältlinjer (blå) genom sidorna på slitsskärmen som borde dämpa signalen och bredda minimat.

Så kanske vore det ännu bättre att ha en skärm med inte bara en slits längs med ferriten, utan väldigt många fler slitsar även i andra riktningen så att skärmen inte har sammanhängande metallytor som det kan induceras virvelströmmar i?

Ett sätt att uppnå det är att använda en bred flatkabel som skärm, löda ihop alla ledarna under ferritstaven och kapa flatkabeln ovanför antennen. Se figur 8.

Figur 8.                   Principen för en ”flatkabelskärm” (röda ledare) med slits på ovansidan och sammankopplad jordning på undersidan.

Efter några försök med att skala bred flatkabel tröttnade jag och tänkte ut ett annat sätt att åstadkomma samma sak. Med hjälp av en nyinskaffad 3D-skrivare skrev jag ut ett rör med ett spiralformat spår på utsidan där jag kunde linda en tunn oisolerad koppartråd (en kardel från en skalad, tunn kopplingstråd). På ena sidan av röret hade jag en skåra för att senare lätt kunna skära av trådarna längs skåran och på motstående sida en platt yta där jag först kunde limma en tunn strimla kopparlaminat för att löda fast trådvarven. Innan jag lödde och skar av trådarna på ovansidan säkrade jag det hela med superlim. Har man inte tillgång till 3D-skrivare borde det vara ganska lätt att uppnå samma sak med ett enkelt elrör. Se figurer 9-12.

Figur 9.                   3D-modell av ”skärmformaren”. De runtgående spåren är spiralformade, som en gänga.
Figur 10.                   Skärmformare med kopparlaminat på undersidan för jordning.
Figur 11.                   Närbild på skärmformaren med tråd som lindats, limmats och kapats längs övre skåran.
Figur 12.                   Komplett ferritantenn med skärm och trådar till de två lindningarna stickande ut i mitten.

Lindning av antennen

En mycket god idé som jag lånat från 80m12 är att låta själva lindningen runt ferritstaven bestå av två lindningar som båda börjar i mitten och går lika många varv ut mot varsin kant. Se figur 13. Lindningarnas ändar jordas medan man tar ut signalen på sammankopplingspunkten i mitten. Poängen med att ha två parallellkopplade spolar på detta sätt är att när man riktar ferritstaven mot sändaren och magnetfältet alltså går rakt in i bredsidan på ferritstaven så plockar den annars upp signal från ett varv och nollstället blir därmed förskjutet några grader med pejlfel som följd. De två parallellkopplade lindningarna ger motverkande signaler i detta fall och tar därmed ut varandra och eliminerar pejlfelet. Att ändarna är jordade bidrar till skärmningen mot E-fältet.

Figur 13.                   Ferritantennen lindas med två spolar som båda utgår från mitten. Ytterändarna jordas och signalen tas ut på mittledaren. Det är såklart mycket viktigt att lindningarna utgår åt samma håll (utåt ur bilden i denna illustration) från mittpunkten. Annars får man en kortsluten lindning när man jordar ändarna…

För att få så stark signal (hög spänning) som möjligt från antennen vill jag ha så många varv som möjligt utan att antennen blir resonant vid för låg frekvens. Därför är det viktigt att inte lindningarna får onödigt stor parasitkapacitans. Dielektricitetskonstanten för ferritmaterial är ganska hög, så att linda direkt på ferritstaven är inte optimalt. Istället skrev jag på 3D-skrivaren ut en spolformare som håller ferritstaven i mitten och låter koppartråden befinna sig någon mm ovanför ytan och håller det hela centrerat i skärmröret. Spolformaren har även hål som man kan låsa tråden i så att den inte lindar upp sig. Figur 14 visar spolformare med lindningar.

Figur 14.                   Spolformare och ferritkärna med lindningar. 80+80 varv med 0,25 mm lackad koppartråd.

Som ferritstav använde jag två hoplimmade stavar gjorda av material 61 från Fairrite. Stavarna har 9,5 mm diameter och längden 41 mm vardera. Fairrites artikelnummer är 4061375411 och den finns att köpa från Digi-Key under artikelnummer 1934-1575-ND.

Med antennen kopplad till ingången på mottagaren är resonansfrekvensen knappt 3 MHz. Det kan verka misslyckat att den inte är resonant på 3,5 eller 3,6 MHz, men eftersom jag vill jämföra fasen mellan ferritantennen och E-fältsantennen och få samma resultat oavsett var i bandet sändaren ligger så är min tanke att jag inte vill ha några stora skillnader i fas hos antennsignalen i det relevanta frekvensbandet och då duger det inte att ha en resonans i bandet. Det har visat sig möjligt att bygga en mottagare som inte kräver en resonant antenn för att ge bra mottagning, så principen verkar fungera utmärkt, även om det kan finnas ytterligare optimeringar att göra. Man skulle kunna utforska om det möjligen vore bättre att ta bort några varv och göra den resonant vid 4 eller 5 MHz, vilket är frekvenser som dämpas tidigt i RF-kedjan och därför inte utgör lika stor risk att orsaka blockering om det mot förmodan skulle finnas en stark signal på den resonanta frekvensen.

En massa bra information om dimensionering och optimering av ferritantenner (och loopantenner) hittade jag förresten i ett dokument som CIA tog fram på 50-talet och som numera finns tillgängligt för nedladdning. Se referens [2]. Mycket läsvärt för den tekniskt intresserade.

E-fältsantennen är okritisk och jag tog ca 7 cm 3D-filment, dvs en plasttråd med 1,75 mm diameter, och lindade några mycket glesa varv lackad kopparttråd på den samt satte en krympslang över. Det ger en antenn som tål att böjas och eftersom signalen visade sig vara starkare än från ferritantennen kan det knappast vara lönt att göra den längre.

Figur 15.                   E-fältsantennen

Python Code for Interfacing to Sportident Stations

Sportident Primer

Sportident is a system commonly used for timing in e.g. the sport of orienteering. One part of the system is battery powered stations placed at the start, finish and control posts along the course. The other main part is small RFID “cards” the athletes carry with them. The cards store information, like time and code number, from the stations they come in contact with. At the end of a race, the data in the cards is read out and processed by some piece of software to create the results list.

Sportident station BSF8. Common type without cable.

The stations come in different versions. The most common type (often used at control posts) has no other means of communication than the inductive RFID link, while others have e.g. a serial port (not sold anymore) or USB. The wire-free stations can be connected to a computer by inductively coupling them via a ferrite rod to a station connected to a computer.

Sportident station BSM7. This type with serial port is not sold anymore. Today USB is used instead.

There is non-volatile memory inside each station and this stores station configuration information, as well as a log of which cards have punched at the station and at what time.

Sportident provides a gratis program called Sportident Config+ that can manage the Sportident hardware, by e.g. upgrading firmware, setting operating mode, setting time, reading out backup memory, reading and configuring cards etc. While the program is generally quite complete in its functionality, it has a rather inefficient GUI for doing the same operation on many stations in a row, like setting up all stations to have synchronized clocks and the same operating time. Or reading out the backup memories of many stations. Such operations require a lot of clicking for each station and small mistakes can cause undesirable results.

Python Code

The communication protocol used over the USB/serial port is partially documented in a non-maintained document not generally available, although it is possible to get a copy of this document by asking Sportident for it. I found more information about the protocol and the configuration data of the stations in the source code of a program called sireader.py which I found on Github. This code was developed by Gaudenz Steinlin, Simon Harston and Jan Vorwerk in 2008-2015 and the purpose primarily seems to have been to read out the information of cards inserted into a station connected to a computer.

I wanted to do more than this however. First, I wanted to be able to read out the backup memory of many stations and store the information in separate CSV files with minimal user intervention for each station. Second, I wanted to have a streamlined way of preparing many stations for an event. This involves synchronizing the clocks, clearing the backup memory, setting the operating time (time before the station goes to sleep) and a few other settings.

Some of this was quite straightforward to do using the code in sireader.py, but some of it required more investigation of the communication protocol by means of a logic analyzer as well as the addition of several new methods in the main class of the code. I also had to study the raw configuration data of stations, which consists of 128 partially documented bytes, and compare it between stations in different modes to be able to get to the settings and information I wanted.

The result of all this is currently an extended version of the python code, which I call sireader2.py since it is not necessarily 100% compatible with sireader.py and it also contains a lot more functionality and documentation of a few more parts of the Sportident station configuration data.

I have also written scripts which use sireader2.py to do what I set out to do, namely to read backup memories and normalize station settings.

All of the code is freely available under GPL 3 at the following github repository:

https://github.com/per-magnusson/sportident-python

Hur man uppdaterar batteristatus i en SI-enhet efter batteribyte

This post is in Swedish, but the same information is available in English on the last page of this PDF from Sportident.

Om man har bytt batteri i en Sportident-enhet så är det en bra idé att tala om för enheten att det nu sitter ett nytt batteri med full kapacitet i enheten så att den kan försöka hålla reda på hur mycket kapacitet som återstår. Som bekant så använder man programmet  SPORTident Config+ för att programmera SI-enheter, ställa tiden, uppdatera firmware mm, men tyvärr så kan man i vanliga fall inte komma åt funktionen för att ställa om batteristatusen. Kanske anser Sportident att funktionen är för riskabel att ha allmänt tillgänglig, men det går ganska lätt att slå på den. Så här gör man:

Högerklicka på genvägen till SPORTident Confg+ på skrivbordet. Då dyker en meny upp som ser ut något i stil med detta:

Menyn som kommer upp vid högerklick på Config+ikonen.

Välj alternativet “Egenskaper” längst ned. Nu dyker följande fönster upp:

Dialogrutan med egenskaper för genvägen.

Tricket man behöver göra är att lägga till texten −−service sist i rutan “Mål:”. Enklast görs detta på följande vis:

  • Tryck på pil höger så att den blåmarkerade texten avmarkeras och markören hamnar sist i rutan.
  • Tryck mellanslag.
  • Skriv in −−service (dvs två minustecken och sedan ordet service utan några mellanslag). Så här bör det se ut:

Flaggan −−service har lagts till.

  • Tryck OK för att stänga rutan.

Om man nu startar SPORTident Config+ från den ändrade genvägen så finns plötsligt den nya menyn Service högst upp:

Service-menyn har dykt upp.

Om man väljer alternativet “New device battery” så får man upp följande:

Fönstret för att uppdatera batteristatus

På en BSF8 med vanligt litet batteri (1/2 AA) så är det normalt 1000 mAh man ska mata in och om man precis satt in ett nytt batteri så ska såklart Usage stå på 0%. På en BSM7 (med sladd) med batteri i AA-storlek är det normalt 2000 mAh i batterikapacitet.

Mer information om andra saker att tänka på när man byter batteri finns i följande dokument från SportIdent:

Battery exchange in BSF7 and BSF8 stations