DG-PRO1RWSをWindows 11へBluetooth SPPで接続し、PowerShellから生データを受信するまでの実機確認済み手順をまとめます。
確認環境:
DG-PRO1RWS02)COM6(発信)機器名、COM番号は環境ごとに異なります。この文書中の値をそのまま決め打ちせず、各PCで確認してください。
Windows 11の新しい「デバイスを追加」画面では、DG-PRO1RWSを検出できない場合があります。その場合は従来のコントロールパネルを使います。
DG-PRO1RWS... または RWS... を選択してペアリングします。本体のBluetooth LED(外側から2番目の青)の意味:
SerialPortとなっている行を探します。実機確認時は次の割り当てでした。
| ポート | 方向 | 名前 | 用途 |
|---|---|---|---|
| COM5 | 着信 | DG-PRO1RWS02 | 今回は使用しない |
| COM6 | 発信 | DG-PRO1RWS02 SerialPort |
PCから受信機へ接続する |
未設定の受信機は、COMポートを開けてもデータを出力しない場合があります。公式アプリDrogger-GPSを使って出力を有効にします。
Bluetooth Message Typeで必要なメッセージを選びます。最初の確認ではGGAを選びます。設定変更は接続中に受信機へ送られるため、別の「適用」ボタンはありません。ただし、この時点では電源再投入後の自動適用は未保証です。
Drogger-GPSのメイン画面に「監視モードで動作中」と表示されている場合、アプリで変更したメッセージ設定は受信機へ送られません。
Stop表示で測位値が更新されている状態にします。GNSS settingsとDMP settingsの両方で「デフォルト設定で起動」を選びます。OKを押し、反映メッセージを確認します。受信機名を選択しただけでは未接続です。右上がStartのときは設定が送信されません。Startを押し、Stop表示、本体の青LED点灯、測位値またはバージョン情報の表示を確認してから設定します。
受信機の電源を切らずに行います。
以前のPowerShellセッションでポートを開いていた場合は、先に解放します。
if ($null -ne $p) {
if ($p.IsOpen) { $p.Close() }
$p.Dispose()
$p = $null
}
次の例は実機で確認したCOM6を使用しています。環境に合わせて変更してください。
$p = [System.IO.Ports.SerialPort]::new("COM6", 115200, "None", 8, "One")
$p.ReadTimeout = 5000
$p.Open()
Start-Sleep -Seconds 3
$p.BytesToRead
BytesToReadが1以上ならデータを受信しています。実機確認では3秒後に120バイトを確認しました。
Windowsの仮想COMドライバーは460800bps指定を拒否し、最大115200bpsというエラーを返しました。115200bpsでは正常に接続できました。Bluetooth SPPの仮想COM設定と受信機内部UARTの速度を混同しないでください。
ReadExisting()は受信バイトを文字列へ変換するため、UBXバイナリが文字化けして見えます。形式確認には16進表示を使います。
Start-Sleep -Seconds 1
$n = $p.BytesToRead
$data = New-Object byte[] $n
$count = $p.Read($data, 0, $n)
[BitConverter]::ToString($data, 0, [Math]::Min($count, 100))
実機では次の開始部分を確認しました。
B5-62-01-20-10-00-...
内訳:
B5 62: u-blox UBX同期語01 20: UBX-NAV-TIMEGPS10 00: ペイロード長16バイトNMEAテキストが含まれる場合、16進では$を表す24から始まります。
24-47-4E-47-47-41 # $GNGGA
24-47-50-47-47-41 # $GPGGA
確認後は必ずポートを閉じます。
$p.Close()
$p.Dispose()
$p = $null
Drogger-GPSで設定した出力を起動設定として保存すれば、その後はAndroidなしでWindowsから接続できる見込みです。
公式手順:
OKを押し、反映メッセージを確認します。監視モード解除後の一時設定については、Windows単独でGGA/RMCを受信できることを確認済みです。起動設定へ再度保存した後の電源再投入試験は、2026-07-11時点では未検証です。
2026-07-11に、監視モードを解除して接続中にGGA/RMCとロギングを設定し、Windows COM6→TCP→WSL2で10秒間取得しました。
| 項目 | 結果 |
|---|---|
| 保存バイト数 | 23,715 |
| NMEAセンテンス | 291 |
| GNGGA | 145 |
| GNRMC | 146 |
| checksum正常 | 291 |
| checksum不整合 | 0 |
| 同期ロス/末尾欠損 | 0 |
| GGA fix quality | 1(単独測位) |
| 使用衛星数 | 12 |
| RMC status | A(有効) |
緯度・経度・高度をWSL2側でデコードできることを確認しました。取得ファイルはartifacts/に置き、Git管理しません。
日常的にログを採取する場合は、tools/capture/README.mdのcapture_session.pyを使います。日時付きファイル名で保存し、内容に応じて拡張子を自動選択し(UBXを含む場合.bin、NMEAのみの場合.nmea。固定の.ubxは使いません)、採取日時・COMポート申告値・メッセージ件数・checksum結果・GGA/RMC要約を記した.meta.jsonを書き出します。
UV_CACHE_DIR=/tmp/uv-cache uv run python tools/capture/capture_session.py \
--com-port COM6 \
--duration 10 \
--notes "任意のメモ"
Windows側でserial_bridge.ps1がWaiting for one WSL client...の状態であることが前提です。
Close()、Dispose()します。BytesToReadが0Bluetooth Message Typeとロギングを確認します。ReadExisting()が文字化けする接続不良とは限りません。UBXはバイナリ形式です。16進ダンプでB5-62を確認してください。