Internet of March

By Philipp Dürnay

Hello there! It has been a while since my last post and a lot of things have happened. Around the tiny motor I showed you in my last post, we built an entire exoskeleton. A big part of that was the software that is responsible to make the individual parts of the exoskeleton work together as a whole.

Now you can imagine that there is not only a  single computer and a single program involved in delivering this service. In fact does the MARCH II contain 10 computing components that are responsible for different tasks of the exoskeleton. All of these components are connected via a bus system called EtherCAT, that ensures that all data is sent and received at and in the right time.

Now let me take you quickly through the components in the MARCH II. Next to the four microcontrollers that are responsible for controlling the motors there are three components that sense environment information and one component that controllers the power supply. Additionally there is the input device that receives the input from the user and displays information.

Data from all of those devices is collected in the main computer of the MARCH II which is our final component. This PC is responsible for interpreting all available information, deciding what is best to do and telling the individual components how to act.

The biggest challenge in the design of such a system is to make all components work together efficiently while at the same time being able to change and extend functionality. Because in the end there will always be someone saying things like: “Wouldn’t it be cool if we also had sound feedback?”. And then you as a Software and Control engineer have to be able to quickly extend your software without changing other behavior.

Thats why in the design phase we had to carefully think about the interfaces between the modules and what information is required where. This is a general challenge of designing software and I could happily apply my experience from my bachelor and master programming projects. After defining the interfaces we could work on each of the modules individually and fill them with “life”. Finally, all these components work together making them act as one MARCH II.