gr-lora_sdr ― 2024/05/14 18:45
LoRa衛星のビーコンを、RTLSDRで受信するトライの第2段。
今回使ったのは、GNU Radioだ(前回はlorarxなるソフトを使った)。 リンク先を読んで、 tappareljさんのgr-lora_sdrをmakeした。 このソフトはGNU Radio v3.10に対応して、フローグラフ内から 受信周波数,帯域幅,拡散率,符号化レート の設定が可能でステキだが、 RTLSDR対応の改造でハマった。 issueを読むと SDRのsampling rateはLoRa bandwidthの4倍である必要があった。
RTLSDRのHW仕様(2Mbps)から逆算して、BW=500kHzの衛星(TIANQI)を狙ったら、 改造したlora_RX.grcで、リアルタイム・デコードできた。デコード結果は、標準出力に出力される。
--------Header-------- Payload length: 100 CRC presence: 1 Coding rate: 1 Header checksum valid! rx msg: 0xeb, 0xf0, 0x0, 0xb, 0xf8, 0x97, 0xfa, 0x13, 0xf0, 0x10, 0x61, 0xb9, 0x61, 0x99, 0x47, 0xce, 0xce, 0xce, 0x4b, 0xc6, 0xac, 0x8e, 0x96, 0x26, 0x96, 0x25, 0x96, 0x14, 0xb, 0xf8, 0x97, 0xf9, 0x0, 0x0, 0x4a, 0xcf, 0xf1, 0x9d, 0x3a, 0x56, 0xc2, 0xaf, 0x42, 0xc2, 0xb9, 0xea, 0x43, 0x56, 0x91, 0xbb, 0x42, 0x8b, 0x77, 0x2d, 0x43, 0xa1, 0x41, 0xb8, 0x4a, 0xcf, 0xf3, 0x1f, 0x3a, 0x5c, 0x3a, 0x20, 0x42, 0xc2, 0xb9, 0xd8, 0x43, 0x56, 0x91, 0xbb, 0x42, 0x88, 0xcc, 0xd0, 0x43, 0xa1, 0x99, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 CRC valid!
この衛星のビーコンは「バイナリ形式」で「低データレート最適化が有効」(tinyGS調べ)なので、以下の設定変更が必要だった。
- 「CRC Verif」ブロック:"print_rx_msg"を[ASCII]形式⇛[Hex]形式に変更
- 「Header decoder」ブロック:"LDRO"を[Disable]⇛[Enable]に変更
ちなみにCRCエラーになったときは、赤字でCRC invalid!と表示される。
最近のコメント