C099-F9P をWiFi経由でのNtrip Clientにする。RTK高精度測位の話です。
C099-F9PをNtripのクライアントにします。C099-F9PのODIN-W2がWiFI接続し、Ntrip通信します。メーカーで紹介されている資料では、AndroidとC099-F9PをBluetoothで接続して、AndroidのNtripクライアントでRTCMデータをC099-F9Pに流し込む手法は紹介されています。ここでは下記の構成で動作する環境を目指します。
まず、普通に C099-F9PとPCで高精度測位をできるようにしてください。下記で非常に詳しく解説していただいています。
1.必要な機材
・C099-F9P
2.プログラム環境
mbedのon line build環境を用います。下記からsign up して使えるようにしてください。
下記のTOPページの右上の(compiler)から開発環境に入れます。
Program環境では、①を選択し、②からボードを追加し EVK-ODIN-W2を選びます。
3. NTRIP-CLIENT の Buildとダウンロード
下記をクリックし、対象プログラムのページを開きます。
下記のページの右上の、"Import Compiler"で、自分の環境にソースを取り込めます。
時間もかからずに取り込めてあとは、コンパイルを押せば、buildされて、自分のPCにダウンロードされます。簡単ですね。
ODIN-W2-NTRIP-CLIENT-CR3.UBLOX_EVK_ODIN_W2.bin の様な名前のファイルがダウンロードされます。
4. ボードへの書き込み
下記からstm32flashをダウンロードして展開します。
下記のコマンドでC099-F9Pにダウンロードされます。その時はジャンパーピンをSB#ODINに挿入してから、USBを接続する必要があります。
>stm32flash.exe -b 115200 -w "ODIN-W2-NTRIP-CLIENT-CR3.UBLOX_EVK_ODIN_W2.bin" -S 0x8000000 COM12
stm32flash 0.6
http://stm32flash.sourceforge.net/
Using Parser : Raw BINARY
Interface serial_w32: 115200 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0419 (STM32F42xxx/43xxx)
- RAM : Up to 192KiB (12288b reserved by bootloader)
- Flash : Up to 2048KiB (size first sector: 1x16384)
- Option RAM : 65552b
- System RAM : 30KiB
Write to memory
Erasing memory
Wrote address 0x08002a00 (0.85%)
下記の場所に挿入し書き込み。割と時間がかかります。
5. 実際の動作
下記の場所に刺して起動します。
このジャンパーをこの接続にすることで、USBやUARTの接続がこのようになります。役割は下記のとおりです。
USBシリアル:ZED-F9Pを直接操作します。u-connectを接続します。
ZED-F9P(COMxx):ZED-F9PからNMEAが出力されます。ODIN-W2のUART3かZED-F9PにRTCM(補正データ)を流し込みます。
ODIN-W2(COMxx):ODIN-W2内部に設定を保存させます。また、動作をODIN-W2のパケットの流れをモニターします。
USBを接続しODIN-W2(COMxx)を460800bpsに設定します。まずは、SWITCH0を押しながら、RESETを離します。すると、下記の様に各種条件入力モードに入ります。エコーバックはなく、戻りもできないので慎重に入力してください。(プログラムサボってます。)
=================== EVK-ODIN-W2-NTRIP-CLIENT-CR3 ===================
=================== C099-F9P NTRIP Setting Part ===================
---- ODIN-W2 Status -----
Mbed OS version 5.15.7
CPU ID: 0x410fc241
Compiler ID: 1
Compiler Version: 6150002
-------------------------
| Current C099 conditions |
-------------------------
WiFi SSID = □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
WiFi Password = □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
Ntrip Server = □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
Ntrip Password = □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
Ntrip Mounpt = □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
--------------------------------------------
| If you release RESET while turning on SW0, |
| C099 will enter the condition change mode. |
--------------------------------------------
Please Input Condition
WiFi SSID =
もう一度、普通にRESETすると入力した条件で立ちあがります。実際のログは下記の様にパケット受信を始めます。
=================== EVK-ODIN-W2-NTRIP-CLIENT-CR3 ===================
=================== C099-F9P NTRIP Setting Part ===================
---- ODIN-W2 Status -----
Mbed OS version 5.15.7
CPU ID: 0x410fc241
Compiler ID: 1
Compiler Version: 6150002
-------------------------
| Current C099 conditions |
-------------------------
WiFi SSID = MYSSID
WiFi Password = MYPASSWORD
Ntrip Server = rtk2go.com
Ntrip Password = K
Ntrip Mounpt = MYMOUNTPOINT
--------------------------------------------
| If you release RESET while turning on SW0, |
| C099 will enter the condition change mode. |
--------------------------------------------
NEXT
=================== C099-F9P & RTK2GO example ===================
>SM_STATE:SM_STATE_WIFI_CNX
connecting to MYSSID...
Success
MAC: 60:09:c3:29:b6:19
IP: 192.168.12.101
Netmask: 255.255.255.0
Gateway: 192.168.12.1
RSSI: -73
>SM_STATE:SM_STATE_SOCKET_CNX
opening socket
Connecting to socket
Connected to Server at rtk2go.com
>SM_STATE:SM_STATE_AUTHENTIFICATION
Request confirmation from server
Response from server: 'ICY 200 OK'
start receive
Received 2 bytes from TCP socket
Received 536 bytes from TCP socket
Received 254 bytes from TCP socket
ZED-F9Pを、460800bpsに設定してあれば、RTKを始めます。設定方法はu-centerを使用して、下記の様に設定します。[View]->[ConfigulationView]->[VALSET]->[CFG-UART1]->[ADD to list]->[Get current value]
念のため、u-center で確認すると、補正データを受け取れていることが確認できます。
6.C099-F9Pボードの注意点
ちょっとボード修正が必要な場合もあり。
最初、どうも正常に動作しないと思ったら、ODIN-W2のUART3のレベルシフタ後の出力信号がフル振幅していませんでした(下記参照)。観測したのは、J3のTX3端子です。(低速動作の時はフル振幅しているので見つけにくい。)
ODIN-W2の出力の1.8Vを3.3Vにするデバイスの、OEの入力に100KΩが直列に入っていたので、それを0Ω(半田ブリッジ)したところ、正常に動作するようになりました。
正常動作の波形は下記。
これで正常に動作するとは限りませんが、外れのボードに当たった場合は、試してみてください。
汚い仕上がりですが、私のボードの変更後のイメージを下記に示します。赤い矢印のところに100KΩがあったので、取り外して半田ブリッジしました。
以上です。
この記事が気に入ったらサポートをしてみませんか?