Simplest way to build a GUI to communicate with arduino UNO R4

Hey everyone, newish user here. With your help I succesfully finished my first Arduino projekt recently (A simple wave generator that controls an experiment in our lab) and am super stoked. The project is currently started using a button, and everytime the experimental settings are changed, the user needs to go into the code and change hard coded values. I am thinking of creating a very simple GUI that can be deployed on our lab computers that allows users to change these values without having to tamper with the code. However, none of us have any experience with device programming and google returns many conflicting results.
Our question is therefore:
How can we, on a high level, create a simple GUI that runs on most winodws machines and can send and recieve data from an arduino R4 over USB while having to do the smallest amount of coding possible? Preferably while staying in C++. What are the libraries that are commonly used for this and what are obvious pitfalls? I am aware that this is a big question, any pointers to articles, partial answers or guidance on how to ask this question better are very welcome! Thank you all so much for your time

Have the Uno run a web server and connect to it using a browser on the PC

Interesting Idea! We are taxing the uno pretty hard already by outputting complicated wave forms at high resolution, do you think running a web server would still work or is that too much load?

The precursor to Arduino was Processing, which is still around and has some libraries for creating a GUI.

There are quite a few "industrial level" packages to do this sort of thing, may be out of price range for casual users. They probably also require quite a bit of learning to get to the point where you quickly knock up a simple GUI app.

Personally, I use C#, and have made several "informal" apps for colleagues to control equipment with, but I have been using C# for quite a while.

Hard to tell but fairly easy to test

Are you using the UNO R4 Minima or UNO R4 WiFi?

An original "Uno" won't run a webserver, but the newer types should. I normally use ESP32 for stuff like that.

Alternatively, if you are using an original Uno, you can build browser-based GUIs and communicate with it using Webserial. Not C++ and you'd have to learn HTML/CSS and Javascript, but there are more tutorials for that trio than for literally anything else on the Web!

I would use C# ('similar' to C++), Java or Python
connecting a arduino to a Windows USB port creates a virtual COM port (which you use to view the serial monitor)
close the serial monitor - the port is then free for a program (implemented in C# using the SerialPort class ) to open the COM port to connect to the arduino sending commands and receiving information to display

Visual Studio enables one the build GUIs in C#, C++., VB.NET, etc is free to download

have a look at VB and C# terminal emulators

I’d split it into two parts:

Rewrite your Arduino code to use a serial protocol

Write a gui to work with the serial protocol

—-

There are a lot of serial communication examples in the built-in examples and elsewhere. See

If you figure out a serial protocol, writing a gui that sends messages out on usb/serial has been solved thousands of times.

I would second the suggestions to design a serial interface and use a web interface. This will allow staging support and minimize changes.

The alternative would to redesign to add a web interface directly and skip the intermediate steps. This would be a particularly good option if you have the WiFi R4.

Some background...

For a river water quality monitor I worked we started with the serial-USB interface and a terminal emulator on the PC. We used a simple character based interface. This was a bit of a pain because the hardware was in a sealed box, which required opening the box and attaching a PC to modify parameters and download data.

Next we modified the system to use a serial-Bluetooth interface and the PC terminal talking to a Bluetooth serial interface. No code changes were made - we just replaced the USB-serial with Bluetooth serial. This solved the open the box problem.

This still had problems because the character interface was a bit difficult to use, particularly for less experienced people. Also you had to lug a laptop out to the site. We then replaced the Bluetooth interface with an ESP-01S WiFi module running a web server. The ESP01 used the existing serial interface to the monitor board and translated the serial interface to a web page interface. The web interface was easier to use and now you only needed to carry a device that supported a browser to the site. So rather than bringing a laptop a smaller device like a cell phone or tablet could be used. Since a human no longer needed to use the serial interface we eventually modified the serial to ESP01 interface to be more efficient for inter machine communication.

What's your budget?
MegunoLink has a form builder and data visualiser. $60 per installation or something like that.