見出し画像

C099-F9P をWiFi経由でのNtrip Clientにする。RTK高精度測位の話です。

C099-F9PをNtripのクライアントにします。C099-F9PのODIN-W2がWiFI接続し、Ntrip通信します。メーカーで紹介されている資料では、AndroidとC099-F9PをBluetoothで接続して、AndroidのNtripクライアントでRTCMデータをC099-F9Pに流し込む手法は紹介されています。ここでは下記の構成で動作する環境を目指します。

画像4

まず、普通に C099-F9PとPCで高精度測位をできるようにしてください。下記で非常に詳しく解説していただいています。

1.必要な機材

・C099-F9P

画像9

2.プログラム環境

mbedのon line build環境を用います。下記からsign up して使えるようにしてください。

下記のTOPページの右上の(compiler)から開発環境に入れます。

Program環境では、①を選択し、②からボードを追加し EVK-ODIN-W2を選びます。

画像5

3. NTRIP-CLIENT の Buildとダウンロード

下記をクリックし、対象プログラムのページを開きます。

下記のページの右上の、"Import Compiler"で、自分の環境にソースを取り込めます。

画像6

時間もかからずに取り込めてあとは、コンパイルを押せば、buildされて、自分のPCにダウンロードされます。簡単ですね。

画像7

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%)

下記の場所に挿入し書き込み。割と時間がかかります。

画像8

5. 実際の動作

下記の場所に刺して起動します。

画像11

このジャンパーをこの接続にすることで、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のパケットの流れをモニターします。

画像2

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]

画像14

念のため、u-center で確認すると、補正データを受け取れていることが確認できます。

画像14

6.C099-F9Pボードの注意点

ちょっとボード修正が必要な場合もあり。

最初、どうも正常に動作しないと思ったら、ODIN-W2のUART3のレベルシフタ後の出力信号がフル振幅していませんでした(下記参照)。観測したのは、J3のTX3端子です。(低速動作の時はフル振幅しているので見つけにくい。)

画像11

ODIN-W2の出力の1.8Vを3.3Vにするデバイスの、OEの入力に100KΩが直列に入っていたので、それを0Ω(半田ブリッジ)したところ、正常に動作するようになりました。

画像11

正常動作の波形は下記。

画像12

これで正常に動作するとは限りませんが、外れのボードに当たった場合は、試してみてください。

汚い仕上がりですが、私のボードの変更後のイメージを下記に示します。赤い矢印のところに100KΩがあったので、取り外して半田ブリッジしました。

画像13

以上です。


この記事が気に入ったらサポートをしてみませんか?