Go Down

Topic: GUI (Read 8390 times) previous topic - next topic


It seems to me like a large proportion of Micro-controller users (myself included) are not interested in spending hours developing code, trying to get cryptic bits of text to perform simple tasks.

With powerful computers at our finger tips and a wealth of lateral thinking programmers, why hasn't someone developed a smart GUI that enables one to define Inputs / Outputs and Functions, using a visual orientated interface.   (click, drag and drop)
Is there any such GUI out there?  Will it ever happen?  


Lego Mindstorms springs to mind.
Some people are like Slinkies.

Not really good for anything, but they bring a smile to your face when pushed down the stairs.


Lego Mindstorms uses a version of LABview software to do just that.  LABview and Simulink are powerful enterprise-level software that major companies use to develop control systems in cars, jet engines, etc.

The Fritz system is visual and a similar system could be made to produce the software you load into the device.  Nobody's built that part, so if you are keen for it... go implement it!  Of course, to build that visual system, you'll probably need to be a very competent "cryptic text" programmer who hates using "cryptic text" to program.  This is probably why it doesn't exist yet.

Going visual is just a different flavor, but no magic panacea that makes everything easier and bug-free.  The Toyota brake/accelerator recalls come to mind:  they somehow didn't think that they should arrange the inputs so brake commands took precedence over acceleration commands!

It's probably much more instructive to use those "cryptic bits of text" because you develop a more rigorous understanding of the registers, memories, ports and other components that make up a microcontroller.  If you add a layer of "cryptic squiggles of lines connecting boxes" it's much harder to see how much processing overhead your code will take up-- will it run slowly or quickly?

Give it a try with an open mind!  It won't be as bad as you think.


Im industrial in my profession and have asked the Arduino to communicate with iFix and QuickView using modbus protocol. Easy for me. QuickView is native Modbus while iFix has longer demotime.


Give it a try with an open mind!  It won't be as bad as you think.

I agree. Many come to Arduino with some or even a lot of programming knowledge and experience but no basic electronics experience. Others come with electronics background but no or limited software knowledge. A few come with neither type of prior experience and still manage to learn by examples, documentation and of course with posted questions. While a PC based 'visual Arduino' programming language would certainly help a few beginners to get started, I think it goes somewhat against the original mission of the Arduino team to create a LEARNING tool for people of all backgrounds.

I'm sure the frustration is that many beginners wish to start right out on a complex project and get frustrated with a learning curve that starts out with blinking a single LED.  ;) But starting simple and learning step by step is the most productive path in the long run.



Hell, arduino would be seriously boring with a clicky interface.  An alternative to Lego is Picaxe (google it) it has an interface for secondary school children.  Sparkfun sell it in the US.


Maybe you would enjoy using Scratch for programming?


Doesn't work with Arduino (afaik)


To me the enjoyment is in the using of the end product, not spending endless hours trying to come to grips with the how and why of programming.

It's like build a model R/C plane from scratch. The chances are you will never finish it off as there are too many other things in life to get on with. All you really want to do is fly it.

What we need is more young kids getting into electronics and we achieve that by not complicating their passage to achieving end results.  For me, I would like to see a smart GUI for Arduino/Basic Stamp etc...


Well, as someone mentioned above you would probably do better with Lego Mindstorms than Arduino.

That said, what is the "end product" you are referring to? If it is a self-generated/self-designed project, there is no end product until you complete it. If you don't like programming but have ideas, maybe you can partner with someone or hire someone to do the programming parts.

I sort of know what you mean - but if you are doing something custom, there is no help for getting your hands dirty (or hiring someone to get their hands dirty).


Short version: I think a GUI-oriented interface would fail to attract enough "real programmers" to write support the broad range of devices that users would like Arduino to support.  And, it's not clear to me that a GUI interface would actually be any easier to use.  (There are products that do that sort of thing, leading to advertisements for highly-paid positions for people who are actually capable of using them to create useful end applications.  Someone mentioned labview?  http://www.labviewjobs.com/login.php?u=jobseeker )


Mar 06, 2010, 02:31 pm Last Edit: Mar 06, 2010, 02:32 pm by pwillard Reason: 1
I think that it is also important to understand that only a small number of projects are designed to use the Arduino so they would end up as an EXTENTION to the PC... and only *they* would need some form of a PC gui.  Many projects are standalone devices with their own user interface that relies on LEDs, or LCD displays and buttons.  

I'm just saying you should broaden your view of what the Arduino actually *is* and try to realize that a SIMPLE gui as your explain it would be quite limiting.

For example:  What devices would you want to support?  Just the Arduino's capabilities or other add on devices such as the thousands of potential sensors etc.   Please explain better what you are expecting.

If you never want to actually program, there are many completed projects in the Exhibition section of the forum and on the playground.


I have used both Labview and "cryptic bits of text" to develop embedded control projects, and I'll take the text interface any day.  The advantage of Labview is that it comes with a large library of instrument drivers and controls, but I find the actual development process more difficult than coding in c, as much as I dislike c as a language.  The other problem is that Labview is expensive and not open source.  I could see using a GUI to configure a narrow application, but there's a reason that all the world's best software is still developed using "cryptic bits of text."  You just can't beat the flexibility.


A clicky'drag'drop GUI will probably help developing basic tasks, but you'll almost always be dropping into the cryptic magic texts to fine tune and do what you really want.

I've been programming for several decades, so I probably have a skewed point of view of this, but I find satisfaction of really understanding how things work at the low level, to use that knowledge to exploit every bit of performance of the hardware.

The arduino is not your heavy duty minicomputer that has shitloads of resources available, so it is vital to understand the limitations, and instead try to learn how to best utilize this to your needs.

Unfortunately, click'n'drag'n'draw type GUI's will mostly generate code that quickly eat your available resources.

Whats very good about arduino, is that its open source, you dont need to invest a shitload of money to get a development kit, there is a large community that is using it, and there is already a ton of resources on how to do things with it. And, if you get past a certain point in the learning curve, you could do amazing things with very cheap hardware.

Remember, amazing things could be done with the commodore 64, and that was a 1mhz cpu with 64KB ram :-)

That said, there is nothing wrong to develop a click'n'drag GUI for the arduino, and it probably would broaden the user base, but there is lego mindstorms out there already, and having a bit more hard core, cheap, open source alternative is a great portal of doing amazing things with a microcontroller. I'll say that investing time to learn the magic text of programming C/C++ will be very rewarding in the long run.

I live by "Find, and use the right tool for the job", and "if its fun and rewarding, keep doing it", arduino is a very nice tool for many things, and it is extremely fun to work with, Your results may vary.


Im a little bit confused in this thread. (Too?)
Is it a GUI or an IDE you want, Kend?


Some 15 years ago I met a Doctor (Medical) who in his "spare time" developed a micro-controller based development system called Koala. (being an Australian)

The system was designed for use in schools.  As such its focus was on understanding how different electronic elements could be interfaced and used as functional devices.

The device was programmed/configured by selecting symbols from a library such as AND and OR Gates, Latches, Op-amps, Caps, Resistors, Transistors, Oscillators, Counters, Timers etc. It had an on board LED for displaying results. One simply dragged and dropped symbols, which made up the schematic of the circuit you wished to achieve.  It worked a treat - once set up it would run as a stand alone controller.

Anyone with a basic understand of electronic systems could program the micro with no or little knowledge of how to write code. I admit that complex designs where not possible but it sure was easy to get an appreciation of how electronic components are used as building blocks.

Time has moved a I acknowledge that the current bread of micros are amazing.  From a newbie point of view, (newbie to Arduino that is) its a case of where do you start with the overwhelming choice of micros and programming languages.  This  choice would be made easier if there where a graphical programming tool available. Maybe IDE is the correct terminology.

Go Up