Interface – Update

We decided to create the user interface with Electron, a framework for creating cross-platform desktop applications. Just like a website, Electron uses a code-base of Javascript, HTML and CSS to create interface windows. This means it could be easily understood and customised by anyone familiar with web development – probably the most ubiquitous form of programming.

interface screenshot

However, unlike a website, Electron allows our interface to be packaged and distributed as a regular desktop application: downloaded and installed as a single file, opened with the click of an icon and easily able to interact with connected hardware and save data to your computer.

Although there are Javascript libraries for controlling Arduino we have decided that in order to increase the speed of the AFM and make the code more efficient and readable we will write our own simple serial communication protocol for this. This has required working closely with the firmware team to decide who takes responsibility for pre-processing the data and controlling the stage (them). The basics of this protocol have been worked out with only high-level commands and confirmation handshakes sent over the serial connection such as “Initialise”, “Start”, ” Data Received” etc..

We have also been working on the front end of the interface, with people coding the control buttons and surface plotting in Javascript as well as sketching layout designs of the interface windows.

Interface app