Recover a stuck ED or ES device with BB-Eco
This guide recovers a Brainboxes ED (Ethernet Remote I/O) or ES (Ethernet-to-Serial) device that's stuck in its bootloader after an interrupted firmware upgrade. Stuck devices broadcast BOOTP requests indefinitely (ED every 10-16 seconds, varying by model; ES roughly every 2.5), which makes them recoverable over the network, without physical access.
BB-Eco finds stuck devices for you
You usually don't have to work out that recovery is needed. On Windows and macOS, BB-Eco listens for bootloader broadcasts from the moment the app opens; on Linux it listens whenever its transfer process is running (during an upgrade or recovery session). Either way it hears any stuck Brainboxes device on the LAN, including devices that were bricked by another machine or an older tool. When it hears one:
- A toast notification names the device (
ED-560 “Line-4” appears stuck in a firmware upgrade.; for a device BB-Eco has never seen,An unrecognised ED-560 is asking for firmware recovery.) with a Recover... button. - The device's dashboard card shows a red Stuck status and an amber recovery icon in its corner.

Up close, the status looks like this:

If an upgrade failed while the app wasn't running, BB-Eco also infers a stuck device from its own upgrade journal, so the Stuck status appears even before the broadcast is heard.
Before you start
- The stuck device is powered on and connected to the same Layer 2 LAN as your computer. (BOOTP broadcasts don't cross routers: a desk-side switch is fine, a routed network is not.)
- BB-Eco is installed (Install BB-Eco).
- On Linux, you have sudo access, because recovery binds UDP ports 67 and 69, which are privileged there. Windows and macOS need no prompt.
A stuck device can't report its hardware details the way a healthy one can, so choose firmware for the exact model and hardware variant. BB-Eco pre-selects a matching cached image whenever the device's broadcast identifies it. Prefer that suggestion over a manual pick, and double-check the model on the device's casing before overriding it.
Recover from the desktop app
- Click the recovery icon in the corner of the stuck device's card (or the card itself) to land on its Firmware tab, where a recovery banner has taken the place of the normal upgrade controls, because a stuck device has no web server, so the usual check-for-updates flow doesn't apply. The toast's Recover... opens the Device Recovery panel instead; use that for a device with no card.
- The banner pre-selects firmware for you: the exact file from the failed upgrade when it's known, otherwise the latest cached image matching the model and variant the device announced. A manual picker (Select firmware file (.efw)...) is the override.
- Click Recover Device (or Continue Recovery when BB-Eco kept the file from the failed upgrade). On Linux, if the elevated transfer process isn't running yet, you'll get one password prompt first.
- Watch the same stage-by-stage progress bar as a normal upgrade:

Recovery takes a few minutes. The device reboots into its real network configuration, re-announces itself, and its card flips back to Online.
For a device BB-Eco has never seen (no card to click), open Settings → General → Advanced → Open Device Recovery…. The recovery panel lists every broadcasting device and recovers unknown ones inline.
More than one stuck device?
Recover them one at a time. The panel lists all of them, and each remaining device re-announces itself within seconds of the previous recovery finishing. Repeat until the list is empty.
Recover from the CLI
Ask a stuck device what it wants first. The probe answers the device's BOOTP request so its bootloader reveals the file it wants, reports that, and sends no firmware (on Linux, prefix both commands with sudo):
bb-eco upgrade --recover --probe
The probe reports the device's MAC and the firmware identity its bootloader announces (model and variant). Then re-flash it:
bb-eco upgrade --recover ED-560T_V8.33.efw
The CLI binds BOOTP/TFTP, waits for the device's next broadcast, and runs the transfer through the same stages as a normal upgrade. Run --recover without a file and it asks Enter path to firmware file (.efw): on a terminal (it stops with an error when stdin is not a terminal). See the bb-eco upgrade reference for every option.
The transfer deliberately can't be cancelled mid-flight, because an interrupted flash is exactly how devices get stuck. Let it run to completion, even if it appears slow.
If recovery fails
| Symptom | Likely cause | Next step |
|---|---|---|
| BB-Eco never hears the device | Cross-subnet, wireless interface, or VPN active | Move to the same wired LAN segment, disable the VPN, retry |
| Recovery stalls before the transfer starts | Firewall blocking UDP 67/69 | Allow BB-Eco through the firewall, retry |
| Transfer stalls midway | Packet loss on the network | Try a different switch port or a direct cable |
| Device gets stuck again right after recovery | Wrong firmware image, or the previous flash left mixed firmware stages inside the device | Confirm model and variant; then simply recover again, since each pass restores the stages the device asks for until it's consistent |
A device that repeatedly returns to its bootloader with the correct image may have a hardware fault; contact support.
How it works
A firmware upgrade first puts the device into its bootloader, then re-flashes it over BOOTP/TFTP. If the transfer is interrupted (power loss, network drop, killed process), the device stays in the bootloader: no IP address, no firmware application, invisible to normal discovery. But the bootloader keeps broadcasting BOOTP requests carrying the device's MAC and firmware identity. BB-Eco listens for those, matches them to the Brainboxes hardware address range, and answers with a fresh image when you say go. Recovery on ES devices follows the device's own stage requests (up to three stages on FPGA models); ED recovery uses the same two stages as a normal ED upgrade.
More resources
- Upgrade your first device with BB-Eco: the safe upgrade flow that avoids stuck-device situations
- Bulk-upgrade firmware with BB-Eco: for upgrading many devices at once
bb-eco upgradeCLI reference: every flag including--probeand--recover- BB-Eco firewall rules for IT administrators: make sure UDP 67/69 can reach the app