아두이노 개발

[Arduino] GNSS RTK 기준국 with LoRa- 2 Ublox Zed-f9p + E32 900T20D

Choi Jaekuk 2023. 3. 24. 17:32

[GNSS RTK 기준국(Base) 만들어서 LORA로 RTCM 전송하기]

1. 기준국 설정 https://cjk09083.tistory.com/52

2. E32 900T20D 전송 테스트 https://cjk09083.tistory.com/53

3. Wemos로 RTCM 패킷 나누기 https://cjk09083.tistory.com/55

 

앞서 기준국으로 설정한 zed-f9p 에서 출력되는 rtcm 데이터를 lora로 전송하기 위해 E32 900T20D 모듈을 사용하였다.

E32 900T20D

결선은 이전 Radio 모듈과 마찬가지로 Vcc(3.3V), Tx, Rx, GND를 결선하여주었고 zed-f9p의 Uart2에서 RTCM 메세지가 출력되도록 설정하였다.

 

테스트 결과 이전 Radio 모듈과는 다르게 수신기쪽에서 RTCM 메세지들이 인식되지 않았다.

원인을 살펴본 결과

 

RTCM 1005 (25 byte) : D3 0 13 3E D0 0 3 B8 C4 C6 3A B0 89 7E F3 96 BD 8 CE 5D D1 BF 56 A7 1D

RTCM 1074 (64 byte) : D3 0 8A 43 20 0 6A 8D 58 2 0 0 41 C0 84 12 0 0 0 0 20 0 80 0 7F D7 A7 23 A1 A8 A5 23 23 A8 4E EC 6C 80 9A 55 AA A8 33 F EB DD DA 92 4 E8 3 11 D 12 C 87 35 8E 40 68 15 6 1D 84

 

두개의 메세지를 전송한다고 하면 수신기 쪽에서는

 

RTCM 1005 + 1074 (89 byte) : D3 0 13 3E D0 0 3 B8 C4 C6 3A B0 89 7E F3 96 BD 8 CE 5D D1 BF 56 A7 1D D3 0 8A 43 20 0  6A 8D 58 2 0 0 41 C0 84 12 0 0 0 0 20 0 80 0 7F D7 A7 23 A1 A8 A5 23 23 A8 4E EC 6C 80 9A 55 AA A8
  33 F EB DD DA 92 4 E8 3 11 D 12 C 87 35 8E 40 68 15 6 1D 84

 

가 도착해야되는데 실제로는

 

RTCM 1005 + 1074 (89 byte) : D3 0 13 3E D0 0 3 B8 C4 C6 3A B0 89 7E F3 96 BD 8 CE 5D D1 BF 56 D3 FE 0F FF CF 43 20  0 6A 8D 58 2 0 0 41 C0 84 12 0 0 0 0 20 0 80 0 7F D7 A7 23 A1 A8 A5 23 23 A8 4E EC 6C 80 9A 55 AA A8
  33 F EB DD DA 92 4 E8 3 11 D 12 C 87 35 8E 40 68 15 6 1D 84

 

같이 중간에 데이터 왜곡이 발생되어 앞뒤 메세지 모두 수신기에서 RTCM으로 인식하지 못하는 에러였다. 

Lora 모듈의 데이터 시트를 살펴보니 

-TX length  : 58 byte  (Capacity of single package)
-Buffer : 512 byte  (Buffer에 쌓인 데이터를 air rate의 속도로 TX length 씩 전송)
-UART baud rate : [1200, 2400, 4800, 9600[default], 19200, 38400, 57600, 115200] bps
-Air rate : [0.3k, 1.2k, 2.4k(default), 4.8k, 9.6k, 19.2k] bps
로 적혀있었는데 여기서 데이터 전송속도보다 쌓이는 속도가 커서 버퍼를 초과해 데이터가 왜곡된것으로 보인다.
이를 해결하기 위해 다음 포스트에선 아두이노로 RTCM RAW데이터를 타입별로 파싱해 데이터 왜곡없이 전송해볼것이다.