シリアルポートを開けるブラウザは?
デスクトップ版の Chrome・Edge・Opera これらの Chromium 系ブラウザ(Chrome 89 以降)は Web Serial API を搭載しており、ページを開いて「ポートを選択して接続」をクリックするだけです。デスクトップ版 Firefox 151 以降も、案内されるサイト権限アドオンをインストールすれば使えます。Safari と iOS は非対応です。デモデバイスなら、どのブラウザでも全機能を試せます。
インストール不要、Chrome や Edge で開くだけのシリアルモニタ。CH340・CP2102・ESP32・Arduino とブラウザでシリアル通信し、テキスト/HEX 送信、一定間隔の繰り返し送信、Modbus CRC-16 の自動付加に対応。文字化けは GBK を検出し、受信済みのデータも表示し直します。
機器を接続すると、送られてきたデータがここに表示されます。
Go Tools エンジニアリングチームが構築し、検証しています。
デスクトップ版の Chrome・Edge・Opera これらの Chromium 系ブラウザ(Chrome 89 以降)は Web Serial API を搭載しており、ページを開いて「ポートを選択して接続」をクリックするだけです。デスクトップ版 Firefox 151 以降も、案内されるサイト権限アドオンをインストールすれば使えます。Safari と iOS は非対応です。デモデバイスなら、どのブラウザでも全機能を試せます。
よくある原因:機器が GBK で送っている Keil や IAR で作られた中国のマイコンプロジェクトはソースが GBK で保存されていることが多く、printf も GBK のバイト列を送ります。このツールはデータが GBK として正しく読めることに気づくと切り替えを提案し、受信済みの内容も描き直します。英字や数字まで化けている場合は、まずボーレートを確認してください。
ブラウザは理由を教えてくれません どんな原因でも、表示されるのは同じ「Failed to open serial port.」というメッセージだけです。よくある原因を順につぶしていきましょう。ほかのシリアルツール、Arduino IDE のシリアルモニタ、デバッガを閉じてください。Linux ではユーザーを dialout グループ(Arch では uucp)に追加します。機器が接続されたままか確かめ、標準的なボーレートも試してください。
下位バイトが先です 01 03 00 00 00 0A の CRC-16/MODBUS は 0xCDC5 で、回線上には C5 CD の順で送られます。「チェックサム付加 → CRC-16/MODBUS」を選ぶと、ツールがこの順序で付加し、プレビューにも表示します。
改行コードを \r\n に ESP8266 や ESP32 の AT ファームウェアは CR(復帰)+ LF(改行)、つまり \r\n をコマンドの終わりとみなすので、AT だけを送っても待ち続けます。改行コードを \r\n(CRLF)にして送り直してください。
シリアルターミナルは、パソコンのシリアルポート(多くは CH340 や CP2102 などの USB シリアル変換チップが作る COM ポート)を開き、機器のボーレートでバイトをやり取りするツールです。マイコンが出力するログを読む、モジュールに AT コマンドを送る、Modbus 機器と通信する、といった場面で使います。従来はデスクトップアプリが定番でしたが、このツールはブラウザに組み込まれた Web Serial API を使うので、インストール不要で Windows・macOS・Linux の Chrome と Edge で動きます。
シリアルポートの読み書きはブラウザが直接行い、このツールがシリアルデータを当サイトのサーバーへ送ることはありません。また、ページが勝手にポートを探すこともできず、開けるのはブラウザのダイアログであなたが選んで許可したポートだけです。
一般的なシリアルターミナルと違う点は2つあります。1つは、受信した生のバイト列を保持していること。UTF-8 と GBK、あるいはテキスト表示と HEX 表示を切り替えると、画面全体が新しい設定で描き直されるので、文字化けしても最初からやり直す必要はありません。もう1つは、書き込む前のバイトをすべてプレビューし、チェックサムと改行コードを区別して表示すること。HEX 入力の打ち間違いは問題の文字を示して報告され、黙ってフレームから抜け落ちることはありません。
# Text view, line ending \r\n [09:30:01.204] → AT␍␊ [09:30:01.219] OK # HEX view, CRC-16/MODBUS appended (low byte first) [09:30:02.517] → 01 03 00 00 00 0A C5 CD [09:30:02.539] 01 03 14 00 64 00 65 00 66 00 67 00 68 00 69 00 6A 00 6B 00 6C 00 6D 63 D1
ブラウザの Web Serial API を利用しています。デスクトップ版の Chrome・Edge・Opera から、CH340・CP2102・FT232・PL2303 の変換アダプタや、ESP32-S3・Arduino などボード内蔵の USB シリアルに接続できます。ソフトを入れられない会社のパソコンや、気に入ったシリアルツールが見つからない Mac で重宝します。
受信したバイトが文字化けしたら、直近のデータを別の文字コードで読み直し、意味が通れば「GBK に切り替え」を提案します。切り替えると、新しく届くデータだけでなく受信済みのすべてをデコードし直します。1バイトを1文字として表示する ASCII / Latin-1 も選べます。
HEX は 01 03 00、0x01,0x03、010300 のどの書き方でも入力できます。不正な文字や奇数桁は読み飛ばさずに報告します。書き込まれるバイト列は入力欄の下に表示され、チェックサムと改行コードは角かっこで囲まれます。テキストモードでは改行コード \r\n・\n・\r と、オプションで \r \n \xHH のエスケープが使えます。
すべてのフレームに CRC-16/MODBUS(下位バイトが先)、XOR(BCC)、8ビット加算のいずれかを付加できるので、Modbus RTU のために別の計算機を用意する必要はありません。それ以外の CRC 変種は、先に CRC 計算機でパラメータを調べ、バイトを手で追加してください。
HEX 表示では、設定したミリ秒数(既定は 50 ms)より長く受信が途切れるたびに新しいフレームが始まるため、要求/応答型のプロトコルは1行に1フレームで表示されます。各行にミリ秒単位のタイムスタンプが付き、バイト数のカウンタもリアルタイムに更新されます。
ポーリングや長時間の連続試験のためにコマンドを一定間隔で繰り返し送信でき、最近のコマンドはワンクリックで再送できます。ログはタイムスタンプ、送受信の方向、生の HEX を含むテキストとして書き出せるので、あとから別の文字コードで読み直したり、別のツールで解析したりできます。
送信(テキスト、改行コード \r\n):AT
書き込んだバイト:41 54 0D 0A 応答:OK
ESP-AT ファームウェアは CR(復帰)+ LF(改行)でコマンドの終わりを判断します。41 54 だけを書き込んでも、モジュールは待ち続けます。改行コードを \r\n にすると、プレビューには 41 54 [0D 0A] と表示されます。
送信(HEX、CRC-16/MODBUS を付加):01 03 00 00 00 0A
書き込んだバイト:01 03 00 00 00 0A C5 CD スレーブの応答:01 03 14 00 64 00 65 … 00 6D 63 D1
スレーブ 01、ファンクション 03、開始アドレス 0000、個数 000A。CRC は 0xCDC5 で、Modbus は下位バイトを先に送るため、回線には C5 CD の順で流れます。応答の 14 はバイト数(20 バイト = 10 レジスタ)で、最後の2バイトも下位バイトが先の CRC です。デモデバイスはまさにこの形式で応答します。
受信:CE C2 B6 C8 3A 32 35 A1 E6 0D 0A
UTF-8 として:�¶�:25�� GBK として:温度:25℃
同じバイト列が、UTF-8 では文字化けし、GBK では 温度:25℃(温度 25 °C)と読めます。データが壊れているわけではなく、両端の文字コードの取り決めが食い違っているだけです。ツールはこれを検出し、切り替えを提案します。
送信(HEX、XOR / BCC を付加):AA 55 01 02
書き込んだバイト:AA 55 01 02 FC
XOR はペイロードの全バイトを順に排他的論理和でまとめます:AA ⊕ 55 ⊕ 01 ⊕ 02 = FC。チェックサムの対象は入力欄のすべてのバイトです。プロトコルがヘッダを計算から除外する場合は、そのチェックサムを別に計算して入力してください。
ボードや USB シリアル変換アダプタをパソコンに接続します。Windows ではデバイスマネージャーの「ポート (COM と LPT)」に新しい COM ポートが現れるはずです。現れない場合は、ドライバーが入っていないか、充電専用ケーブルを使っています。
ボーレート、データビット、パリティ、ストップビットはファームウェアと一致させる必要があります。よく使われるのは 115200 8N1 と 9600 8N1 です。接続中は設定がロックされるので、変更するには切断してください。
「ポートを選択して接続」をクリックし、ブラウザの一覧からポートを選びます。ステータスバーには USB ベンダー ID から判別したチップメーカーが表示されます(例:WCH (QinHeng)、Silicon Labs CP210x)。ハードウェアがない場合は「デモデバイス」をクリックしてください。
テキスト表示では受信した1行ごとに1行ずつ、ミリ秒のタイムスタンプ付きで表示されます。バイナリプロトコルは HEX 表示に切り替えると、無通信時間でフレームが分割されます。文字化けしたら、文字コードのヒントに従ってください。
テキストか HEX、改行コード、チェックサムを選び、バイトのプレビューを確認して Ctrl+Enter を押します。ポーリングには定期送信を使います。作業が終わったら「ログを保存」をクリックして、すべてを書き出します。
機器は GBK で送っているのに、ターミナルが UTF-8 でデコードしているため、中国語の文字がすべて置換文字や意味不明な記号になります。データ自体は正常なので、正しい文字コードで読めば解決します。
文字コード:UTF-8 表示:�¶�:25��
文字コード:GBK 表示:温度:25℃
ESP8266 や ESP32 の AT ファームウェアは、\r\n を受け取ってから初めてコマンドの解析を始めます。改行コードが「なし」のままでは、41 54 の2バイトしか書き込まれていません。
41 54
41 54 0D 0A
RTU フレームには下位バイトを先にした正しい CRC が必要で、その後ろには何も付けてはいけません。CRC がない、バイトの順序が逆、あるいは HEX モードで 0D 0A の改行コードが付いたままだと、スレーブはフレームを破損とみなして破棄し、何も返しません。
01 03 00 00 00 0A CD C5
01 03 00 00 00 0A C5 CD
この場合、文字コードが原因であることはまれです。ボーレート(あるいはデータビットやパリティ)が機器と合っておらず、すべてのバイトが間違ったタイミングでサンプリングされています。機器の2倍や半分のボーレートだと、受信するバイト数は送られた数よりたいていずっと少ないか多くなり、その大半は意味をなしません。ファームウェアが設定している値を使ってください。
ターミナル 57600 8N1、機器 115200 8N1
ターミナル 115200 8N1、機器 115200 8N1
Web と API
ブラウザでcurlコマンドを作成 — メソッド・ヘッダー・認証・ボディを設定してすぐにコピーできるコマンドを生成。Bearer・POST JSON・ファイルアップロードのプリセットも搭載。無料・プライバシー保護・登録不要。
Web と API
bcrypt・Apache MD5(apr1)・SHA-1 などで htpasswd エントリーを生成。Apache・nginx・Docker 設定をすぐに貼り付けられる形式で出力。100% ブラウザ完結・アップロード不要。
Web と API
Open Graph、Twitter Card、SEO メタタグをまとめて生成。Google・Facebook・X のライブプレビュー付き。100% 無料・ブラウザ内処理・登録不要で、コードをそのままコピー&ペーストできます。
Web と API
どの nginx location ブロックが選ばれ、他はなぜ負けたのかを表示。=、^~、~、~* の優先順位を検証できる無料オンラインテスター。
Web と API
IPv4 の IP アドレスや CIDR から、ネットワークアドレス・ブロードキャストアドレス・利用可能ホスト範囲・サブネットマスク・ワイルドカードマスクを即座に計算。RFC 3021 の /31 点対点リンクやサブネット分割表にも対応し、すべてブラウザ内で完結します。
Web と API
16進数の桁を数える必要はもうありません。無料のオンライン traceparent デコーダー。ブラウザ内で動作し、何もアップロードしません。trace ID、span ID、trace-flags の8ビット全部、tracestate 検証、Datadog・X-Ray・B3 変換に対応。