FlexSEA Overview

A project log for FlexSEA: Wearable robotics toolkit

OSHW+OSS to enable the next generation of powered prosthetic limbs and exoskeletons. Let’s make humans faster/better/stronger!

Jean-François DuvalJean-François Duval 05/12/2015 at 17:370 Comments

There are two main ways of designing electronic architectures for active wearable robotics: 1) microcontroller-based and 2) embedded computer-based. Commercial products are mostly microcontroller-based while research prototypes tend to favor systems with embedded computers.


Embedded Computer


  • Small form factor that can easily be adapted to different mechanical designs
  • Low power
  • Unit cost is low
  • Low level software (C and/or ASM): processor efficient
  • Quick design phase
  • High-level software (C++, Python, Java, Matlab): ease of development
  • Minimize the number of specialized skills required to modify the system
  • Cons

    • Development (prototyping) cost can be higher
    • Longer design phase
    • Requires Electrical Engineering skills for the design, maintenance and modification
    • Low level software (C and/or ASM): less portable, requires specialized skills
  • High-level software (C++, Python, Java, Matlab): not processor efficient
  • Higher power (less energy efficient)
  • Relies on commercial parts (no control over the production and life cycle)
  • Harder to modify
  • Integration issues between different subsystems
  • Sub optimal wiring
  • FlexSEA combines the two major embedded system design approaches. Commercial products are usually microcontroller-based. They can have small form factors, low power requirements and a low unit cost but programming them, adding sensors and motors or networking multiple circuits together requires specialized skills or extensive circuit and system redesign. On the other end, research prototypes often use embedded computers as the main computing element. The design phase is short and high-level software can be used but the mechanical integration is problematic, the power consumption is high, interconnections lack reliability and there is no clear path towards commercialization. FlexSEA combines the two approaches, keeping only the best features.


    FlexSEA-Plan is an embedded computer used for high-level computing. It boasts a powerful processor and can run an operating system such as Linux. Developing code on this platform is similar to the regular (i.e. non-embedded) software development process. High-level languages such as Python can be used, saving experimental data is as simple as writing to a text file and interacting with the system can be done via USB or WiFi. FlexSEA-Plan should be used when ease of development is important, and when complex algorithms and control schemes require significant computing power.


    FlexSEA-Manage is used for mid-level computing tasks. It serves as an interface between FlexSEA-Plan and FlexSEA-Execute: communication protocols translation, data routing, time-sharing. It has an Expansion connector that can interface with a wide variety of input and output devices. Data acquisition, processing, and aggregation can be done on this board, thus unloading FlexSEA-Plan from these simple tasks. For applications that do not require intensive computing, FlexSEA-Plan can be taken out of the system and FlexSEA-Manage can host the high-level state machines.


    FlexSEA-Execute is an advanced brushless motor driver. Wearable robotics applications require different control loops than the typical position and current controllers found on commercial drives. FlexSEA-Execute has onboard sensors (6-axis IMU, temperature, voltage, current), interfaces (strain gauge amplifier), processing power and connectivity to make it possible to close most control loops onboard. It is well suited for the series elastic actuators (SEA) commonly used in prostheses.

    Two degree of freedom projects can be made with 1 Plan, 1 Manage and 2 Execute: