I am rather new to using an Arduino. As a part of my Graduate-Level Chemistry research, I am trying to further the development of a cheap DIY, open-source, Flow Chemistry Syringe pump system.

The device utilizes Stepper Motors, Step Motor control boards, an Arduino Uno, and a 3D printed Pump frame. Simple code was previously developed using the Arduino IDE. I have expanded on this a bit to allow for more customization (syringe size, mostly). The limitation here, is that the Serial Monitor inputs will be taxing to the users. I need to develop a simple GUI that allows for all of the inputs I need (syringe size, flow (step) rate, start and stop functions, etc.). I need this gui to be a standalone application that can be easily shared (no need to download anything extra, no installations, deploy-able on at LEAST Win and Mac).

Our labs goal is to develop a system that is easy to use and distribute, reducing the costs associated with using Flow Chemistry. I have a decent understanding of Arduino IDE, and I am willing to learn whatever I need to make this work.

I have seen a few things about Python, and 'Processing', but they seem to require the simultaneous use of Arduino IDE which would make deployment too complicated.

How should I approach this? What language do I need to learn? What advice do you have?

  • how do you intend to display the GUI?
    – jsotola
    Apr 12, 2020 at 20:34
  • I plan to have the GUI displayed on my computer monitor.
    – EzE
    Apr 12, 2020 at 20:37
  • then, which part of your question is actually Arduino related?
    – jsotola
    Apr 12, 2020 at 20:39
  • 1
    you are not correct about this ... Python, and 'Processing', but they seem to require the simultaneous use of Arduino IDE ... google processing arduino serial
    – jsotola
    Apr 12, 2020 at 20:47
  • 1
    The Processing IDE is the one that Arduino "stole" to use for the Arduino IDE. It looks similar but does a completely different job. You should learn a programming language before you start thinking about how to integrate it with an Arduino.
    – Majenko
    Apr 12, 2020 at 21:18

2 Answers 2


The Uno is connected to the PC with a Serial interface (emulated over USB). The program on the PC only sees the Serial interface. It is not important, if there is really an Arduino at the other end. Nearly every programmung language can be used for interfacing a Serial interface, each gives advantages and disadvantages. But you will not have a single portable program file, that you can start on different OS without installing anything. Either you need to compile the program for each OS individually, or you can use a portable programming language, where you first need to install it's framework on the OS (for example python).

I would propose a different solution (that I'm currently also working on): Depending on your lab situation you could extend your project with a network interface, either Wifi or LAN. Then you can present a webinterface to the user. When writing HTML/javascript websites, it is easy to have them display correctly on most mayor browsers.

That way the GUI is really independent from the OS. For adding the network connection, you could use a LAN shield, Wifi shield, or directly change the microcontroller from an Arduino Uno to an ESP board, which has Wifi build in and is also has more computation power and memory.

The webinterface can be interactive by the use of javascript (since you cannot run php or similar on the Arduino or ESP).

Wether you want to use a companion application, that you write for the PC, or a webinterface is up to you and depends on your exact lab situation.

  • +1 for web. its the way to go for windows and mac. if you just expose the command interfaces on a socket, you can make as complex a web gui page as you wish hosted elsewhere or on computer. if hosting on arduino, keep it simple. by making a command response program on a socket, you are essentially doing the work of php (server side stuff).
    – Abel
    Sep 17, 2021 at 22:23
  • languages: C (or C++) for arduino, html and javascript for the gui
    – Abel
    Sep 17, 2021 at 22:28

I have a similar project ahead of me. While it is quite but obvious to be able to read the output voltages using arduino, I was wondering if we could create a python file which will be saved as an executable, but have in it, code that will run the original arduino cc file to read the averaged voltages from the pins. I tried using pyqt5 and/or tkinter but I am having thread issues in that the gui hangs after a few seconds of activity.(I used pyserial library here) It will be really helpful if someone can help me out here.

  • 1
    This doesn't provide an answer to the question. To ask another question, just click Ask Question above. If you wish, include a link to this question to help provide context. Jun 27, 2023 at 6:29
  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From Review
    – VE7JRO
    Jun 27, 2023 at 7:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.