Let's start with the problem
Everywhere in a laboratory (or at home) there is equipment that has to be controlled mainly manually.
Wouldn't it be nice to have a single interface to control them all remotely from anywhere?
(Yes even with your coffee machine)
If these devices have some sort of interface that can handle basic commands for control, MUSCLE can control them too.
These interfaces can be - RS232, RS485, RJ45, USB, Digital Pins ...
A MUSCLE device is extended to implement the device-specific commands, acting as a gateway.
A MUSCLE device is a software application that runs on any (embedded) Linux device with Python 3 support. The basic implementation is done, only the communication to your specific device is missing.
Those extended devices can then be registered to the MUSCLE application. From where they can be controlled and monitored.
MUSCLE is a web application, it can be reached from your smartphone, laptop etc.
In most cases the equipment to control differs in functionality. That's why MUSCLE does not define what will be sent to the device, each must be configured with a set of possible control options. Those options will then be sent to the application which then displays them correctly.