Press Releases
EtherCAT Bootloader for Embedded Systems
October 2, 2026
How Firmware Updates Work Over EtherCAT
EtherCAT has become one of the dominant fieldbus protocols in industrial automation, robotics, and motion control — prized for its microsecond-level determinism and the ability to process frames on the fly as they pass through each slave device. But getting new firmware onto those slave devices in the field requires a bootloader built specifically around how EtherCAT moves data, which is meaningfully different from CAN-based or serial-based bootloading. This guide explains how EtherCAT firmware updates actually work, the standard mechanism behind them, and what separates a reliable implementation from a fragile one.
An EtherCAT bootloader is firmware running on an EtherCAT slave device that allows its application firmware to be updated over the EtherCAT network itself, without requiring a separate programming interface (JTAG, SWD, UART) or physically accessing the device. It sits below the application firmware, handles the EtherCAT State Machine transitions needed to enter a programming-capable state, and manages receiving, verifying, and flashing a new firmware image.
This matters operationally as much as technically: in a machine with dozens of EtherCAT slaves — servo drives, I/O terminals, sensors — physically reflashing each one is impractical. A network-based bootloader lets an entire machine's firmware be updated through the same EtherCAT master connection used for normal operation.
The standard mechanism for firmware updates over EtherCAT is FoE — File over EtherCAT, one of the mailbox protocols defined alongside CoE (CANopen over EtherCAT), EoE (Ethernet over EtherCAT), and SoE (Servo Drive over EtherCAT). FoE is a simplified, TFTP-like file transfer protocol layered on top of the EtherCAT mailbox mechanism, and it's the mechanism almost every EtherCAT bootloader is built around.
The FoE transfer sequence follows a predictable pattern:
A slave can't accept an FoE firmware download in normal operation — it has to be placed into a state where the bootloader, not the application, owns the mailbox. EtherCAT defines a specific Bootstrap state for exactly this purpose, alongside the standard EtherCAT State Machine (ESM) states:
| ESM State | Purpose |
|---|---|
| Init | Initial state after power-up; mailbox and process data communication not yet active |
| Pre-Operational | Mailbox communication active (CoE, FoE available); process data not yet active |
| Bootstrap | Optional state, entered from Init; only FoE mailbox communication is active — used exclusively for firmware download |
| Safe-Operational | Process data active (inputs valid), outputs held at safe values |
| Operational | Full process data communication active; normal running state |
Not every EtherCAT device implements the dedicated Bootstrap state — many run FoE from Pre-Operational instead, which is simpler to implement but means the application and bootloader mailbox handling need to coexist more carefully. Devices that do implement Bootstrap benefit from a cleaner separation: the bootloader code path is the only thing running during a firmware update, which reduces the attack surface for update failures caused by application-layer interference.
FoE itself only defines the file transfer mechanism — a real bootloader implementation has to layer several other concerns on top of it to be field-reliable:
| Aspect | EtherCAT (FoE) | CAN / J1939 | LIN (UDS) |
|---|---|---|---|
| Transfer protocol | File over EtherCAT (mailbox-based) | J1939 Transport Protocol (BAM/RTS-CTS) or UDS over CAN | UDS over LIN (ISO 14229) |
| Transfer style | Stop-and-wait, sequential packets | Stop-and-wait (RTS/CTS) or fire-and-forget (BAM) | Stop-and-wait |
| Typical throughput | Higher — Ethernet-class bandwidth, but per-packet ack overhead limits real-world speed | Lower — CAN bus bandwidth (250 kbit/s-1 Mbit/s), further limited by 8-byte frame size | Lowest — LIN runs at up to 20 kbit/s |
| State machine dependency | Yes — ESM Bootstrap or Pre-Operational | Application-defined, not standardized | UDS session/diagnostic state |
| Standard security provisions | None built into FoE itself — must be layered on | None built into base J1939 — must be layered on | None built into base UDS — must be layered on |
| Best suited for | Multi-axis motion control, robotics, industrial automation slaves | Commercial/heavy-duty vehicle ECUs | Low-cost vehicle body/comfort ECUs |
The throughput advantage of EtherCAT is real but often overstated in marketing contexts — because FoE is stop-and-wait rather than windowed, the achievable transfer rate is bounded by round-trip acknowledgment latency as much as by raw link speed, especially on segments with many slaves competing for mailbox cycles during a network-wide update.
If the validation step fails, a properly implemented bootloader should reject the image, retain the previous working firmware (or fall back to it from the secondary bank), and report a clear FoE error code back to the master rather than silently bricking or entering an undefined state.
Two things make EtherCAT bootloading more demanding to implement correctly than it might appear from the FoE spec alone:
Simma Software builds real-time protocol stacks and flash bootloaders across CAN, LIN, UDS, J1939, CANopen, XCP, and now EtherCAT, with dual-bank fallback, image verification, and secure boot support built in. Contact us to talk through your EtherCAT firmware update requirements.