# openQCM quartz crystal microbalance the design of new Java software interface

> Source page: https://openqcm.com/openqcm-design-java-software-interface.html
> Markdown version for AI agents and readers of plain text. Site guide: https://openqcm.com/llms.txt · Everything in one file: https://openqcm.com/llms-full.txt

I will present the new Java software interface of openQCM the fully open source quartz crystal microbalance.

The first time we start the  **openQCM**  project we choose to develop the software in  **Java**  programming language. Although I was not very confident with Java programming at that time, this language appears to me very powerfull and suited for software development and implementation. Java applications have the unique feature of being cross-platform and running on many operating systems and hardware. Finally, Java is a free software released under the [GNU General Public License](http://en.wikipedia.org/wiki/GNU_General_Public_License%20) !

When I started to programming the openQCM software my first goal was the development of the source code, whose main features were:

1. Control and communication with the  **Arduino**  board
2. Read and plot real-time data using a  **dynamic chart**

These are very simple tasks for an experienced Java programmer, but it was a very hard work for me. The eureka moment came after some interesting discussion with Luciano Zu, the developer of [Ardulink](http://www.ardulink.org/). Once I have discovered Ardulink the problems with Arduino communication using Java were solved.

My first openQCM Java software worked quite well, but the user interface looked like that:

 [![The first and basic openQCM quartz crystal microbalance software interface](https://openqcm.com/wp-content/uploads/2015/01/old_interface-1.png)](https://openqcm.com/wp-content/uploads/2015/01/old_interface-1.png)The first and basic openQCM quartz crystal microbalance software interface

Not exactly a great work, what do you think ? When I asked Glenda Torres Guizado, the designer of openQCM hardware: “ *Glenda, what do you think about the software interface ?* “, she told me: “ *uhm… I think we have to work on it !* ” I was agree, definitely.

So, Glenda (the  **designer** ) and me (the  **programmer** ) have worked together to design the new simple, intuitive and efficient GUI (graphical user interface) of openQCM software. Glenda designed the interface concept, which looks like that:

 [![Designer Glenda Torres Guizado concept of the openQCM software interface.](https://openqcm.com/wp-content/uploads/2015/01/openQCM-prova-spiegazione-1.jpg)](https://openqcm.com/wp-content/uploads/2015/01/openQCM-prova-spiegazione-1.jpg)Designer Glenda Torres Guizado concept of the openQCM quartz crystal microbalance software interface.

She highlighted the quartz crystal frequency dynamic chart, which is the most important part of the GUI software. Then, the interface concept shows two main panel: Bottom panel shows buttons for connection to the Arduino board and for save the data file; Top panel shows the displays for the current frequency and temperature data, plus buttons for chart settings. She also suggested to display the temperature data in the same chart using a secondary axis on the right, and to create a pop-up window for serial connection. “ *Great work, I like it* ” I thought, so I try to realize something similar to the Glenda’s concept.

The (second)  *eureka*  moment came when I discover the [Swing GUI builder in Netbeans IDE](https://netbeans.org/features/java/swing.html) which is a great features for creating awesome GUI in Java programming language. Ardulink provides also java swing components collection, so I was on the right way definitely. The development of the new GUI encouraged me to write from the scratch the source code. My main achievement was the development of the swing component for the [JfreeChart](http://www.jfree.org/jfreechart/) panel. I have all the right pieces of the puzzle and I have just to put them together in the right way. Finally, the new openQCM software interface looks now like that:

 [![The new openQCM quartz crystal microbalance Java GUI software interface](https://openqcm.com/wp-content/uploads/2015/01/openQCM_main_GUI_signal-1.png)](https://openqcm.com/wp-content/uploads/2015/01/openQCM_main_GUI_signal-1.png)The new openQCM quartz crystal microbalance Java GUI software interface

We are very happy for the final result, now it looks awesome. Am I right ? In these days I will post something more on the development of the new openQCM software, with more details both for developer and for user.

cheers
 marco

---

openQCM by Novaetech S.r.l., Pompeii, Italy · Buy: https://store.openqcm.com/ · Contact: info@openqcm.com · https://openqcm.com/contacts/
