Lately I found a Beaglebone Black in my stock and had the idea to use it for some kind of fermentation control with a graphical user interface (GUI). For testing purposes I first wanted to run a small GUI on the Beaglebone via remote control (SSH). SSH has this great -X switch that enables X11 Forwarding. So I wanted to use this from my Mac to remote control the Qt GUI on my Beaglebone. Here is how I did it.

In recent months I really came to like Flask as a framework for creating websites and web applications. The usage of Jinja2 templates, HTML5 and Javascript to create good-looking and responsive user interfaces along with the Python language in the backend comes by naturally and on some point I asked myself why not to use Flask to create Desktop applications. The idea to use web technology for creating desktop applications is quite old and for other programming languages there exist some nice frameworks (e.g. Githubs Electron). However for Python there are not so many players around. So I decided to use the PyQt5 WebView widget. I have some experience with PyQt5 so this approach seemed the most natural to me. I wanted the application to become a stand alone executable. So I used cx_freeze here.