SERIALFLOW / PRODUCT

SerialFlowは、Android端末を高度なログ解析、プロトコルデコード、コマンド自動化、波形表示、GNSS診断、3D姿勢表示を備えたUSBシリアルワークステーションへ変えます。

SerialFlow:単なるAndroidシリアルターミナルではない

一般的なAndroid向けシリアルアプリが行うのは、USBポートを開き、受信した文字列を表示し、1行のコマンドを送り返すことです。簡単な動作確認には十分ですが、デバイスが大量のログを出力したり、テキストとバイナリを混在させたり、センサー値を連続送信したりすると、単純なターミナルだけではすぐに限界が見えてきます。

SerialFlow は、Androidスマートフォンやタブレットを小さな端末画面ではなく、持ち運べるシリアルデバッグワークステーションとして扱います。

Androidで最も高機能なシリアルターミナルの一つと呼べる理由は明確です。SerialFlowは、ネイティブUSBシリアル接続、大量ログの処理、検索とフィルター、プロトコルデコーダー、テキスト・Hex送信、コマンド自動化、リアルタイム波形、GNSS診断、地図、3D姿勢表示、バックグラウンド動作、セッションログのエクスポートを一つのアプリにまとめています。

SerialFlow Android USBシリアルターミナルとログワークスペース

一般的なシリアルアプリとの違い

分野 SerialFlowの機能
USB接続 Android USB Host/OTG、デバイス検出、権限処理、通信設定、DTR、RTS
ログ解析 一時停止、自動スクロール、タイムスタンプ、Text/Hex表示、フィルター、検索、正規表現、強調表示、エクスポート
送信 テキスト、Raw Hex、改行コード、送信履歴、クイックコマンド、ループ送信
デコード Text、ESP-IDF、Raw、Modbus RTU、MSP姿勢データ、並列NMEA解析
可視化 複数系列の波形、GNSS衛星診断、地図、3D姿勢表示
長時間利用 端末内セッション記録、大容量バッファ、Androidフォアグラウンドサービス、RX/TX統計
ハードウェアなしの試用 テレメトリ、NMEA、Modbus、ESPログ、バイナリ、MSP、端末姿勢の仮想データ

同じアプリで、起動ログの確認、バイナリフレームの検証、センサー変化の観察、GNSS受信状態の評価、繰り返しコマンドの実行まで行えます。

AndroidネイティブのUSBシリアル接続

SerialFlowでAndroid USB OTGからESP32-S3開発ボードへシリアル接続している画面

SerialFlowはWeb Serialをアプリで包んだものではありません。Flutter UIはMethodChannelとEventChannelを通じて、usb-serial-for-androidを利用するネイティブAndroid実装と通信します。

Android側でUSBシリアルデバイスを検出し、システム権限を要求し、選択したポートを開き、受信バイトをバックグラウンドでストリームし、DTRとRTSを制御します。

実用的な通信設定

接続画面では、組み込み機器や産業機器で必要になる設定を変更できます。

  • 1,200から921,600までの一般的なボーレート
  • 5、6、7、8データビット
  • Androidで1または2ストップビット
  • None、Odd、Even、Mark、Spaceパリティ
  • DTRとRTSの手動制御
  • デバイス一覧の更新と再接続
  • 受信・送信バイト数のリアルタイム表示

マイコンだけでなく、GNSS受信機、PLCアダプター、計測器、USB-RS-485変換器、独自制御基板にも対応しやすい構成です。

SerialFlowの接続設定画面

大量出力を前提にしたログエンジン

ログが人間の読める速度を超えると、文字列を画面末尾へ追加するだけでは役に立ちません。SerialFlowは受信データをまとめてUIへ反映し、有効なフィルターを新しい項目へ増分適用し、検索更新の頻度も制御します。連続出力中でも操作性を保つための設計です。

必要な瞬間に止めて調べる

出力はいつでも一時停止でき、自動スクロールも個別に切り替えられます。長い行は横スクロールで確認でき、ユーザーが過去ログへ移動すると最新行への追従は自動で停止します。

表示設定には次の項目があります。

  • ミリ秒付きタイムスタンプ
  • フォントサイズ
  • テキストまたはHex表示
  • Raw受信チャンクの境界表示
  • システム、送信、警告、エラー、NMEA、デコード結果の色分け

フィルターと検索を重ねる

SerialFlow Androidシリアルモニターのログ検索、正規表現、フィルター画面

フィルターは表示中のストリームを継続的に絞り込み、通常文字列、大文字小文字の区別、正規表現を利用できます。検索は絞り込まれたログ内で動作し、すべての一致箇所を強調しながら前後の結果へ移動できます。

例えば最初に motor でフィルターし、その結果から timeout を検索できます。複数種類の異常を一度に拾うことも可能です。

(error|timeout|crc|disconnect|watchdog)

この流れは、単純なモバイルターミナルよりもデスクトップのログビューアに近いものです。

セッションをファイルとして残す

接続中のログはAndroid端末内のセッションファイルへ継続的に記録されます。画面上のバッファを軽量に保ちながら、調査後にはスナップショットをファイルとしてエクスポートし、共有できます。

無料構成では1,024行を画面に保持し、SerialFlow Proでは4,096、16,384、65,536行を選択できます。

テキスト、Hex、コマンド自動化

テキスト送信では、終端なし、CR、LF、CRLFを選択できます。接続はできているのにコマンドへ反応しない場合、原因が改行コードの違いであることは珍しくありません。

Hexモードは、スペース区切り、連続した16進文字列、0x接頭辞、カンマ、空白を受け付け、送信前に入力を整形して検証します。

01 03 00 00 00 02 C4 0B

各モニターには送信履歴があり、過去の入力を前後にたどれます。よく使うコマンドは名前付きのクイックボタンとして保存し、コマンドごとに改行コードを指定できます。

ループ送信では、指定した間隔で一定回数または無制限にコマンドを送れます。ポーリング、耐久試験、アクチュエータの繰り返し、プロトコル検証、製造検査に便利です。

バイト列をプロトコルとして理解する

TextとESP-IDF

TextモードはUTF-8を復元しつつ通常のASCII出力を扱います。ESP-IDFデコーダーはVerbose、Debug、Info、Warning、Errorを識別し、ログレベルごとに異なる見た目で表示します。

Raw

Rawモードはバイナリストリームを無理に行へ分割せず、受信チャンクとバイト数を保持します。独自パケットや未知形式を確認するときの出発点になります。

Modbus RTU

Modbusモードは受信バイトを蓄積し、無通信時間からフレーム境界を推定し、CRCを検証して、有効なフレームをアドレス、ファンクション、データ、CRCとして整理します。

RS-485ゲートウェイ、電力計、PLC、温調器、産業用センサーの解析では、連続したHex表示よりもはるかに分かりやすくなります。

MSPとNMEA

MSP姿勢フレームの解析にも対応しています。さらに、有効なNMEAセンテンスは選択中のログデコーダーと並行して処理されるため、一つの受信ストリームをターミナルとGNSS画面の両方で利用できます。

シリアル値をそのまま可視化

SerialFlowのシリアルデータ可視化

複数系列のリアルタイム波形

デバイスが次のような key=value 形式を出力すると、SerialFlowは各キーを自動的にデータ系列として認識します。

temp=23.6[C] voltage=3.31[V] current=0.42[A]

波形画面では複数の系列を同時表示し、個別に表示・非表示を切り替え、最新データへ追従し、指定範囲を確認し、保持点数を変更できます。値のスケール差が大きい場合は対数Y軸も利用できます。

温度、電圧、電流、圧力、回転数、制御誤差、処理時間、信号強度などを、専用Android画面を作らずにグラフ化できます。

GNSS衛星診断と地図

SerialFlowのGNSS衛星ビューでシリアルNMEAデータを診断している画面

SerialFlowのGNSS地図ビューでシリアル機器のNMEA位置情報を表示している画面

有効なNMEAデータから、速度、進行方向、高度、使用衛星数、HDOP、PDOP、VDOP、可視衛星数などを抽出します。

衛星画面ではGPS、BeiDou、GLONASS、Galileo、QZSS、IRNSS、混合GNSSを切り替えられ、信号リング、PRNラベル、位置不明衛星、一覧表示を設定できます。地図画面は有効な位置情報を地理的に確認するために使えます。

3D姿勢表示

次のような単純なテキストだけで、リアルタイム3D姿勢モデルを動かせます。

roll=12.4 pitch=-3.8 yaw=87.0

q0q1q2q3によるクォータニオンや互換MSPフレームにも対応し、平滑化、座標軸、自動回転を調整できます。IMU、ロボット、ジンバル、フライトコントローラー、姿勢センサーの確認に有用です。

SerialFlowのプロトコル、GNSS、3D姿勢画面

現場作業と長時間テストに対応

オプションのAndroidフォアグラウンドサービスは、アプリがバックグラウンドへ移動した後もUSBシリアルセッションを維持しやすくします。通知にはRX/TXバイト数が表示され、直接切断するボタンもあります。

セッション記録、ログエクスポート、クイックコマンド、ループ送信と組み合わせれば、設置作業、保守、製造検査、車載機器、移動ロボットなど、ノートPCを持ち込みにくい場面で役立ちます。

ハードウェアなしでも試せる

内蔵の仮想デバイスは、一般テキストと数値テレメトリ、記録済みNMEA、正しいModbus RTUフレーム、ESP-IDF風ログ、Arduino-ESP32風ログ、Rawバイナリ、MSP姿勢フレーム、対応Android端末のモーションデータを生成または再生できます。

実機を危険にさらさず、正規表現フィルター、波形設定、各デコーダー、GNSS画面、3D姿勢表示を学べます。

対象となる機器

SerialFlowは一つのチップに限定されません。

  • Arduino、STM32、RP2040、ESP32、独自ファームウェア基板
  • USB-UART、USB-RS-485アダプター
  • Modbus RTU機器と産業用コントローラー
  • GNSS受信機とトラッカー
  • センサー、モーター、電源、試験治具
  • フライトコントローラー、IMU、ロボット、ジンバル
  • ATコマンドモジュール、計測器、独自シリアル機器

Androidが接続されたUSBシリアルインターフェースを認識し、機器がSerialFlowで表示、解析、可視化できるデータを送ることが条件です。

Androidで最も強力なシリアルアプリなのか

シリアルアプリに共通の公式ランキングはなく、重視する機能も利用者によって異なります。しかしSerialFlowは、USBターミナル、大量ログビューア、バイナリコンソール、Modbus検査、ESPログ表示、テレメトリグラフ、GNSSダッシュボード、3D姿勢モニター、反復送信ツール、エクスポート可能なロガーを一つにまとめています。

この機能の広さを考えれば、Androidで最も高機能なシリアルアプリの一つと表現するのは妥当です。最小のターミナルを目指すのではなく、プロジェクトが複雑になっても別のアプリへ乗り換えずに済むことを目指しています。

大容量表示バッファ、無制限クイックコマンド、ループ送信、波形、衛星、地図など一部の高度な機能は、SerialFlow Proまたは対応する一時解放が必要な場合があります。USB接続、ログ閲覧、検索、フィルター、Text/Hex送信、プロトコルデコードがアプリの基盤です。

SerialFlow Terminalを詳しく見る、またはGoogle Playからダウンロードできます。

実際の流れを確認するには、AndroidとSerialFlowでESP32をデバッグする方法も参照してください。同じ考え方はESP32以外にも適用できます。接続し、記録し、絞り込み、理解し、操作し、最後に結果をエクスポートします。