Futureweb

Hardware

What espino checks before a board is flashed

espino names the board, refuses an image that does not fit, and starts the log at the first boot line. The bytes still go through espflash. It is not on crates.io.

The short version

No. The write goes through espflash. espino's claim is the board record, the fit check, the merged image, the reset, and a monitor that names a panic. It is not published on crates.io.

What the note is claiming

On October 3, 2026, dldeploy described espino as the loop around a flash, not a second ROM client. esptool remains the market tool that speaks the bootloader. espino reads a cited record for a board, packs a project from a short manifest, refuses unknown fields, checks that the image fits, flashes through espflash, resets the board itself so the log starts at the first line, and symbolizes a panic back to a function, file, and line from the ELF. Six built-in records cover the XIAO ESP32-S3 Sense, the S3, C6, and C3 devkits, the DevKitC with WROOM-32E, and the AI-Thinker ESP32-CAM. A merged image is supposed to match espflash save-image byte for byte. A 1,092,080-byte sketch used 34.7 percent of a 3 MB factory slot. One byte over is refused, and the message names the overage. The paper filing the loop isFutureweb.

What the exit codes are for

The note lists exit codes: 2 refused, 3 does not fit, 4 the board panicked, 5 the expected line never came, 6 a signature does not verify. With a JSON flag, every line is one JSON object. A port match on USB identity is only a hint. Detect asks the chip, and if two records both fit it refuses to pick until you answer once. The desk isHardware.

What an agent is not allowed to guess

The same verbs are tools behind a policy that refuses secrets as arguments and raw flash addresses. The note says that on September 21, 2026, an agent with only those tools generated, built, flashed, and monitored a XIAO to an expected boot line. That is one reported run, not a general permission to invent a partition address. What a process node measures is a different hardware fact,what a process node measures.

Why it matters on this desk

The dependency is the bookkeeping esptool does not store: which board is plugged in, whether the image fits, and whether the first line after reset is a boot or a panic. The chip write is still a ROM client. Calling the composer a replacement for the protocol would be false, and the note says so. What a version number has to mean, for the image that was refused, iswhat a version number has to mean.

What this page will not import

This page does not print flags, and it does not tell anyone to jumper a pin. The note says boards with no reset line, such as the ESP32-CAM, still need the manual dance the ROM client already documents. The Espressif esptool manual is that client. The esp-rs book is the Rust-on-ESP toolchain note. The mechanism note isdldeploy's espino note.

Where the public record sits

The October 3 note is the fit-check claim. Espressif's esptool manual is the ROM client the note says it does not rewrite. The esp-rs book is the public description of the toolchain Track A still builds on, which the note says is C, with Espressif's radio blob unchanged. They overlap on the existence of a flasher. They do not overlap on a crates.io package named espino. The note says that package is private. A LittleFS image packed from a data folder is claimed byte-identical against a C reference tool on a 50-file corpus. That is the note's pack claim. There is no C in espino, the note says. Firmware it generates for the IDF track still builds on Espressif's C, and the radio blob stays Espressif's.

What to watch next

A public package, or a fit figure from a different slot size, would change the record. A README that still calls esptool.py is the case the note says you do not have to throw away. What local control requires, once the board boots, iswhat local control requires.

What would change the record

A statement that espino speaks the ROM protocol itself would change it. A fit check that flashed an image one byte over the slot would change it. A USB-string guess that picked the wrong board would be the failure the detect rule is written to prevent. A LittleFS image packed from a data folder is claimed byte-identical against a C reference tool on a 50-file corpus. That is the note's pack claim. There is no C in espino, the note says. Firmware it generates for the IDF track still builds on Espressif's C, and the radio blob stays Espressif's. A LittleFS image packed from a data folder is claimed byte-identical against a C reference tool on a 50-file corpus. That is the note's pack claim.

What stays above the write

What stays specific is a cited board record, a fit refusal with the overage named, a merged image claimed byte-identical to espflash, a monitor that starts at the first boot line, exit codes for refuse, fit, panic, timeout, and signature, and a private composer. The 1,092,080-byte example is 34.7 percent of a 3 MB slot. One byte over does not flash. Symbolize, the note says, turns panic addresses into function, file, and line from the ELF, in Rust, after the panic is already the headline. Symbolize, the note says, turns panic addresses into function, file, and line from the ELF, in Rust, after the panic is already the headline. Symbolize, the note says, turns panic addresses into function, file, and line from the ELF, in Rust, after the panic is already the headline.

Sources

The reports this brief is filing. Futureweb did not republish them.

  1. dldeploy, October 3, 2026
  2. Espressif esptool
  3. The Rust on ESP Book

Questions

Does the espino note say it reimplements the ESP32 ROM bootloader?

No. It says the bytes go through espflash. espino owns the board record, the pack, the fit check, the reset, and the monitor.

What fit example does that note give?

A 1,092,080-byte sketch image used 34.7 percent of a 3 MB factory slot. One byte over is refused, and the overage is named.

What do the note's exit codes 3 and 4 mean?

3 means the image does not fit. 4 means the board panicked. The note also uses 2 for a refusal, 5 for a missing expected line, and 6 for a bad signature.

Is espino the package the note says you install from crates.io?

No. It says espino stays private. The public family is the Janus function packages.

What does the note say happened on September 21, 2026?

An agent allowed only the policy-gated tools flashed a XIAO and matched an expected boot line. The note says those tools refuse secrets and raw flash addresses.