Skip to content

Терминал COM-порта онлайн (монитор последовательного порта)

Монитор последовательного порта в Chrome или Edge без установки: CH340, CP2102, ESP32, Arduino; текст или HEX, отправка по таймеру, Modbus CRC-16 добавляется сам. Кракозябры? Инструмент распознает GBK и перерисует уже принятое.

Работает в браузере Бесплатно
Браузер читает порт и пишет в него напрямую — данные порта не отправляются на наши серверы.
Не подключено

Подключите устройство — присланные им данные появятся здесь.

ms
Быстрая отправка
Пути отправки и приёма побайтно проверены на имитации последовательного порта в браузере: символы GBK и UTF-8, разорванные между чтениями, CRC-16/MODBUS (01 03 00 00 00 0A → C5 CD, 01 06 00 01 00 03 → 98 0B), XOR, 8-битная сумма и деление на кадры по паузам покрыты модульными и сквозными тестами, а эталонные значения CRC взяты из независимой реализации. — Инженерная команда Go-Tools · Oct 11, 2026

Собрано и проверено инженерной командой Go Tools.

Терминал COM-порта: быстрые ответы

Какие браузеры умеют открывать последовательный порт?

Десктопные Chrome, Edge и Opera В этих браузерах на базе Chromium (Chrome 89 и новее) есть Web Serial API: откройте страницу и нажмите «Выбрать порт и подключиться». Десктопный Firefox 151 и новее тоже подойдёт, если установить предложенное им дополнение с разрешением для сайта; Safari и iOS не поддерживаются. Демо-устройство показывает все функции в любом браузере.

Почему китайский текст, выведенный через printf, превращается в кракозябры?

Частая причина: устройство отправляет GBK Китайские проекты для микроконтроллеров в Keil или IAR часто сохранены в GBK, поэтому printf отправляет байты GBK. Инструмент замечает, что данные корректно читаются как GBK, предлагает переключиться и перерисовывает уже принятое. Если искажены и латинские буквы с цифрами, сначала проверьте скорость.

Что означает ошибка Failed to open serial port?

Браузер не сообщает причину При любой неудаче выводится одно и то же сообщение: Failed to open serial port. Проверьте типичные причины по очереди: закройте другие терминалы, монитор порта Arduino IDE и отладчики; на Linux добавьте пользователя в группу dialout (на Arch — uucp); убедитесь, что устройство всё ещё подключено; попробуйте стандартную скорость.

Какой байт CRC Modbus отправляет первым?

Младший байт CRC-16/MODBUS от 01 03 00 00 00 0A равен 0xCDC5, а в линию уходит как C5 CD. Выберите «Добавить контрольную сумму» → CRC-16/MODBUS — инструмент допишет её именно в таком порядке и покажет в предпросмотре.

AT-команды остаются без ответа?

Завершайте строку \r\n AT-прошивка ESP8266 и ESP32 считает концом команды возврат каретки + перевод строки (\r\n), поэтому голое AT просто ждёт продолжения. Выберите конец строки \r\n (CRLF) и отправьте снова.

Что такое онлайн-терминал последовательного порта?

Терминал последовательного порта открывает на компьютере последовательный порт — COM-порт, который обычно создаёт микросхема-преобразователь USB–UART вроде CH340 или CP2102, — и обменивается байтами с устройством на заданной скорости: показывает лог, который печатает микроконтроллер, отправляет AT-команды модулю, общается с Modbus-устройством. Привычные инструменты для этого — десктопные программы. Этот терминал работает на встроенном в браузер Web Serial API, поэтому ничего устанавливать не нужно: он запускается в Chrome и Edge на Windows, macOS и Linux.

Браузер читает порт и пишет в него напрямую; инструмент не отправляет данные последовательного порта на наши серверы. Сама страница тоже не может искать порты: она открывает только тот порт, который вы выбрали и разрешили в диалоге браузера.

От большинства терминалов этот инструмент отличают две вещи. Он хранит принятые байты в исходном виде, поэтому при переключении между UTF-8 и GBK или между видами «Текст» и HEX весь экран перерисовывается с новой настройкой — кракозябры не означают, что всё придётся начинать заново. И он заранее показывает каждый байт, который собирается записать, отдельно помечая контрольную сумму и конец строки; об опечатке в 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

Возможности веб-терминала последовательного порта

Без установки — Windows, Mac и Linux

Работает на Web Serial API браузера: десктопные Chrome, Edge и Opera подключаются к адаптерам на CH340, CP2102, FT232 и PL2303, а также к встроенному USB-порту плат вроде ESP32-S3 и Arduino. Выручает на рабочих компьютерах, где нельзя ставить программы, или на Mac, где нет привычного терминала.

Диагностика нечитаемого текста

Если принятые байты декодируются в мусор, инструмент перечитывает последние данные в другой кодировке и, когда получается осмысленный текст, предлагает «Переключить на GBK». Переключение заново декодирует всё уже принятое, а не только новые данные. Есть и вид ASCII / Latin-1 — байт на символ.

Текст и HEX с предпросмотром байтов

HEX можно вводить как 01 03 00, 0x01,0x03 или 010300; о недопустимых символах и нечётном числе цифр инструмент сообщает, а не пропускает их. Байты, которые будут записаны, видны под полем ввода, контрольная сумма и конец строки — в квадратных скобках. В текстовом режиме доступны концы строк \r\n, \n или \r и необязательные escape-последовательности \r \n \xHH.

CRC, XOR и сумма добавляются сами

К каждому кадру можно дописать CRC-16/MODBUS (младший байт первым), XOR (BCC) или 8-битную сумму — для Modbus RTU отдельный калькулятор не нужен. Для других вариантов CRC сначала подберите параметры в калькуляторе CRC, а байты допишите вручную.

Кадры по паузам, метки времени в мс

В виде HEX новый кадр начинается, как только линия молчит дольше заданного числа миллисекунд (по умолчанию 50 мс), поэтому протоколы «запрос — ответ» выводятся по кадру на строку. У каждой строки есть метка времени с точностью до миллисекунды, а счётчики байтов обновляются в реальном времени.

Отправка по таймеру, история и экспорт лога

Повторяйте команду с фиксированным интервалом для опроса или длительных прогонов, отправляйте недавние команды повторно одним щелчком и экспортируйте лог в текст с метками времени, направлением и исходным HEX — чтобы потом заново декодировать его или разобрать другим инструментом.

Примеры: AT-команды, Modbus, кракозябры

Проверка AT-модуля (AT-прошивка ESP8266 / ESP32)

Отправка (текст, конец строки \r\n): AT
Записанные байты: 41 54 0D 0A
Ответ: OK

Прошивка ESP-AT считает команду законченной на возврате каретки + переводе строки; если записаны только 41 54, модуль продолжает ждать. С концом строки \r\n предпросмотр показывает 41 54 [0D 0A].

Чтение регистров хранения Modbus RTU (CRC добавляется автоматически)

Отправка (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 регистров), а последние два байта — снова CRC с младшим байтом первым. Демо-устройство отвечает ровно в таком формате.

Китайский текст с микроконтроллера выводится кракозябрами

Принято: CE C2 B6 C8 3A 32 35 A1 E6 0D 0A
Как UTF-8: �¶�:25��
Как GBK: 温度:25℃

Одни и те же байты в UTF-8 дают мусор, а в GBK читаются как 温度:25℃ (температура: 25 °C). Ничего не повреждено — просто две стороны по-разному понимают кодировку. Инструмент распознаёт такую ситуацию и предлагает переключиться.

Кадр собственного протокола с контрольной суммой XOR

Отправка (HEX, добавить XOR / BCC): AA 55 01 02
Записанные байты: AA 55 01 02 FC

XOR сворачивает все байты полезной нагрузки в один: AA ⊕ 55 ⊕ 01 ⊕ 02 = FC. Контрольная сумма охватывает все байты в поле ввода; если ваш протокол не включает заголовок в расчёт, посчитайте эту сумму отдельно и введите её вручную.

Как пользоваться терминалом COM-порта онлайн

  1. 1

    Подключите устройство

    Подключите плату или адаптер USB–UART к компьютеру. В Windows в Диспетчере устройств, в разделе «Порты (COM и LPT)», должен появиться новый COM-порт; если его нет, не установлен драйвер или кабель годится только для зарядки.

  2. 2

    Настройте параметры порта

    Скорость, биты данных, чётность и стоп-биты должны совпадать с прошивкой — чаще всего это 115200 8N1 и 9600 8N1. Пока порт подключён, настройки заблокированы; чтобы изменить их, отключитесь.

  3. 3

    Выберите порт и подключитесь

    Нажмите «Выбрать порт и подключиться» и выберите порт в списке браузера. По USB Vendor ID строка состояния показывает производителя микросхемы, например WCH (QinHeng) или Silicon Labs CP210x. Оборудования нет? Нажмите «Демо-устройство».

  4. 4

    Следите за входящими данными

    Вид «Текст» выводит каждую принятую строку отдельно, с меткой времени в миллисекундах. Для двоичных протоколов переключитесь на вид HEX — он делит поток на кадры по паузам. Если текст нечитаем, следуйте подсказке о кодировке.

  5. 5

    Отправьте данные и сохраните лог

    Выберите «Текст» или HEX, конец строки и контрольную сумму, проверьте предпросмотр байтов и нажмите Ctrl+Enter. Для опроса используйте отправку по таймеру. Закончив, нажмите «Сохранить лог», чтобы выгрузить всё.

Типичные проблемы: мусор, нет ответа, порт не открывается

Китайский текст превращается в кракозябры

Устройство отправляет GBK, а терминал декодирует UTF-8, поэтому каждый китайский иероглиф превращается в символы замены или случайные знаки. С данными всё в порядке — их нужно читать в правильной кодировке.

✗ Неверно
Кодировка: UTF-8
На экране: �¶�:25��
✓ Верно
Кодировка: GBK
На экране: 温度:25℃

AT-команда остаётся без ответа

AT-прошивка ESP8266 и ESP32 начинает разбор команды только после \r\n. С концом строки «Нет» записаны только два байта — 41 54.

✗ Неверно
41 54
✓ Верно
41 54 0D 0A

Ведомое устройство Modbus не отвечает

Кадру RTU нужен правильный CRC с младшим байтом первым, и после него не должно быть ничего. Без CRC, с переставленными байтами или с концом строки 0D 0A, который в режиме HEX остался включённым, ведомое устройство отбрасывает кадр как повреждённый и ничего не отвечает.

✗ Неверно
01 03 00 00 00 0A CD C5
✓ Верно
01 03 00 00 00 0A C5 CD

Мусор во всём, даже в буквах и цифрах

Дело здесь редко в кодировке. Скорость — или биты данных, или чётность — не совпадает с устройством, поэтому каждый байт считывается не в те моменты; если скорость терминала вдвое выше или вдвое ниже, чем у устройства, байтов обычно приходит гораздо меньше или гораздо больше, чем было отправлено, и большинство из них — мусор. Используйте значения, заданные в прошивке.

✗ Неверно
Терминал 57600 8N1, устройство 115200 8N1
✓ Верно
Терминал 115200 8N1, устройство 115200 8N1

Когда пригодится терминал в браузере

Отладочный вывод Arduino и ESP32
Читайте, что печатает Serial.println(), — показания датчиков, смены состояний — с метками времени в миллисекундах, чтобы отслеживать порядок выполнения.
Логи printf на STM32 и 8051
printf, перенаправленный в USART, в китайскоязычных проектах часто выводит GBK. Переключите кодировку здесь вместо того, чтобы менять прошивку.
Пусконаладка устройств Modbus RTU
Общайтесь со счётчиками и PLC через адаптер RS-485–USB: отправляйте HEX с добавленным CRC и смотрите ответы, разбитые на кадры. Регистры, в которых хранятся числа с плавающей точкой, приходят как четыре исходных байта в формате IEEE 754.
Настройка модулей с AT-командами
Отправляйте AT-команды модулям Wi-Fi, сотовой связи и Bluetooth с правильным концом строки и держите частые команды в истории отправки, чтобы повторять их одним щелчком.
Быстрые проверки на чужих компьютерах
На рабочем ПК с ограничениями, общем лабораторном компьютере, Mac или Linux-машине просто откройте страницу и работайте. Чтобы прочитать снятый HEX как текст в других кодировках, вставьте его в конвертер Hex в текст.

Как работают последовательный порт и Web Serial

Как Web Serial API открывает порт
Браузер открывает порт через последовательный драйвер операционной системы — COM-порт в Windows, /dev/cu.* в macOS, /dev/ttyUSB* или /dev/ttyACM* в Linux — и передаёт странице два потока байтов: ReadableStream для входящих данных и WritableStream для исходящих. Доступ выдаётся отдельно для каждого порта и только через собственное окно выбора браузера; страница не может сама получить список последовательных портов на вашем компьютере.
8N1 и скорость
8N1 означает 8 бит данных, без контроля чётности, 1 стоп-бит. Вместе со старт-битом каждый байт занимает на линии 10 бит, поэтому 115200 бод дают не больше примерно 11 520 байт в секунду, а 9600 бод — около 960. Сильное расхождение скорости или несовпадение битов данных либо чётности превращает данные в мусор (Windows к тому же сообщает об ошибках кадра).
Зачем делить поток на кадры
В последовательной линии нет понятия пакета. Микросхема USB–UART собирает принятые байты в USB-пакеты, и каждое чтение в браузере возвращает один такой фрагмент — кадр может прийти двумя фрагментами, а несколько кадров — одним. Вид HEX заново делит поток по паузам между фрагментами. Браузер знает только, когда каждый фрагмент дошёл до страницы, а не когда каждый байт прошёл по линии, поэтому порог по умолчанию — 50 мс; подстройте его под свой протокол. Сам Modbus RTU требует между кадрами тишины не менее 3,5 символьного интервала — около 4 мс на 9600 бод, — а браузер не может измерить это настолько точно, поэтому деление по паузам — приближение, а не точный детектор кадров Modbus.
Байты UTF-8 и GBK
温度 (температура) в UTF-8 — это E6 B8 A9 E5 BA A6, по три байта на символ, а в GBK — CE C2 B6 C8, по два байта на символ. Байты одного символа могут разделиться между двумя чтениями, поэтому декодирование идёт потоково и хранит неполный хвост до следующего фрагмента; смена кодировки заново декодирует исходные байты.
Как устроены три контрольные суммы
CRC-16/MODBUS: полином 0x8005 (0xA001 в отражённой форме), начальное значение 0xFFFF, вход и выход отражены, финального XOR нет, младший байт отправляется первым. XOR (BCC): все байты складываются по XOR в один байт. SUM8: все байты суммируются, остаются только младшие 8 бит. Все три считаются только по полезной нагрузке и никогда не включают добавленный после неё конец строки.

Советы по отладке через последовательный порт

Сначала настройки, потом кодировка
Если вывод нечитаем, сначала убедитесь, что скорость, биты данных, чётность и стоп-биты совпадают с устройством. При неверных настройках ни одна кодировка не даст правильного текста.
Для двоичных протоколов — вид HEX
В протоколах вроде Modbus полно байтов 00, 0D и 0A, которые текстовый вид принимает за переводы строк или управляющие символы, — все они перечислены в таблице ASCII. Переключитесь на вид HEX и задайте порог разделения кадров чуть больше паузы, с которой отвечает устройство.
Одна кодировка в прошивке и терминале
В новых проектах сохраняйте исходники в UTF-8 — тогда логи читаются правильно где угодно. Для существующих проектов в GBK один раз выберите здесь GBK — инструмент запомнит выбор.
Храните исходный HEX-лог
При поиске плавающих неисправностей экспортированный лог сохраняет исходные байты каждого фрагмента и метку времени в миллисекундах. Если сохранить только декодированный текст, выбор кодировки навсегда застынет в файле.
Не делайте интервал отправки по таймеру слишком коротким
Интервал должен превышать время, которое устройству нужно на обработку команды и ответ, иначе запросы накапливаются и ответы перестают им соответствовать. Возьмите время ответа из документации к устройству и оставьте запас.

Терминал COM-порта: частые вопросы

Нужно ли что-нибудь скачивать или устанавливать?
В Chrome и Edge — нет: страница использует встроенный в браузер Web Serial API, без десктопного клиента и без расширений. В Firefox 151 и новее сначала установите дополнение с разрешением для сайта, которое он предложит: это механизм разрешений браузера, а не драйвер последовательного порта. В любом случае нужен драйвер микросхемы преобразователя: если COM-порт виден в Диспетчере устройств, драйвер работает; если нет, скачайте драйвер с сайта производителя микросхемы.
Какие браузеры подходят? Можно ли работать с телефона?
Десктопные Chrome, Edge и Opera (Chrome 89 и новее) подключаются напрямую. Десктопный Firefox 151 и новее тоже работает после установки дополнения с разрешением для сайта, которое он предложит. Safari и iOS не поддерживают Web Serial. Chrome для Android 138+ открывает доступ только к последовательным портам Bluetooth (RFCOMM); для проводных последовательных портов USB нужны Chrome 148+ и Android 17, причём сам телефон должен предоставлять доступ к проводным последовательным портам. Если страница не может подключиться, она так и скажет, а демо-устройство всё равно работает.
Загружаются ли данные порта на сервер?
Нет. Браузер читает порт и пишет в него напрямую, а инструмент никогда не передаёт на наши серверы байты, которые вы отправляете или принимаете. История отправки и настройки хранятся в вашем же браузере.
После нажатия «Выбрать порт и подключиться» список портов пуст. Что делать?
Операционная система не обнаружила последовательное устройство. Проверьте, что кабель передаёт данные, а не только питание, и что на плату подано питание. В Windows COM-порт должен появиться в Диспетчере устройств; если его нет, установите драйвер для микросхемы (CH340, CP2102 и т. д.).
Почему порт не открывается?
Браузер сообщает о любой неудаче одним и тем же текстом — Failed to open serial port., — поэтому причину приходится искать методом исключения. Одна из частых причин — порт занят другой программой: закройте другие терминалы, монитор порта Arduino IDE, IDE в режиме отладки или другую вкладку с этим инструментом. На Linux пользователь должен входить в группу dialout (на Arch — uucp). Также проверьте, что устройство всё ещё подключено, и попробуйте стандартную скорость — некоторые драйверы отвергают нестандартные.
Как исправить кракозябры вместо китайского текста?
Сначала посмотрите на латинские буквы и цифры. Если с ними всё в порядке и искажён только китайский текст, дело в несовпадении кодировок; частый случай — устройство отправляет GBK. Инструмент это распознаёт, предлагает переключиться и перерисовывает уже принятое. Если искажены и буквы с цифрами, с устройством не совпадает скорость или другая настройка.
Как отправить HEX? Какие форматы принимаются?
Переключите режим отправки на HEX и введите 01 03 00 0A, 0x01,0x03 или 0103000A — в верхнем или нижнем регистре. О недопустимых символах вроде G и нечётном числе цифр инструмент сообщает и никогда их не пропускает, а байты к записи показываются в предпросмотре под полем ввода.
Как добавить Modbus CRC и почему младший байт идёт первым?
Выберите в списке «Добавить контрольную сумму» вариант CRC-16/MODBUS и введите только адрес, код функции и данные — CRC допишется в конце. Modbus RTU отправляет младший байт CRC первым: 0xCDC5 уходит как C5 CD.
Почему один кадр разбит на две строки или несколько кадров слились в одну?
Вид HEX делит поток на кадры по паузе между поступлениями данных, по умолчанию 50 мс. Если устройство посреди кадра замолкает дольше, кадр разбивается; если кадры идут плотнее, они сливаются. Задайте порог больше паузы внутри кадра и меньше промежутка между кадрами.
Что такое DTR и RTS и почему плата перезагрузилась при подключении?
DTR и RTS — две управляющие линии последовательного порта, которые на многих платах заведены на схему сброса. Открывая порт, Chrome делает обе линии активными — это особенность реализации, а не требование стандарта, — поэтому платы, которые сбрасываются по DTR, например Arduino Uno, обычно один раз перезагружаются при подключении, и веб-страница не может этому помешать. В распространённой схеме автопрошивки ESP32 чип работает нормально, пока активны обе линии, и удерживается в сбросе, только когда RTS активна, а DTR — нет. Пользуйтесь переключателями после подключения; если ESP32 замолчал, проверьте, не выключили ли вы один только DTR.
Можно ли одновременно открыть тот же порт в другом терминале?
В Windows — нет: COM-порт может быть открыт только в одной программе одновременно. В Linux и macOS это зависит от того, запросила ли первая программа монопольный доступ. Если запросила, открыть порт здесь не получится; если нет, порт откроют обе программы и будут делить входящие данные между собой, что выглядит как потеря байтов. Работайте с портом из одной программы за раз.
Поддерживаются ли нестандартные скорости?
Да. Последний пункт списка — «Произвольная…», где можно ввести любую скорость, например 74880 — на ней печатает загрузочный ROM ESP8266. Браузер передаёт значение без изменений; заработает ли оно, зависит от микросхемы USB–UART и её драйвера. Некоторые округляют его до ближайшей поддерживаемой скорости, а на некоторых системах порт после этого не открывается.
Что такое демо-устройство?
Это встроенный в страницу имитатор микроконтроллера, так что оборудование не нужно. При подключении он выводит стартовое сообщение в GBK — готовую демонстрацию подсказки о кодировке, — а затем каждые 2 секунды сообщает температуру. На AT он отвечает OK, на остальные AT-команды — ERROR. Запрос чтения Modbus функцией 03, адресованный ведомому 1 и с правильным CRC, получает ответ; как и настоящее ведомое устройство, имитатор молчит, если CRC неверен или кадр адресован другому устройству. Всё остальное возвращается эхом.

Похожие инструменты

Все инструменты →

Генератор и конструктор curl-команд

Веб и API

Создавайте curl-команды прямо в браузере: метод, заголовки, авторизация, тело — готовая команда мгновенно. Пресеты для Bearer, POST JSON, загрузки файлов. Бесплатно, приватно, без регистрации.

htpasswd Генератор — bcrypt, Apache MD5 (apr1) и Basic Auth

Веб и API

Генерируйте записи htpasswd с bcrypt, Apache MD5 (apr1), SHA-1 и другими алгоритмами. Получайте готовые конфиги для Apache, nginx и Docker. 100% в браузере — без загрузки данных.

Генератор Open Graph и мета-тегов

Веб и API

Создавайте мета-теги Open Graph, Twitter Card и SEO с живым предпросмотром в Google, Facebook и X. 100% бесплатно, в браузере, без регистрации — просто скопируйте код.

Тестер nginx location — почему побеждает этот блок

Веб и API

Смотрите, какой блок location в nginx победит — и почему проиграли все остальные. Бесплатный тестер совпадений для =, ^~, ~ и ~*, целиком в вашем браузере.

Калькулятор подсетей IPv4

Веб и API

Рассчитайте адрес сети, широковещательный адрес, диапазон узлов, маску подсети и обратную маску для любого блока IPv4 CIDR. Учитывает /31 по RFC 3021, делит блок на подсети, работает в браузере.

Декодер traceparent — W3C Trace Context

Веб и API

Хватит считать hex-цифры. Бесплатный онлайн-декодер traceparent — работает в браузере, ничего не уходит. Trace ID, span ID, 8 бит trace-flags, tracestate, Datadog/X-Ray/B3.