Skip to main content

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.

BB-Eco dashboard showing eight devices in a two-column grid. Most cards show the green Online indicator; the ED-549 also carries an Update pill and the ED-560 shows the grey Offline indicator. In the third row, left, the ED-588 shows a red Stuck indicator and a recovery icon; this is the device whose firmware upgrade was interrupted and is now broadcasting BOOTP from the recovery bootloader.

Up close, the status looks like this:

Single ED-588 device card with a red 'Stuck' status indicator and dot in the top-left, distinguishing it from the green 'Online' or grey 'Offline' state

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.
The firmware image must match the device

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​

  1. 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.
  2. 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.
  3. 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.
  4. Watch the same stage-by-stage progress bar as a normal upgrade:

BB-Eco firmware upgrade progress bar zoomed in: the bar advances at FirmwareAppUpgrade stage, showing block 287 of 612 transferred, 47% complete

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.

Never interrupt a recovery

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​

SymptomLikely causeNext step
BB-Eco never hears the deviceCross-subnet, wireless interface, or VPN activeMove to the same wired LAN segment, disable the VPN, retry
Recovery stalls before the transfer startsFirewall blocking UDP 67/69Allow BB-Eco through the firewall, retry
Transfer stalls midwayPacket loss on the networkTry a different switch port or a direct cable
Device gets stuck again right after recoveryWrong firmware image, or the previous flash left mixed firmware stages inside the deviceConfirm 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​