Showing posts with label LoRa. Show all posts
Showing posts with label LoRa. Show all posts

05 February 2018

APRS via LoRa III

Se punea problema de a modifica valorile interfetei radio cu valori "custom" folosind libraria RadioMaster:

Solutia:

  const RH_RF95::ModemConfig custom1 =  { 
            RH_RF95_BW_20_8KHZ | RH_RF95_CODING_RATE_4_5,
            RH_RF95_SPREADING_FACTOR_256CPS 
            };
            
  rf95.setModemRegisters(&custom1);

01 February 2018

APRS via LoRa II

Am finalizat partea de baliza si partea de receptie si afisare a pozitiei relative (la Target Call).

O baliza RAW este de forma:
$LRPRS,YO3HJV-15,01,02,2018,12,03,56,44.423229,26.111504,3100,29,97390000,415 *

Unitatea de receptie furnizeaza pe serial info de forma:

RX Packet String is : 
$LRPRS,YO3HJV-15,01,02,2018,12,03,56,44.423229,26.111504,3100,29,97390000,415 *

Last Packet RSSI = -40

Preamble = $LRPRS
Target Callsign = YO3HJV-15
Last RX Date = 01/02/2018
Last RX Time: 12:03:56
Last Received Lat = 44.423225
         GPS  Lat = 44.423149
Last Received Long = 26.111503
         GPS  Long = 26.111181
Last Distance to Call m: 27.18  m
Last Distance to Call Km: 0.03  Km
Last Course to Call: [ENE]
70.00  degrees
Last Known Altitude = 31.00
Last Known Speed = 0.3
Last Known Course = 97.39
Battery = 4.15

Location: 44.423145,26.111177  Date/Time: 1/2/2018 10:04:02.00
Location: 44.423145,26.111177  Date/Time: 1/2/2018 10:04:02.00
Location: 44.423149,26.111175  Date/Time: 1/2/2018 10:04:03.00
Location: 44.423149,26.111175  Date/Time: 1/2/2018 10:04:03.00


In partea de inceput este sinteza informatiilor obtinute din primirea unui packet $LRPRS comparate cu informatia de la GPS-ul receptorului.
In partea de jos este un flow continuu de date de la GPS-ul receptorului.

La receptie, se verifica preambulul apoi se procedeaza la extragerea informatiei din sirul CSV.

-$LRPRS- pachet de pozitie
-$LRMSG-pachet cu mesaj
-$LRTLM-pachet exclusiv cu telemetrie


Variantele de modulatie LoRa:

                 rf95.setModemConfig(RH_RF95::Bw125Cr45Sf128);    ///< Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on. Default medium range
                      // rf95.setModemConfig(RH_RF95::Bw500Cr45Sf128);     ///< Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on. Fast+short range
                      //  rf95.setModemConfig(RH_RF95::Bw31_25Cr48Sf512);   ///< Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on. Slow+long range

                      //  rf95.setModemConfig(RH_RF95::Bw125Cr48Sf4096);    ///< Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on. Slow+long range









07 January 2018

APRS via LoRa I

O sa notez aici cateva din etapele setarii unui echipament care foloseste un mix de tehnologie veche (APRS) cu tehnologia noua (LoRa).

Momentan, cateva din elementele pregatitoare.
-GPS uBlox NEO6MV2
-Software de evaluare si programare. U-Center de la uBlox.
-Software analiza RS232/COM  Terminal V1.9b

Folosim un Arduino TRINKET PRO 3V cu GPS serial conectat la o interfata SoftwareSerial 9k6.
Utilizam doar portul de intrare (RX) al interfetei seriale pentru a face "economie" de pini.

Arduino preia tramele NMEA furnizate de GPS si selecteaza doar cele de tip $GPGGA care contin informatia de pozitie si timp UTC.
Identificarea se face pe baza prezentei substringului $GPGGA iar codul defalca informatia de longitudine, latitudine, altitudine si timp, acestea fiind separate prin virgula.

Dupa separare, le reansambleaza intr-un nou sir, de forma

$LRPRS, CALL-SSID, LAT, LONG, ALT, HHMMSSCC, K

Acesta este transmis pe Serial HW catre transceiver-ul LoRa care il emite cu 1200 baud si FEC cu periodicitatea stabilita prin SW.


ToDo: De portat pe TRINKET separarea HH, MM, SS, initial fiind verificata pe ARDUINO MEGA.
ToDo: De format trama standard APRS care va fi transmisa alternativ cu cea pe formatul de mai sus.
ToDo: De realizat functia de transformare POZ in BASE91 ASCII pentru compatibilitatea cu APRS tip MicE.


LE:
              String sendLORA = PREAMBLE + "," + CALLSIGN +
                                "," + StringLAT + "," + StringLON + "," + StringALT +
                                "," + lastHH+ "," + stringMM + "," + lastSS +
                                "," + StringTIME + "," + stringVAL + "," + "K";

LLE:

$LRPRS, CALL, LAT, LON, ALT, DD, MM, YYYY, hh, mm, ss, , Analog, EOT

 

:

Most viewed posts in last 30 days