Through the Firmata APIs, you can fully exercise the I/O pins of many LaunchPad development kits. You can toggle I/O, generate PWM signals, read analog inputs & more. The other benefit of Firmata is its ease of porting to new platforms. Firmata support can be added to a new LaunchPad by simply modifying a boards.h file, which acts as a descriptor file that describes all of the functionality available on each pin on the LaunchPad. The application firmware remains the same.
Here’s a video of Firmata in action!
There are several PC-side GUIs that are available that allow you to interact with your LaunchPad’s I/O pins. However, these GUIs are simply example applications that are leveraging the firmata APIs. What’s cool about these PC side GUIs is that they are able to do a quick “handshake” with a connected LaunchPad. Through the serial interface, the GUI is able to identify which board is connected & dynamically populate the GUI with the appropriate pin list. It also intelligently exposes the appropriate functionality that is available within each pin. With additional code, developers can go a step further and add logic & intelligence to the server side application. This way, the application you are creating is completely hosted on the PC/server side, while the LaunchPad simply acts as a serial interpreter waiting for commands.
Firmata is available as a library/example application in Energia v13 and newer.