Manual do CLI — SIMUT (perfil completo)
Leia isto antes do resto. Desde a v1.5.6-beta existem dois perfis de CLI, e esta referência cobre o completo; a imagem release traz só o console de emergência de 15 comandos.
Perfil Como obter O que tem Emergência (padrão) pico_w_releaseepico_w_alpha— é o que vem nos zips de release15 comandos, prompt único SIMUT>Completo pico_w_test(compilar da fonte) epico_w_air, desde 18/09/2026os 56 comandos e os 4 modos descritos abaixo O Air ficou no console de emergência enquanto a CLI completa (+45.056 B) não cabia na imagem; a dieta da v2.4.9-beta abriu espaço. Ele é justamente o build que mais precisa dela: sem display, o console serial/BT é a única interface local que existe.
Toda configuração vive na interface web. O console serial da imagem de release existe para o caso em que a web não pode ser alcançada: descobrir o IP, ler o log, resetar a senha do admin, formatar, reiniciar.
Se você digitar um comando deste manual e receber “Comando desconhecido. As configurações ficam na interface web”, é isso: o comando existe, mas mudou de lugar.
O console de emergência, na íntegra:
show net status IP, RSSI, hora — encontrar o dispositivo show system info Nome, firmware, serial, SSID do WiFi show system log Despeja o log de eventos do flash debug on | off Transmite os logs neste console ao vivo system admin reset [confirm] Nova senha de admin aleatória, mostrada uma vez (gravada na flash) system format [confirm] Reformata o LittleFS, mantém o firmware system https off [confirm] Apaga o par de certificados e volta p/ HTTP system factory [confirm] Apaga TODA a config + reinicia system ssid <nome> Grava o SSID na hora (sem write memory); reload confirm p/ reconectar system pass <senha> Grava a senha do Wi-Fi na hora; idem system cors <origem>|off Origem da página do gerenciador web; grava na hora, vale no próximo boot ap Sobe o ponto de acesso de configuração (WPA2, chave neste console) time <AAAA-MM-DD> <HH:MM:SS> Acerta o relógio na hora local; vale até o próximo reboot reload [confirm] Reinicia agora help Esta listaO restante deste documento vale para o perfil completo (
pico_w_testepico_w_air; no Air, some aair status|hibernate|stop|idle|charger).
Visão geral
Aplica-se ao perfil completo. Na imagem de release não há modos: o prompt é sempre
SIMUT>e os 15 comandos acima valem nele.
O SIMUT adota o modelo Cisco IOS com 4 modos hierárquicos. Cada modo tem seu
próprio prompt e conjunto de comandos. O caractere ? mostra os comandos
disponíveis no modo atual.
Árvore de modos
SIMUT> User EXEC — diagnóstico, telemetria, help
└── enable ─────────────────────────────────────────────────────┐
SIMUT# Privileged EXEC — manutenção, salvar, │
│ reiniciar, sensores, entrada p/ config │
├── configure terminal ────────────────────────────────────┐ │
│ SIMUT(config)# Global Config — sistema, rede, │ │
│ telemetria, usuários │ │
│ ├── sensor <N> ─────────────────────────────────┐ │ │
│ │ SIMUT(config-sensor-N)# Sensor — tipo, │ │ │
│ │ pinos, alarmes │ │ │
│ ├── exit → volta p/ SIMUT# │ │ │
│ └── end ────────────────────────────────────────┘ │ │
├── disable → volta p/ SIMUT> │
└── exit → volta p/ SIMUT> │
| Transição | Comando |
|---|---|
SIMUT> → SIMUT# |
enable |
SIMUT# → SIMUT> |
disable ou exit |
SIMUT# → SIMUT(config)# |
configure terminal |
SIMUT(config)# → SIMUT# |
exit ou end |
SIMUT(config)# → SIMUT(config-sensor-N)# |
sensor <N> |
SIMUT(config-sensor-N)# → SIMUT(config)# |
exit |
SIMUT(config-sensor-N)# → SIMUT# |
end |
1. Modo User EXEC — SIMUT>
Prompt padrão após o boot. Modo somente leitura — nenhum comando altera configuração.
Diagnóstico
| Comando | Descrição |
|---|---|
show sensors |
Lista todos os slots de sensor ativos com tipo, GPIO, canais, nome, alarmes |
show system info |
Nome do dispositivo, versão do firmware, serial, resolução DS18B20, WiFi, fuso, NTP |
show system log |
Despeja o log de eventos do Flash (até 2000 linhas) |
show net status |
Endereço IP, RSSI (sinal WiFi) |
show metrics |
Métricas operacionais: uptime, heap, heap mínimo, WiFi/MQTT reconexões, telemetria (envios, falhas, bytes), leituras de sensores, saves de config |
show storage stats |
Estatísticas do sistema de arquivos Flash (LittleFS) |
show themes |
Lista temas de UI disponíveis com índice e nome |
show sensor types |
Lista drivers de sensor compilados no firmware com canais e requisitos de pinos |
show gpio |
Mapa dos 16 GPIOs — livre vs. ocupado por slot |
gpio |
Atalho para show gpio |
Telemetria
| Comando | Descrição |
|---|---|
tel sync |
Força envio imediato da telemetria pendente |
tel dump |
Arma dump do próximo payload de telemetria no console (diagnóstico) |
Sessão
| Comando | Descrição |
|---|---|
language pt |
Interface em Português (Brasil) |
language en |
Interface em English |
language |
Mostra o idioma atual |
help, ajuda, ? |
Lista comandos disponíveis neste modo |
Relógio
| Comando | Descrição |
|---|---|
time <AAAA-MM-DD> <HH:MM:SS> |
Ajuste manual do relógio, na hora local. Vale na hora e não sobrevive ao reboot. conf time ... é o mesmo comando. Vale aqui e no SIMUT#, pelo USB ou pelo Bluetooth |
O time confere a data como um calendário: ano de 2026 a 2099, e o dia tem de
existir no mês. Uma data que o calendário não tem é recusada e o relógio não
muda:
SIMUT> time 2026-02-31 12:00:00
ERROR: Data ou hora invalida (ano >= 2026)
Até a v2.8.0 a conferência era campo a campo: qualquer dia de 1 a 31 passava, e
2026-02-31 virava 03/03/2026 em silêncio; um campo fora da faixa respondia
Valores fora de range (ano >= 2026), mensagem que não existe mais.
O primeiro acerto depois do boot, com o relógio ainda provisório, desloca pela
diferença os blocos do histórico que o boot começou, como o NTP faz (eventos
408 e 409, se a diferença passa de 5 s); o bloco retomado do .wip no boot é
selado e não se desloca. O log grava o evento 13, RTC set manually, com
contexto 2 (até a v2.8.0, contexto 0).
Num aparelho sem rede configurada e com o relógio provisório, o boot termina
com a linha Sem rede, relogio provisorio: conf time AAAA-MM-DD HH:MM:SS
(No network, provisional clock: ... em inglês), em toda imagem. O time
existe também no console de emergência da release e do alpha (§9); até a
v2.8.0, só neste perfil. No alpha, que não tem painel, é o jeito de responder
à linha do boot.
Navegação
| Comando | Descrição |
|---|---|
enable |
Entra no modo Privileged EXEC (SIMUT#) |
2. Modo Privileged EXEC — SIMUT#
Modo de manutenção e porta de entrada para configuração. Todos os comandos do modo User EXEC continuam disponíveis.
Persistência e sistema
| Comando | Descrição |
|---|---|
write memory |
Salva a configuração RAM no Flash (equivalente ao copy run start do Cisco) |
reload |
Reinicia o sistema. Requer confirmação: reload confirm |
clear log |
Apaga os arquivos de log do Flash. Requer confirmação: clear log confirm |
Depuração
| Comando | Descrição |
|---|---|
debug on |
Ativa stream de logs no console. Prompt e modo não mudam, mas linhas de log aparecem inline |
debug off |
Desativa stream de logs. Console fica limpo |
debug |
Mostra estado atual (ON/OFF) |
Sensores — operações
| Comando | Descrição |
|---|---|
sensor scan |
Varredura de hardware nos GPIOs 0–15 (OneWire → DHT22) + I2C (BME280 nos pinos 4,5) |
sensor accept <gpio> |
Autoriza sensor OneWire (DS18B20) detectado no pino. Lê ROM, aplica calibração do calib.csv, salva no Flash |
sensor define <gpio> <rom> <hwid> <nome> |
Define manualmente um sensor (legado). ROM em hex (16 chars, 0000000000000000 p/ não-OneWire). Ex: sensor define 4 28AA123456789ABC DS4 "Freezer 1" |
sensor wipe <gpio> |
Reseta o epoch do histórico do sensor (gráfico começa do zero). Requer confirmação: sensor wipe <gpio> confirm |
sensor remove <gpio> |
Remove o slot de sensor ligado ao GPIO (desativa e limpa a configuração do slot). Requer confirmação: sensor remove <gpio> confirm |
sensor reschema confirm |
Religa o histórico aos slots como estão configurados agora. Use após trocar o hwid de um sensor: o casamento dos registros é por hwid, então uma troca faz o histórico gravar registros vazios em silêncio até o reschema. Desde o V5, a mudança de schema grava um novo chunk SCHEMA no mesmo arquivo /history/AAAAMMDD.h5 — nenhum registro é perdido. Continua exigindo confirm. O aviso code=515 no log indica que isso é necessário |
sensor <slot> <campo> <valor> |
Configura sensor diretamente do modo privilegiado (atalho). Campos: type, create, name, hwid, pin, active, alarm, tmin, tmax, hmin, hmax. Ver Seção 4 |
Telemetria
| Comando | Descrição |
|---|---|
tel reset |
Reseta o cursor de telemetria (cache RAM + arquivo Flash). Próximo envio cobre até 30 dias para trás |
Factory e admin
| Comando | Descrição |
|---|---|
conf system factory |
Factory reset — apaga TODA a config e reinicia. Requer confirmação: conf system factory confirm |
conf system admin reset |
Gera uma senha de admin aleatória, mostrada uma única vez neste console, e a grava na flash na hora (sobrevive ao reinício). O primeiro login pela web é forçado a trocá-la. Requer confirmação: conf system admin reset confirm |
conf system touch reset |
Reseta a calibração do touch para valores de fábrica. Requer confirmação: conf system touch reset confirm |
system format |
Formata o LittleFS (também disponível no console de emergência). Requer confirmação: system format confirm |
Tela TFT
| Comando | Descrição |
|---|---|
screen <nome> |
Navega diretamente para uma tela TFT. Nomes: dash (dashboard), set (configurações), thm (temas), lng (idioma), pwd (senha), lic (licença), sts (status), alm (alarmes), gra (gráfico), touchcal (calibração touch), touchsens (sensibilidade touch), offset (offset do display), clk (data e hora) |
touch sim <X> <Y> |
Injeta toque simulado na tela (X: 0–319, Y: 0–239). Uso: automação de screenshots |
touch hold <X> <Y> [ms] |
Injeta um toque mantido (segurar) por ms (padrão 3500, faixa 100–15000), depois solta. Aciona os gestos de toque longo — como o segurar de 3 s que fixa o cartão de cima — que o tap de touch sim não alcança. Uso: automação de screenshots |
Navegação
| Comando | Descrição |
|---|---|
configure terminal |
Entra no modo Global Config (SIMUT(config)#) |
disable |
Volta ao modo User EXEC |
exit |
Volta ao modo User EXEC (mesmo que disable) |
3. Modo Global Config — SIMUT(config)#
Modo de configuração do sistema. Comandos alteram apenas a RAM — execute
write memory (no SIMUT#) para persistir no Flash. Use do <cmd> para
executar qualquer comando do modo privilegiado sem sair do config.
Sistema
| Comando | Descrição | Range |
|---|---|---|
system name <nome> |
Nome do dispositivo (aparece no dashboard, WiFi, etc.) | 1–31 chars, sem controle |
system theme <id> |
Tema da UI. <id> pode ser nome (Default) ou índice numérico |
show themes lista opções |
system timezone <offset> |
Fuso horário UTC | −12 a +14 |
system ntp <servidor> |
Servidor NTP. Vazio = pool.ntp.org |
max 31 chars |
system history_interval <min> |
Intervalo entre registros de histórico | 1–1440 minutos |
language <pt\|en> |
Idioma da interface CLI e display | pt ou en |
ds18b20 resolution <bits> |
Resolução global para sensores DS18B20 | 9–12 bits |
Rede
| Comando | Descrição | Range |
|---|---|---|
wifi ssid <nome> |
Nome da rede WiFi (case-sensitive) | max 31 chars |
wifi pass <senha> |
Senha da rede WiFi | max 31 chars |
ip dhcp |
Usar DHCP para obter IP | — |
ip static |
Usar IP estático | — |
ip addr <ipv4> |
Endereço IP estático | formato x.x.x.x |
ip mask <ipv4> |
Máscara de rede | formato x.x.x.x |
ip gateway <ipv4> |
Gateway padrão | formato x.x.x.x |
ip dns <ipv4> |
Servidor DNS | formato x.x.x.x |
dns auto |
DNS via DHCP | — |
dns manual <ip1> [ip2] |
DNS manual (primário, secundário opcional) | formato x.x.x.x |
ntp on |
Sincronizar relógio via NTP | — |
ntp off |
Não sincronizar relógio | — |
web port <porta> |
Porta do servidor web (aplica após reload) | 1–65535 |
Numa build cabeada (SIMUT Wire, ver §9.2) wifi ssid e wifi pass não existem:
o parser responde “comando desconhecido”.
Telemetria
| Comando | Descrição | Range |
|---|---|---|
tel server <url> |
URL do servidor de telemetria | max 63 chars |
tel port <porta> |
Porta do servidor | 1–65535 |
tel path <caminho> |
Caminho do endpoint (ex: /api/v1/data) |
max 31 chars |
tel batch <n> |
Lote máximo: registros por upload | 1–250 (limitado pelo heap livre) |
tel interval <n> |
Lote mínimo: registros pendentes que disparam o envio (0 = desligado) | 0–20000 |
tel crypto on |
Ativar SSL/HTTPS para telemetria | — |
tel crypto off |
Desativar SSL/HTTPS | — |
tel mode json |
Payload em formato JSON | — |
tel mode csv |
Payload em formato CSV | — |
tel mode custom |
Payload em formato customizado | — |
Usuários (web interface)
| Comando | Descrição |
|---|---|
user add <nome> <senha> |
Criar novo usuário para a interface web |
user del <nome> |
Remover usuário (admin não pode ser removido) |
user pass <nome> <nova_senha> |
Alterar senha de um usuário |
user perm <nome> <viewer\|operator\|admin\|0xHEX> |
Ajusta a máscara de permissões do usuário. É o único caminho (além do admin de fábrica) para conceder PERM_FULL_ADMIN (0xFFFF) — a interface web recusa esse valor por design. Bits do painel: 0x0400 limites, 0x0800 bloqueio, 0x1000 manutenção |
user pin <nome> <pin\|off> |
PIN do painel da conta. O comprimento e o alfabeto são os da política (user policy), não uma constante: 4..16 caracteres de 0-9 ou 0-9A-Z. Único entre as contas; um PIN já usado é recusado com o nome do dono. off remove. Para o admin, um PIN diferente de 1234 desarma a troca forçada |
user policy <min> <teclado 1\|2\|3> <alfabeto 0\|1> |
Política de PIN do painel (config v25). teclado é glifos por tecla: 1 = teclado ORDENADO (numérico, ou alfanumérico de dois toques), 2 e 3 = cartões embaralhados. alfabeto 0 = 0-9, 1 = 0-9A-Z. min vai de 4 ao teto do teclado — 16/12/8 — que é de CPU: resolver a árvore de toques custa S+S²+…+Sⁿ SHA-256. Apertar a política marca toda conta com PIN para trocá-lo, e a resposta diz quantas |
Sensor
| Comando | Descrição |
|---|---|
sensor <N> |
Entra no modo Sensor Config para o slot <N> (0–15) |
Sub-comandos de conveniência
| Comando | Descrição |
|---|---|
do <comando> |
Executa um comando do modo privilegiado sem sair do config. Ex: do show sensors |
show <...> |
Todos os comandos show funcionam diretamente no modo config |
exit |
Volta ao modo Privileged EXEC |
end |
Volta ao modo Privileged EXEC (atalho direto) |
4. Modo Sensor Config — SIMUT(config-sensor-N)#
Configuração de um sensor individual. Comandos curtos — o slot <N> é
implícito. Todos os comandos show globais continuam disponíveis.
Tipo e criação
| Comando | Descrição |
|---|---|
type <ds18b20\|dht22\|bme280> |
Define o tipo de driver do sensor |
create <ds18b20\|dht22\|bme280> |
Reseta o slot e configura para o tipo. Mostra requisitos de pinos e GPIOs livres |
Identidade
| Comando | Descrição | Range |
|---|---|---|
name <nome> |
Nome amigável (aparece no dashboard e tabelas) | 1–31 chars |
hwid <id> |
Hardware ID interno (chave para calib.csv) |
max 15 chars |
GPIO
| Comando | Descrição |
|---|---|
pin <idx> <gpio> |
Atribui um GPIO ao pino <idx> do sensor. <idx>: 0–3. <gpio>: 0–15. Ex: pin 0,5 atribui GPIO5 ao pino 0 |
Requisitos por tipo:
- DS18B20: 1 pino (idx=0, 1-Wire)
- DHT22: 1 pino (idx=0, Data)
- BME280/BMP280: 2 pinos (idx=0=SDA, idx=1=SCL)
Ativação
| Comando | Descrição |
|---|---|
active on |
Ativar slot. Requer todos os pinos atribuídos |
active off |
Desativar slot (libera GPIOs) |
Alarmes
| Comando | Descrição | Range |
|---|---|---|
alarm on |
Ativar alarmes para este sensor | — |
alarm off |
Desativar alarmes | — |
tmin <valor> |
Limite mínimo de temperatura | float (ex: -10.0) |
tmax <valor> |
Limite máximo de temperatura | float (ex: 50.0) |
hmin <valor> |
Limite mínimo de umidade (DHT22/BME280) | float (ex: 30.0) |
hmax <valor> |
Limite máximo de umidade (DHT22/BME280) | float (ex: 70.0) |
Navegação
| Comando | Descrição |
|---|---|
show sensors |
Mostra a tabela completa de sensores |
show gpio |
Mostra o mapa de GPIOs |
do <comando> |
Executa comando do modo privilegiado |
exit |
Volta ao modo Global Config |
end |
Volta direto ao modo Privileged EXEC |
5. Comandos de conveniência (qualquer modo)
| Comando | Descrição |
|---|---|
? |
Lista comandos disponíveis no modo atual |
help |
Mesmo que ? |
ajuda |
Mesmo que ? (atalho PT) |
6. Confirmação de comandos destrutivos
Comandos que causam perda de dados ou reinicialização exigem o sufixo ` confirm` (com espaço). Exemplos:
reload confirm
clear log confirm
conf system factory confirm
conf system admin reset confirm
conf system touch reset confirm
sensor wipe 3 confirm
Sem o sufixo, o comando exibe um aviso e não executa.
7. Fluxo de trabalho típico
Primeira configuração de sensores
SIMUT> enable
SIMUT# configure terminal
SIMUT(config)# sensor 0
SIMUT(config-sensor-0)# create bme280
SIMUT(config-sensor-0)# pin 0,0
SIMUT(config-sensor-0)# pin 1,1
SIMUT(config-sensor-0)# name BMP280-Ambiente
SIMUT(config-sensor-0)# active on
SIMUT(config-sensor-0)# exit
SIMUT(config)# sensor 1
SIMUT(config-sensor-1)# create dht22
SIMUT(config-sensor-1)# pin 0,2
SIMUT(config-sensor-1)# name DHT22-Sala
SIMUT(config-sensor-1)# alarm on
SIMUT(config-sensor-1)# tmin 15.0
SIMUT(config-sensor-1)# tmax 35.0
SIMUT(config-sensor-1)# hmin 30.0
SIMUT(config-sensor-1)# hmax 70.0
SIMUT(config-sensor-1)# end
SIMUT# write memory
Configuração de rede
SIMUT> enable
SIMUT# configure terminal
SIMUT(config)# wifi ssid MinhaRede
SIMUT(config)# wifi pass MinhaSenha
SIMUT(config)# ntp on
SIMUT(config)# system timezone -3
SIMUT(config)# end
SIMUT# write memory
SIMUT# reload confirm
Diagnóstico rápido
SIMUT> show sensors
SIMUT> show net status
SIMUT> show metrics
SIMUT> tel dump
8. Referência rápida de modos
| Prompt | Significado | Como sair |
|---|---|---|
SIMUT> |
User EXEC — só leitura | — |
SIMUT# |
Privileged EXEC — manutenção | disable ou exit |
SIMUT(config)# |
Global Config — config do sistema | exit ou end |
SIMUT(config-sensor-N)# |
Sensor Config — config de 1 sensor | exit (p/ config) ou end (p/ #) |
9. Console de emergência (imagens pico_w_release, pico_w_alpha e pico_w_air)
As imagens de produção não carregam a CLI hierárquica deste manual
(SIMUT_CLI_FULL=0). Elas respondem no prompt único SIMUT> , sem enable
nem configure terminal, com este conjunto:
| Comando | Efeito |
|---|---|
show net status |
IP, SSID, RSSI, estado do NTP |
show system info |
versão do firmware, uptime, heap, sensores |
show system log |
últimas linhas do log binário |
debug on / debug off |
console verboso |
system admin reset |
regenera a senha do admin (mostrada uma vez) |
system format [confirm] |
formata o LittleFS |
system factory [confirm] |
restaura os defaults de fábrica |
system https off [confirm] |
apaga o par TLS e volta para HTTP |
system ssid <nome> |
grava o SSID na hora (sem write memory); reload confirm para reconectar |
system pass <senha> |
grava a senha do Wi-Fi na hora; idem |
system cors <origem> | off |
grava em /config/cors.txt a origem da página do gerenciador web (ex.: http://192.168.1.10:8080); vale no próximo boot, então reload confirm |
reload [confirm] |
reinicia |
ap |
sobe o ponto de acesso de configuração |
time <AAAA-MM-DD> <HH:MM:SS> |
acerta o relógio na hora local; vale até o próximo reboot (ver §1, “Relógio”) |
help |
esta lista, no idioma do pack instalado |
9.1 Comandos air (somente pico_w_air)
| Comando | Efeito |
|---|---|
air status |
Air: phase=<n> wake=<s>s hist=<s>s backoff=<s>s idle=<s>s armed=<0\|1> dirty=<n> tel=<pendentes>/<lote mínimo> skip=<n> radio=<0\|1> chg=<0\|1> bat=<n> cyc=<ms> wip=<n> |
air hibernate (ou air sleep) |
entra no ciclo M1 agora; o USB some quando o aparelho dorme |
air stop (ou air wake) |
cancela o ciclo e volta ao modo operacional M0 — só funciona na janela em que o aparelho está acordado, e só pelo console USB (ver a nota sobre M1 abaixo) |
air idle <10..65535> |
segundos de inatividade da CLI antes de hibernar sozinho (persistido em /config/air.bin) |
air charger <0..29\|off> |
GPIO que lê nível alto enquanto o aparelho carrega (padrão GP17); off desliga a leitura. Persistido em /config/air.bin |
Fases reportadas por phase=: 0 OFF (M0), 1 WARMUP, 2 SAMPLE, 3 DECIDE, 4 PERSIST, 5 CONNECT, 6 FLUSH, 7 SLEEP.
Com debug on o console mostra [AIR] phase=… a cada transição e [AIR] alarm: HH:MM:SS wakeSec=N antes de dormir.
Sobre wip=: quantas vezes o bloco de histórico aberto foi gravado inteiro em
/history/.wip desde o boot. É a única janela que o firmware tem para o próprio desgaste de
flash, porque a .wip é reescrita POR COMPLETO a cada vez. Num SIMUT Air todo wake é um boot,
então o número se lê direto como “por wake”, e o valor esperado é 1. A linha [AIR] alarm:
também o traz, e é onde ele serve: o console responde cedo no wake, antes mesmo de o registro ser
gravado, então o air status de dentro de um wake devolve 0.
Sobre air stop por Bluetooth (limitação, plano F12): dentro de um wake do ciclo
(M1) o laço só lê o console USB — o canal Bluetooth não é atendido, então air stop
digitado pela conexão BT durante um wake não tem efeito. É ausência de funcionalidade, não risco:
a sessão BT continua exigindo senha e o lockout vale normalmente. Para cancelar o ciclo pelo BT,
segure o aparelho acordado (carregador, chg=1) — aí ele sobe como M0 completo e o console BT
responde. Pelo USB, air stop funciona em qualquer janela de wake.
Sobre chg=: com o carregador ligado o aparelho não hiberna — o air idle deixa de valer e um
wake que encontre o carregador cancela o ciclo daquele boot e sobe como M0 completo, com servidor
web. O ciclo continua armado, então basta desconectar e deixar o idle expirar para voltar a dormir.
O divisor de tensão que traz os 5 V ao nível lógico é da placa; nada disso mede corrente de carga,
só a presença da fonte.
Sobre o show system log num Air: um wake quase não escreve nada, e isso é o desenho, não um
defeito. Todo despertar é um boot inteiro, e a sequência fixa que o setup( ) emite ao subir —
relógio provisório, idioma, sensores, calibração, linha de alarmes, transporte HTTP, snapshot do
histórico, “pronto” — era reescrita uma vez por minuto e ocupava 68% da janela forense. Desde
07/09/2026 essa sequência é gravada por um boot que não veio da hibernação e pulada por um que
veio; sobra um registro por ciclo, o 567 STO_H5_WIP do próprio ciclo, com a contagem do bloco no
ctx. Nada mais mudou: um passo do boot que falha continua gravando, e trocar o idioma ou calibrar
depois do boot continua gravando.
O sinal a procurar é o 412 (boot frio, não veio da hibernação): num aparelho que deveria estar
dormindo entre os wakes, ele é o relato de uma interrupção de energia. ctx=1 boot limpo (energia,
RUN, reload, OTA); ctx=0 um watchdog chegou antes. Ao lado dele vem a rajada de oito registros
do preâmbulo — as duas coisas juntas são a assinatura de “o aparelho reiniciou de verdade”.
Desde 07/09/2026 o
air idlerecusa o que o campo não guarda (item F09, fechado). Antes ele aceitava até 86400 e convertia: 86400 virava 20864 e 65536 virava 0, e um ocioso de zero manda o aparelho dormir na passada seguinte do laço — de onde só se volta pegando uma janela de wake pelo console.
9.2 SIMUT Wire (pico_wire e pico_wiretft)
A build cabeada (net = "enc28j60", a rede por um módulo ENC28J60) não tem rádio, e o console de
emergência dela perde, na compilação, o que só o rádio tinha: ap (e apmode,
ap-mode), system ssid, system pass e os apelidos wifi ssid/wifi pass. No
lugar, para que um aparelho numa rede sem DHCP tenha por onde entrar, ela ganha os
comandos de endereço do perfil completo (desde 13/10/2026):
| Comando | Efeito |
|---|---|
ip dhcp | ip static |
como o cabo obtém o endereço |
ip addr <ipv4> |
o endereço fixo |
ip mask <ipv4> |
a máscara |
ip gateway <ipv4> |
o gateway |
ip dns <ipv4> |
o DNS do endereço fixo |
dns auto | dns manual <ip1> [ip2] |
DNS do DHCP, ou estes servidores |
Cada um grava na hora, como o SSID numa imagem com rádio (este console não tem write
memory), e responde Salvo. Use 'reload confirm' para aplicar.: o módulo toma o
endereço quando sobe. Se a gravação falhar, a resposta diz isso, e o comando pode ser
repetido.
O que muda no resto do console:
show net statusmostraCabo: conectadoouCabo: sem linkno lugar do RSSI;show system infomostraRede: caboe o modo do endereço (DHCPou o IP fixo) no lugar do SSID;help, num pacote de idioma, vem da seção@HELPWIREdo pacote, e não da@HELP; um pacote sem ela deixa ohelpem inglês, que é o texto do Wire.
Os testes deste console são a suíte native_lan (pio test -e native_lan).