Freely modifiable and designable GUI framework/library/whatever for Arduino?

This might be a total 101 beginner question, but I am an arduino beginner, and couldn't find exact information about this. Hopefully this is the right subsection for this question.

So, I'm a UI designer with an industrial design background and I would like to build a prototype of one product/ application with Arduino and some sensors.

I have started learning the use of Arduino, and everything seems pretty clear for my project, except one thing. I want to build a unique graphical UI for my product. The product itself is not the most technically advanced, it is not about that, I'm pretty sure I can manage through. But what I want is to make a nice, usable, clean, classy UI for it, with zero amount of "engineering aesthetics" and "engineering usability".

The tutorials about Arduino GUI building and libraries I have found about this seem to have some engineering ideology baked in... It is not possible to really modify the UI totally. So, is there some solution for this? I'm looking for something roughly similar like using HTML and CSS for web UIs.

engineering ideology baked in...

Could you explain what that means and why it is so undesirable?

groundFungus:
Could you explain what that means and why it is so undesirable?

Amongst engineers there is a very prevalent ideology that aesthetics don't matter, and that the most usable user interfaces and controls are such that strictly follow the technical process behind them.

However, this generally results bad products that even engineers don't like, and can't use effortlessly unless they are familiar with the exact technology behind the user interface / control panel.

Not saying every engineer is like this, there are some really creative, innovative, even artistic or humanistic engineers. But a majority of engineers have "the engineering ideology".

Hi,

I am myself engineer, so I beg your pardon from the very begining ...

Excuse me but, what is the intended use of a "Freely modifiable and designable GUI framework/library/whatever for Arduino?" (It is not a rethorical question ...).

Best regards.

The lack of processing power, severe memory and I/O speed constraints make it very difficult to create the kind of user experience you expect to find on a tablet computer. Even dealing with fonts is a major problem due to the memory required. Essentially you are using something which has the power of a desktop computer from the 1980's, and UIs back then were extremely basic for the same reasons.

Given that you can buy a 7" Android tablet for $70, why not just create your UI on that and connect it to the Arduino. This has the advantage of separating the complex, and therefore potentially buggy, user interface code from the core Arduino code that in most cases is supposed to run continuously for months at a time without crashing, hanging, or being restarted just because there is a UI update available.

The kind of slick user interfaces you find on modern oscilloscopes are usually provided by an embedded Windows CE or Linux computer running on a GHz processor which are basically hardware equivalent to an Android tablet.

Maybe have a look at this AWind: GUI library.

However I am firmly of the view that GUIs should be built on more powerful computers and the Arduino just used for the things it is good at.

As well as all the reasons put forward by @mikb55 it is much easier to write GUI code on a PC with an operating system and access to easier-to-use programming languages.

...R

Is the GUI supposed to go on another device which talks to or controls the Arduino? Then you need to write the app in that environment. Processing or Python on the PC, app-developer-whatever for the tablet or phone.

If the GUI is supposed to be on the Arduino itself then it is highly dependent on the hardware you use. Some people want a flexible menu system that works on a 2-line LCD with only one or two buttons. Some people want to plug in a full size keyboard to type stuff. With the limited memory, you cannot put a program that flexible onto the Arduino.