프로그램 사용/rtl-sdr

gr-lora with gnuradio 성공!

구차니 2025. 9. 25. 11:45

bandwidth 와 offset이 주요 포인트였네

채널당 125kHz 라서 bw는 125k로 넣으면 되고

offset은 variable 을 검색해서 추가하고 gqrx 에서 Peak Hold 를 켜주고 나서 어느정도 시간 수집한 이후

중심 주파수를 계산해서 원래의 주파수에서 얼마나 이동했는지를 계산하면 된다.

 

시작 꼭지가 대충 921.417로 측정되고

끝 꼭지가 대충 921.590으로 측정되니

중간은 average() 함수로 계산하고 차를 계산하면 대충 30khz. 물론 실험적으로 조금씩 이동더 시켜서 되긴했는데

이게 가끔(?) 오류나는 이유이려나?

[링크 : https://github.com/rpp0/gr-lora/wiki/Capturing-LoRa-signals-using-an-RTL-SDR-device]

 

wireshark 와 연결하기 위해서는

gnu radio 에서 'A 돋보기' 눌러 "Message Socket Sink"를 찾아 추가하고

LoRa Receiver의 오른쪽 frames와

Message Socket Sink의 왼쪽 in을 연결하고

 

wireshark의 Loopback:lo 에서 열어주면 된다.

 

먼가 파형도 보이고 ping도 보이고. 그런데 간헐적으로 piO/ 식으로 잘못 해석하는데 이유가 멀까나..

 

자세히 보면 내가 설정한 decimation 값과 매칭이 되지 않는걸로 나온다.

bandwidth를 맞춰주면 자동으로 bit per symbol , bins per symbol, samples per symbol, decimation 등이 계산되는 듯.

Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Fitipower FC0012 tuner
Exact sample rate is: 1000000.026491 Hz
Bits (nominal) per symbol:  5
Bins per symbol:  1024
Samples per symbol:  8192
Decimation:  8
Allocating 15 zero-copy buffers
 11 21 00 70 69 6e 67 70 6f 6e 67 70 69 6e 67 70 6f 6e 67 0a (pingpongpingpong)

 

Message Socket Sink에 보면 Layer를 선택가능하게 되어있는데

 

TAP / PHY / MAC 세가지가 나온다.

 

LoRa TAP을 선택하면 아래와 같이 나오는데, 옵션들 중에서는 가장 길다.

아마도 LoRa 패킷 전체를 보여주는데 wireshark에서 해석을 못하는게 아닐뿐인가 생각된다.

 

LoRa PHY을 선택하면 데이터 앞에 11 21 00 정도 추가되어 나오고

 

LoRa MAC을 선택하면 순수한 데이터만 나온다.