Skip to content

Terminal Serial Online (Monitor Serial no Navegador)

Monitor serial no Chrome ou Edge, sem instalar: conecte CH340, CP2102, ESP32 ou Arduino, envie texto ou HEX, repita por timer e anexe o CRC-16 do Modbus sozinho. Texto embaralhado? Ele detecta GBK e redesenha o que já chegou.

Roda no navegador Grátis
O seu navegador lê e escreve na porta diretamente — os dados seriais nunca são enviados para os nossos servidores.
Desconectado

Conecte um dispositivo e os dados que ele enviar aparecem aqui.

ms
Envio rápido
Os caminhos de envio e recepção são testados byte a byte contra uma porta serial simulada no navegador: caracteres GBK e UTF-8 divididos entre leituras, CRC-16/MODBUS (01 03 00 00 00 0A → C5 CD, 01 06 00 01 00 03 → 98 0B), XOR, soma de 8 bits e separação de quadros por pausas são cobertos por testes unitários e de ponta a ponta, com os valores de CRC tirados de uma implementação independente. — Equipe Go Tools · Oct 11, 2026

Desenvolvido e verificado pela equipe de engenharia da Go Tools.

Respostas rápidas sobre o terminal serial

Quais navegadores conseguem abrir uma porta serial?

Chrome, Edge e Opera para desktop Estes navegadores baseados em Chromium (Chrome 89 em diante) trazem a Web Serial API: abra a página e clique em Selecionar porta e conectar. O Firefox 151 ou mais recente para desktop também funciona depois que você instala o complemento de permissão do site que ele oferece; Safari e iOS não têm suporte. O dispositivo de demonstração mostra todos os recursos em qualquer navegador.

Por que o texto em chinês impresso com printf sai embaralhado?

Uma causa comum: o dispositivo envia GBK Projetos chineses de microcontrolador no Keil ou no IAR muitas vezes são salvos em GBK, então o printf envia bytes GBK. A ferramenta percebe quando os dados fazem sentido lidos como GBK, oferece a troca e redesenha o que já foi recebido. Se letras e números também saem embaralhados, confira primeiro o baud rate.

O que significa Failed to open serial port?

O navegador não diz o motivo Toda falha gera a mesma mensagem, Failed to open serial port. Percorra as causas de sempre: feche outras ferramentas seriais, o monitor serial da Arduino IDE e depuradores; no Linux, adicione seu usuário ao grupo dialout (uucp no Arch); verifique se o dispositivo continua conectado; tente um baud rate padrão.

Qual byte do CRC o Modbus envia primeiro?

O byte baixo O CRC-16/MODBUS de 01 03 00 00 00 0A é 0xCDC5, que vai para o barramento como C5 CD. Escolha Anexar checksum → CRC-16/MODBUS e a ferramenta o acrescenta nessa ordem e o mostra na prévia.

Comandos AT ficam sem resposta?

Termine a linha com \r\n O firmware AT do ESP8266 e do ESP32 considera retorno de carro + avanço de linha (\r\n) como o fim de um comando, então um AT sozinho fica esperando. Defina o fim de linha como \r\n (CRLF) e envie de novo.

O que é um terminal serial online?

Um terminal serial abre uma porta serial do seu computador — uma porta COM, normalmente criada por um chip conversor USB-serial como o CH340 ou o CP2102 — e troca bytes com um dispositivo no baud rate dele: ler o log que um microcontrolador imprime, mandar comandos AT para um módulo, conversar com um equipamento Modbus. As ferramentas tradicionais são programas de desktop. Esta usa a Web Serial API embutida no navegador, então não precisa de instalação e funciona no Chrome e no Edge em Windows, macOS e Linux.

O seu navegador lê e escreve na porta diretamente; a ferramenta nunca envia os dados seriais para os nossos servidores. A página também não consegue procurar portas por conta própria: ela só abre uma porta que você escolhe e autoriza na janela do navegador.

Duas coisas diferenciam esta ferramenta da maioria dos terminais seriais. Ela guarda os bytes brutos que recebe, então trocar entre UTF-8 e GBK, ou entre a visualização Texto e HEX, redesenha a tela inteira com a nova configuração — saída embaralhada não significa começar do zero. E ela mostra uma prévia de cada byte que está prestes a escrever, com o checksum e o fim de linha marcados à parte; um erro de digitação no HEX é apontado junto com o caractere culpado, em vez de ser descartado em silêncio do quadro.

# 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

Recursos do terminal serial web

Sem instalação — Windows, Mac e Linux

Construído sobre a Web Serial API do navegador: Chrome, Edge e Opera para desktop se conectam a adaptadores CH340, CP2102, FT232 e PL2303, além da USB serial nativa de placas como o ESP32-S3 e o Arduino. Útil em máquinas corporativas travadas ou num Mac sem uma ferramenta serial de que você goste.

Diagnóstico de texto embaralhado

Quando os bytes que chegam viram lixo, a ferramenta relê os dados mais recentes em outra codificação e, se fizer sentido, oferece Mudar para GBK. A troca redecodifica tudo o que já foi recebido, não só os dados novos. Também há uma visualização ASCII / Latin-1 de um byte por caractere.

Texto e HEX, com prévia dos bytes

Digite HEX como 01 03 00, 0x01,0x03 ou 010300; caracteres inválidos e quantidade ímpar de dígitos são apontados, não ignorados. Os bytes a escrever aparecem abaixo da entrada, com checksum e fim de linha entre colchetes. O modo texto oferece os fins de linha \r\n, \n ou \r e escapes opcionais \r \n \xHH.

Checksums CRC, XOR e soma anexados para você

Anexe CRC-16/MODBUS (byte baixo primeiro), XOR (BCC) ou uma soma de 8 bits a cada quadro — sem calculadora à parte para Modbus RTU. Para outras variantes de CRC, descubra os parâmetros antes com uma calculadora de CRC e anexe os bytes à mão.

Quadros separados por pausas, marcas de tempo em ms

Na visualização HEX, um novo quadro começa sempre que a linha fica em silêncio por mais que o número de milissegundos definido (50 ms por padrão), então protocolos de pergunta e resposta mostram um quadro por linha. Cada linha leva uma marca de tempo em milissegundos e os contadores de bytes se atualizam ao vivo.

Envio temporizado, histórico e exportação do log

Repita um comando em intervalo fixo para polling ou testes de longa duração, reenvie comandos recentes com um clique e exporte o log como texto com marcas de tempo, direção e HEX bruto — assim ele pode ser redecodificado ou analisado por outra ferramenta depois.

Exemplos seriais: comandos AT, Modbus, texto embaralhado

Testando um módulo AT (firmware AT do ESP8266 / ESP32)

Enviar (texto, fim de linha \r\n): AT
Bytes escritos: 41 54 0D 0A
Resposta: OK

O firmware ESP-AT encerra um comando no retorno de carro + avanço de linha; com só 41 54 escritos, o módulo continua esperando. Com o fim de linha \r\n, a prévia mostra 41 54 [0D 0A].

Lendo holding registers no Modbus RTU (CRC adicionado automaticamente)

Enviar (HEX, anexar CRC-16/MODBUS): 01 03 00 00 00 0A
Bytes escritos: 01 03 00 00 00 0A C5 CD
Resposta do escravo: 01 03 14 00 64 00 65 … 00 6D 63 D1

Escravo 01, função 03, endereço inicial 0000, quantidade 000A. O CRC é 0xCDC5 e o Modbus envia o byte baixo primeiro, então C5 CD vai para o barramento. Na resposta, 14 é a contagem de bytes (20 bytes = 10 registradores) e os dois últimos bytes são, de novo, um CRC com o byte baixo primeiro. O dispositivo de demonstração responde exatamente nesse formato.

Texto em chinês impresso por um microcontrolador aparece como lixo

Recebido: CE C2 B6 C8 3A 32 35 A1 E6 0D 0A
Como UTF-8: �¶�:25��
Como GBK: 温度:25℃

Os mesmos bytes são lixo em UTF-8 e se leem 温度:25℃ (temperatura: 25 °C) em GBK. Nada está corrompido — as duas pontas só discordam sobre a codificação. A ferramenta detecta isso e oferece a troca.

Quadro de protocolo próprio com checksum XOR

Enviar (HEX, anexar XOR / BCC): AA 55 01 02
Bytes escritos: AA 55 01 02 FC

O XOR combina todos os bytes do payload: AA ⊕ 55 ⊕ 01 ⊕ 02 = FC. O checksum cobre todos os bytes da caixa de entrada; se o seu protocolo deixa o cabeçalho fora do cálculo, calcule esse checksum separadamente e digite-o.

Como usar o terminal serial online

  1. 1

    Conecte o dispositivo

    Ligue a placa ou o adaptador USB-serial ao computador. No Windows, uma nova porta COM deve aparecer em Portas (COM e LPT) no Gerenciador de Dispositivos; se não aparecer, falta o driver ou o cabo é só de carga.

  2. 2

    Ajuste as configurações da porta

    Baud rate, bits de dados, paridade e bits de parada precisam bater com o firmware — 115200 8N1 e 9600 8N1 são os mais comuns. As configurações ficam travadas durante a conexão; desconecte para mudá-las.

  3. 3

    Selecione a porta e conecte

    Clique em Selecionar porta e conectar e escolha a porta na lista do navegador. A barra de status mostra o fabricante do chip pelo vendor ID USB, por exemplo WCH (QinHeng) ou Silicon Labs CP210x. Sem hardware? Clique em Dispositivo de demonstração.

  4. 4

    Acompanhe os dados recebidos

    A visualização Texto mostra uma linha para cada linha recebida, cada uma com marca de tempo em milissegundos. Para protocolos binários, mude para a visualização HEX, que separa os quadros pelas pausas. Se o texto vier embaralhado, siga a dica de codificação.

  5. 5

    Envie e salve o log

    Escolha Texto ou HEX, um fim de linha e um checksum, confira a prévia dos bytes e pressione Ctrl+Enter. Use o envio temporizado para polling. Ao terminar, clique em Salvar log para exportar tudo.

Problemas seriais comuns: lixo, sem resposta, porta que não abre

Texto em chinês aparece como lixo

O dispositivo envia GBK, mas o terminal decodifica UTF-8, então cada caractere chinês vira caracteres de substituição ou símbolos soltos. Os dados estão corretos; leia-os com a codificação certa.

✗ Incorreto
Codificação: UTF-8
Exibido: �¶�:25��
✓ Correto
Codificação: GBK
Exibido: 温度:25℃

Comando AT sem resposta

O firmware AT do ESP8266 e do ESP32 só começa a interpretar um comando depois do \r\n. Com o fim de linha em Nenhum, só os dois bytes 41 54 foram escritos.

✗ Incorreto
41 54
✓ Correto
41 54 0D 0A

Escravo Modbus não responde

Um quadro RTU precisa de um CRC correto com o byte baixo primeiro, e nada depois dele. Sem o CRC, com os bytes dele trocados ou com um fim de linha 0D 0A ainda ativado no modo HEX, o escravo descarta o quadro como corrompido e não devolve nada.

✗ Incorreto
01 03 00 00 00 0A CD C5
✓ Correto
01 03 00 00 00 0A C5 CD

Tudo vira lixo, até letras e números

Isso raramente é problema de codificação. O baud rate — ou os bits de dados, ou a paridade — não bate com o dispositivo, então cada byte é amostrado nos momentos errados; com o dobro ou a metade do baud rate do dispositivo, normalmente chegam muito menos ou muito mais bytes do que foram enviados, a maioria sem sentido. Use os valores definidos no firmware.

✗ Incorreto
Terminal 57600 8N1, dispositivo 115200 8N1
✓ Correto
Terminal 115200 8N1, dispositivo 115200 8N1

Quando um terminal serial no navegador ajuda

Saída de depuração de Arduino e ESP32
Leia o que o Serial.println() imprime — leituras de sensores, mudanças de estado — com marcas de tempo em milissegundos para acompanhar a ordem de execução.
Logs de printf no STM32 e no 8051
printf redirecionado para uma USART em projetos em chinês costuma imprimir GBK. Troque a codificação aqui em vez de mexer no firmware.
Colocando dispositivos Modbus RTU para funcionar
Converse com medidores e PLCs por um adaptador RS-485 para USB: envie HEX com o CRC anexado e veja as respostas separadas em quadros. Registradores que guardam valores de ponto flutuante chegam como quatro bytes brutos no formato IEEE 754.
Configurando módulos de comandos AT
Envie comandos AT para módulos Wi-Fi, de rede celular e Bluetooth com o fim de linha certo, e mantenha os comandos frequentes no histórico de envio para reenviar com um clique.
Verificações rápidas em máquinas sem as suas ferramentas
Num PC corporativo travado, numa máquina compartilhada de laboratório, num Mac ou num Linux, abra a página e pronto. Para ler o HEX capturado como texto em outras codificações, cole-o no Hex para Texto.

Como funcionam a comunicação serial e a Web Serial

Como a Web Serial API abre uma porta
O navegador abre a porta pelo driver serial do sistema operacional — uma porta COM no Windows, /dev/cu.* no macOS, /dev/ttyUSB* ou /dev/ttyACM* no Linux — e entrega à página dois fluxos de bytes: um ReadableStream para os dados que chegam e um WritableStream para os que saem. O acesso é concedido porta a porta e só pelo seletor do próprio navegador; uma página não consegue listar sozinha as portas seriais da sua máquina.
8N1 e o baud rate
8N1 significa 8 bits de dados, sem paridade, 1 bit de parada. Com o bit de início, cada byte ocupa 10 bits na linha, então 115200 baud transportam no máximo cerca de 11.520 bytes por segundo, e 9600 baud cerca de 960. Uma diferença grande de baud rate, ou bits de dados ou paridade que não batem, transforma os dados em lixo (o Windows também acusa erros de enquadramento).
Por que os quadros precisam ser separados
Uma linha serial não tem noção de pacotes. O chip USB-serial junta os bytes recebidos em pacotes USB, e cada leitura do navegador devolve um desses blocos — um quadro pode chegar em dois blocos, ou vários quadros em um só. A visualização HEX volta a separar o fluxo pelo tempo ocioso entre os blocos. O navegador só sabe quando cada bloco chegou à página, não quando cada byte passou pelo fio, por isso o limite padrão é 50 ms; ajuste-o ao seu protocolo. O próprio Modbus RTU exige pelo menos 3,5 tempos de caractere de silêncio entre quadros — cerca de 4 ms a 9600 baud —, algo que um navegador não consegue medir com essa precisão; por isso, separar por pausas é uma aproximação, não um detector de quadros exato para Modbus.
Bytes em UTF-8 versus GBK
温度 (temperatura) é E6 B8 A9 E5 BA A6 em UTF-8, três bytes por caractere, e CE C2 B6 C8 em GBK, dois bytes por caractere. Os bytes de um caractere podem ficar divididos entre duas leituras, por isso a decodificação é feita em fluxo e guarda a cauda incompleta para o próximo bloco; trocar a codificação redecodifica tudo a partir dos bytes brutos.
Como funcionam os três checksums
CRC-16/MODBUS: polinômio 0x8005 (0xA001 na forma refletida), valor inicial 0xFFFF, entrada e saída refletidas, sem XOR final, enviado com o byte baixo primeiro. XOR (BCC): todos os bytes combinados por XOR em um único byte. SUM8: todos os bytes somados, mantendo só os 8 bits baixos. Os três cobrem apenas o payload, nunca o fim de linha acrescentado depois dele.

Dicas de depuração serial

Confira as configurações antes da codificação
Quando a saída vem embaralhada, primeiro garanta que baud rate, bits de dados, paridade e bits de parada batem com o dispositivo. Com as configurações erradas, nenhuma codificação vai ler corretamente.
Use a visualização HEX para protocolos binários
Protocolos como o Modbus estão cheios de bytes 00, 0D e 0A que a visualização de texto trata como quebras de linha ou caracteres de controle — a tabela ASCII lista todos eles. Mude para a visualização HEX e defina o intervalo entre quadros um pouco acima do intervalo de resposta do dispositivo.
Use uma só codificação no firmware e no terminal
Em projetos novos, salve os arquivos-fonte em UTF-8 para que os logs fiquem legíveis em qualquer lugar. Em projetos existentes em GBK, defina a codificação aqui como GBK uma única vez; a ferramenta se lembra.
Guarde o log HEX bruto
Ao caçar falhas intermitentes, o log exportado mantém os bytes brutos e a marca de tempo em milissegundos de cada bloco. Salvar só o texto decodificado congelaria a escolha de codificação dentro do arquivo.
Não use um intervalo de envio temporizado curto demais
O intervalo precisa ser maior que o tempo que o dispositivo leva para processar um comando e responder; caso contrário, as requisições se acumulam e as respostas deixam de corresponder a elas. Pegue o tempo de resposta no manual do dispositivo e deixe uma margem.

Perguntas frequentes sobre o terminal serial

Preciso baixar ou instalar alguma coisa?
No Chrome ou no Edge, não: a página usa a Web Serial API embutida no navegador — sem cliente desktop, sem extensão. No Firefox 151 ou mais recente, você primeiro instala o complemento de permissão do site que ele pede; isso é o mecanismo de permissão do navegador, não um driver serial. Em qualquer caso, você precisa do driver do chip serial: se aparece uma porta COM no Gerenciador de Dispositivos, o driver está funcionando; se não aparece, baixe o driver no site do fabricante do chip.
Quais navegadores funcionam? Dá para usar no celular?
Chrome, Edge e Opera para desktop (Chrome 89 em diante) conectam diretamente. O Firefox 151 ou mais recente para desktop também funciona depois que você instala o complemento de permissão do site que ele pede. Safari e iOS não suportam Web Serial. O Chrome para Android 138+ só expõe portas seriais Bluetooth (RFCOMM); a serial USB com fio exige Chrome 148+ no Android 17, e o próprio celular precisa expor portas seriais com fio. Onde a página não consegue conectar, ela avisa, e o dispositivo de demonstração continua funcionando.
Algum dado serial é enviado para um servidor?
Não. O seu navegador lê e escreve na porta diretamente, e a ferramenta nunca envia para os nossos servidores os bytes que você envia ou recebe. O histórico de envio e as configurações ficam guardados no seu próprio navegador.
A lista de portas fica vazia depois que clico em Selecionar porta e conectar. E agora?
O sistema operacional não detectou nenhum dispositivo serial. Verifique se o cabo transmite dados, e não só energia, e se a placa está alimentada. No Windows, uma porta COM deve aparecer no Gerenciador de Dispositivos; se não aparecer, instale o driver do chip (CH340, CP2102 e assim por diante).
Por que a porta não abre?
O navegador informa toda falha com a mesma mensagem, Failed to open serial port., então a causa precisa ser encontrada por eliminação. Uma causa comum é outro programa usando a porta: feche outras ferramentas seriais, o monitor serial da Arduino IDE, uma IDE que esteja depurando ou outra aba desta ferramenta. No Linux, seu usuário precisa estar no grupo dialout (uucp no Arch). Verifique também se o dispositivo continua conectado e tente um baud rate padrão — alguns drivers recusam valores incomuns.
Como corrijo texto em chinês embaralhado?
Olhe primeiro as letras e os números. Se estão certos e só o chinês está embaralhado, é uma incompatibilidade de codificação — um caso comum é um dispositivo enviando GBK. A ferramenta detecta isso, oferece a troca e redesenha o que já foi recebido. Se letras e números também estão embaralhados, o baud rate ou outra configuração não bate com o dispositivo.
Como envio HEX? Quais formatos são aceitos?
Mude o modo de envio para HEX e digite 01 03 00 0A, 0x01,0x03 ou 0103000A, em maiúsculas ou minúsculas. Caracteres inválidos, como G, e quantidades ímpares de dígitos são apontados, nunca ignorados, e os bytes a escrever aparecem em prévia abaixo da entrada.
Como adiciono um CRC Modbus e por que o byte baixo vem primeiro?
Defina Anexar checksum como CRC-16/MODBUS e digite só o endereço, o código de função e os dados; o CRC é adicionado no final. O Modbus RTU envia o CRC com o byte baixo primeiro: 0xCDC5 sai como C5 CD.
Por que um quadro aparece dividido em duas linhas, ou vários quadros juntos em uma?
A visualização HEX separa os quadros pelo tempo ocioso entre as chegadas, 50 ms por padrão. Se o dispositivo pausa mais que isso no meio de um quadro, o quadro é dividido; se os quadros vêm mais próximos, eles se juntam. Ajuste o intervalo entre quadros para ficar acima da pausa dentro do quadro e abaixo do intervalo entre quadros.
O que são DTR e RTS, e por que minha placa reiniciou quando conectei?
DTR e RTS são duas linhas de controle seriais que muitas placas ligam ao circuito de reset. Quando o Chrome abre uma porta, ele coloca as duas linhas em estado ativo — um detalhe de implementação, não parte do padrão —, então placas que reiniciam pelo DTR, como o Arduino Uno, normalmente reiniciam uma vez ao conectar, e uma página web não consegue impedir isso. No circuito de gravação automática comum do ESP32, o chip roda normalmente enquanto as duas linhas estão ativas e só fica preso em reset quando o RTS está ativo e o DTR não. Use as chaves depois de conectar; se um ESP32 ficar mudo, verifique se você não desligou só o DTR.
Posso abrir a mesma porta em outra ferramenta serial ao mesmo tempo?
No Windows, não: uma porta COM só pode estar aberta em um programa por vez. No Linux e no macOS, depende de o primeiro programa ter pedido acesso exclusivo. Se pediu, abrir a porta aqui falha; se não pediu, os dois programas a abrem e dividem entre si os dados que chegam, o que parece perda de bytes. Use um programa de cada vez.
Baud rates personalizados são suportados?
Sim. A última opção da lista é Personalizado, onde você pode digitar qualquer taxa, como 74880 — a taxa em que a boot ROM do ESP8266 imprime. O navegador repassa o valor sem alterações; se funciona ou não depende do chip USB-serial e do driver dele. Alguns arredondam para a taxa suportada mais próxima e, em alguns sistemas, a porta então não abre.
O que é o dispositivo de demonstração?
Um microcontrolador simulado embutido na página, para você não precisar de hardware. Ao conectar, ele imprime uma mensagem de inicialização em GBK — uma demonstração pronta da dica de codificação — e depois informa uma temperatura a cada 2 segundos. Ele responde OK a AT e ERROR aos outros comandos AT. Responde a uma leitura Modbus de função 03 endereçada ao escravo 1 com CRC correto; como um escravo de verdade, fica em silêncio quando o CRC está errado ou o quadro é para outro endereço. Qualquer outra coisa é devolvida em eco.

Ferramentas relacionadas

Ver todas as ferramentas →