The short story
Space Exploration Alberta Robotics (SPEAR) develops Mars rovers for international competitions such as URC and CIRC. For their next-generation rover targeting URC 2026, the team redesigned the entire communication architecture to enable a more modular, scalable and maintainable system.
By moving from a centralized CAN-based design to a distributed EtherCAT architecture built using RT-Labs’ EtherCAT software, SPEAR was able to place motor controllers close to the actuators, reduce wiring complexity and gain full control over both hardware and software.


The Challenge
Previous SPEAR rovers used a centralized motor control architecture with all motor controllers located in the main rover body. With up to 17 motors and several sensors distributed across articulated subsystems, this resulted in long cable runs, complex harnesses and limited flexibility when modifying the system.
CAN bus was used for communication, but as the rover grew in complexity several limitations became apparent:
- Line topology constraints made routing difficult across the mechanical structure
- Termination resistor requirements reduced plug-and-play behavior
- Scaling the system significantly increased wiring complexity
For the new rover, SPEAR needed a deterministic real-time communication solution that supported flexible network topologies, distributed motor control and future expansion, without relying on expensive proprietary EtherCAT hardware or closed software stacks.
The Solution
Selecting EtherCAT as the communication backbone
SPEAR selected EtherCAT for its deterministic real-time performance, flexible network topologies and strong industry adoption. EtherCAT enables distributed system designs where motor controllers and sensors can be placed close to each subsystem while still maintaining centralized control logic.
Building custom EtherCAT devices in software
To avoid proprietary hardware and high licensing costs, SPEAR chose a software-first approach. Using RT-Labs’ EtherCAT software, the team implemented custom EtherCAT slave devices tailored to their rover architecture.
EtherCAT slave implementation with SOES
The EtherCAT slave was implemented using SOES (Simple Open EtherCAT Slave) running on an STM32 microcontroller connected to a LAN9252 EtherCAT controller via SPI. Existing SOES reference code was adapted to the STM32 platform by replacing low-level drivers, while keeping the core stack unchanged.
Code generation with EtherCAT-SDK
SPEAR used EtherCAT Slave Editor from RT-Labs to configure process data for motor control and generate both application code and EEPROM images. EtherCAT Explorer was used for diagnostics, verification and EEPROM programming during development.
EtherCAT master and early system validation
On the master side, SPEAR used SOEM (Simple Open EtherCAT Master) for early evaluation and system testing. Initial testing was performed using PySOEM as a lightweight wrapper to validate communication and motor control before deeper integration.
Preparing for system-level integration and scaling
The resulting architecture provides a scalable foundation for future development. SPEAR is extending the solution with custom slave boards, EtherCAT junction modules and native integration of SOEM into their ROS2-based control system.

The Result
The new EtherCAT-based architecture validated SPEAR’s move to a distributed control system:
- Functional real-time communication between master and custom EtherCAT slaves.
- Significantly reduced wiring complexity compared to the previous CAN-based design.
- A modular and scalable architecture suitable for additional motors and sensors.
- Full control over hardware and software without vendor lock-in.
The solution provides a solid technical foundation for future rover generations. SPEAR is now expanding the system with custom EtherCAT slave boards, EtherCAT junction modules and deeper integration of SOEM into their ROS2-based control stack.
