Skip to content

Interface and Application Programming

In the context of this week’s assignment, our group (Julian, Kerstin, Lars) collaboratively explored and compared a range of tools and frameworks suitable for creating graphical user interfaces (GUIs) that can interact with microcontrollers or embedded systems. The goal was to identify flexible, well-documented, and accessible tools that can be used to build interfaces for applications in the Fab Lab context.

We focused our comparison on tools that offer a variety of features, such as graphical and classic interfaces, support for serial or wireless communication, and compatibility with different operating systems and devices. The comparison covered both desktop- and browser-based environments as well as mobile application frameworks.

In our opinion, the main factor for differentiation is the type of data transfer, as this is often dictated by the use case or hardware. Therefore, we first distinguish between applications for serial, Bluetooth, and Wi-Fi communication—although many applications support multiple options.

Interface Comm. Type Hardware Communication Method Application
Processing (Java) Serial PC + Microcontroller Serial via USB bidirectional: visualize data & send control commands
Python + libraries Serial, Bluetooth, WiFi PC / mobile device + Microcontroller Serial via USB bidirectional: visualize data, send control commands, plus: data analysis, data processing
MIT App Inventor (mobile) Serial, Bluetooth, WiFi primarily mobile device + Microcontroller, works also with PC Serial via USB, HTTP over WiFi, Bluetooth Classic bidirectional, focus on UI
P5.js (Web GUI) Serial, WiFi PC / mobile device + Microcontroller WebSocket or HTTP via WiFi, Serial via USB and Serial API bidirectional, focus on UI
Node-RED Dashboard Serial, Bluetooth, WiFi PC / mobile device + Microcontroller Serial via USB, HTTP or MQTT over WiFi, Bluetooth Classic / BLE bidirectional, Bluetooth support possible but requires local setup and is far more complex to configure
Custom HTML/JS Webpage WiFi, Serial PC / mobile device + Microcontroller HTTP over WiFi or Serial via USB Micocontroller exchanges data with browser, visualization & actuator control
Flutter WiFi, Bluetooth mobile device / PC + Microcontroller HTTP over WiFi or Bluetooth via BLE Smartphone-App / Web-App exchanges data with Microcontroller, visualization & actuator control, support for all operating systems (Android, iOS, Windows, macOS, Linux), even stable with f.e. Raspberry Pi
React Native WiFi, Blueetooth mobile device + Microcontroller HTTP or WebSocket over WiFi or Bluetooth via BLE Smartphone exchanges data with Microcontroller, visualization & actuator control, support for many operating systems, especially mobile platforms