Arduino debugging AND a GUI control

Hi all, I’ve been using an Arduino Uno for work and at home. At work I use it mostly as an embedded controller and a data acquisition device. At home I have just been learning about all the great things others are doing with it and I think it will be a fun hobby. I’ve learned lots, by using the provided tutorials and examples, such as, the data logger using the Adafruit SD shield with real time clock. All this stuff is great, and I have some intriguing ideas for applications to try, but…
All these applications have been facilitated with the Arduino compiler. I like it, but it is a bit too limited in scope. makes me upload a lot of times before I get it right.
I’m hoping to get some information (pointers to the right direction) that will lead me to (or help me to understand how to accomplish - or why I can’t) a standalone GUI application using the USB port. Like I used to do with National Instruments hardware and VB.Net, only for embedded systems. I think I should be able to write and debug code, like using Visual Studio, but also a GUI that can control the board and view the data with a graphic user interface like the QT app.
I’ve down loaded and installed QT but attaching it to an UNO Serial Port is like ???HOW??!!!
I’ve tried LabVIEW for Arduino, but it requires a dedicated computer (I think).
Just recently, I have successfully installed Visual Studio community 2013, with the VisualMicro extension for the Arduino (AVR). But it don’t have a UI, does it?
Will Firmata do this? How?
Sorry for the long post, but I just can’t seem to put this all together and it seems soooo unlikely that it isn’t out there in plain sight - I just can’t see it, yet

and it seems soooo unlikely that it isn't out there in plain sight

Time to face facts.

I like it, but it is a bit too limited in scope. makes me upload a lot of times before I get it right.

The solution would seem to be learn to do it better. I don't think that anyone get a none trivial program right first time.

The whole point about an embedded processor is that it is a lean efficient product. You start stuffing a GUI on it and that is the way to bloatsvill.

It never hertz to ask.
I didn't intend to embed the GUI. That would be on a computer, I guess it would require some additional code to make data accessible. I was aiming for a development tool, a convenient desk top test station, rapid prototyping, empirical testing, etc.
I shall dream on.
Finally, me thinks you are quite right, no one has ever gotten a non trivial program right the first time, yet we all strive...
Thanks for your time!

I came across this:-

It shows a GUI for audio DSP ( Digital Signal Processing ) applications for a Teensy, which is an Arduino derivative. I suspect this is the sort of thing you want to do for a general purpose point of view.

As far as I know the Atmega MCUs used in Arduinos do not have the facilities to allow you to spy on the internal workings while the MCU is running a program.

If that is correct then the only way to "monitor" the behaviour of an Arduino program is to add code into the program for that purpose. That extra code will be both a burden on the MCU and a potential source of error.


I’ll let you know how I do things, and maybe it provides some insight to other ways.

For programming, I do not use the standard Arduino IDE.
As you make mention, it is too limited in so many areas that just make any sort of development work more of a chore than a pleasure.

So, I use the Eclipse IDE with the Arduino plugin.
Eclipse, for me, is a great environment to develop in. I can have multiple projects open, where each can be different languages. For example, I can have a few Arduino projects and a javascript and Python and standard C all open and active. This allows me to work on projects that have multi faceted aspects where I can far more easily keep all parts of my projects in sync.

Also, a more feature rich IDE such as Eclipse will give you far more in the way of highlighting warnings and potential errors even before you hit the compile button. You can hover your mouse over most things and alls sorts of useful information is popped up to make it so so so much easier, really.

If you are past the blink without delay scope, then look into a better environment to program in.
Eclipse with the Arduino plugin is multi platform, and even works on Windows (oddly) :slight_smile:
The link to the site where you can get more information Arduino Eclipse IDE named Sloeber - Welcome!

Next, for debugging, a simple but effective method I use is to not use the basic terminal console where data just scrolls up with each printed line, but rather, I simply embed VT100 type terminal code into the code sections that do the serial printing and then I have myself a quick and quite nice GUI, direct from the USB port of the connected Arduino while running a VT100 terminal program.

This is all native in GNU/Linux and Mac OSX systems, so no need to do anything at all, it’s always been there. For windows, you need to download a terminal application that understands VT100 codes, there are quite a few out there for you to choose from.

With such a method, you can place text anywhere on the terminal screen using x, y coordinates and with a number of attributes such as different colours.

Well, hope that gives you some ideas.


I spent three months last year trying to use eclipse on a Mac and found it a total and utter nightmare. You can see I am not a beginner at these things but I think it is only for hardcore software people. Totally incomprehensible, in need of an update every other day, and took gigs and gigs of memory. I would not advise any one to use it who asked for advice here it is just way too complex.

I just use Geany to edit my code. I tried Eclipse or one of its derivatives years ago and gave it up. I prefer to be closer to the action.

I figured out how to upload Arduino programs directly from Geany but, to be honest, I usually forget and just use the IDE for that.