GUI-Library for microcontroller [closed]
Asked Answered
E

13

28

I want to create a GUI driven application for a micro-controller (Atmel XMEGA) that is connected to a 128x64 dots graphics LCD (EA DOGL128-6) and 4 buttons for navigation.

Controlling the display itself (e.g. drawing pixels and characters) is no problem but in order to prevent me from reinventing the wheel I was googling for a GUI-Library/-Toolkit that is written in c, includes its source code, will run on a 32 MHz 8-bit micro-controller and provides at least the following controls:

  • panel (to group elements)
  • menu (scrollable)
  • icon
  • label
  • button
  • line-graph (optional)

But I didn't find any thing useful. Does anyone know (or better uses) such a library(preferably for free)?

Egalitarian answered 8/6, 2010 at 13:23 Comment(4)
Probably not, you'll most likely have to reinvent the wheel :( If you do this though, why not post it as an open source project to help others?Heydon
Are you using an RTOS or running bare metal?Omnipotent
Just to clarify--this is a monochrome LCD right? That probably eliminates some libraries.Entrepreneur
littlevgl.comLacewing
O
13

I would consider rolling your own "immediate mode" GUI. Jari Komppa has a good tutorial about them. It's a lot easier than you may think, and you'll probably find most GUI libraries--even those targeting embedded systems--are a bit heavy-weight for your system.

If you insist on using a third-party library, below are a few I found. I've never used any of them and they are probably fairly expensive.

Omnipotent answered 8/6, 2010 at 15:56 Comment(3)
I have used EasyGUI in a product. It has worked well for us. Our screen size is the same as the OP and based on an AVR32 processor.Pensioner
I decided to create my own implementation.Egalitarian
@Egalitarian Great. How did you like the end results?Omnipotent
P
6

I also wrote a library which supports nearly any display technology: µGUI

http://www.embeddedlightning.com/ugui/

µGUI is a free and open source graphic library for embedded systems. It is platform-independent and can be easily ported to almost every micro-controller system. As long as the display is capable of showing graphics, µGUI is not restricted to a certain display technology. Therefore display technologies such as LCD, TFT, E-Paper, LED or OLED are supported. The whole module consists of two files: ugui.c and ugui.h.

This might be helpful as well

Poultice answered 16/12, 2014 at 18:9 Comment(2)
I love this library! Threw out the TI grlib and started using it myself. All you need is a function to set a pixel to a RGB color. On my EK-LM3S3748, the grlib colors match uGUIs perfectly.Gand
thanks for writing it @Achim!Gand
O
5

I personally used PEG (at work), but it is not for free. You just need to write a small layer of adaptation and use it. You can also look at Qt or minigui.

Oxime answered 8/6, 2010 at 14:39 Comment(4)
This is a small microcontroller based system. I doubt if QT would fit onto the platform and even if it did porting would be a disproportionately large effort.Kamalakamaria
Assuming the target is a monochrome LCD, does that rule out Qt?Entrepreneur
The fact that the target is an 8-bit microcontroller pretty much eliminates Qt for those with any sort of practical decision making skills. ;)Omnipotent
How about the Qt for embedded linux? I find Qt/E could be ran on uclinux with some animations, buttons, etc. Could QML run on uclinux??Quinine
W
3

You should take a look at Contiki [wikipedia.org]

Besides being a small and elegant operating system for many 8/16/32-bit microcontrollers, it also features a GUI toolkit. It runs on the Atmel AVR!

For your convenience, here is a direct link to the The Contiki Toolkit (CTK) source code.

Waterfall answered 25/8, 2010 at 18:54 Comment(1)
Unfortunately the offical website seems offline at the moment, but the project is also available at sourceforge.net/projects/contikiWaterfall
E
1

In addition to Judge Maygarden's list RAMTEX provide libraries specifically aimed at small graphic LCDs. Again not free, but is this is for commercial use, remember that if you did it yourself, it may take many man hours to achieve a polished product, so consider that before building your own.

At the rates my company accounts for my time (as opposed to my pay rate), if it took more than five hours, I'd be better off buying the Ramtex library (about two days if you only take my pay rate into account). If however you have the time and inclination, it is not a difficult task, and probably fun.

Embouchure answered 8/6, 2010 at 18:49 Comment(6)
Does RAMTEX have GUI controls/widgets or is it just an LCD driver?Omnipotent
The use of the term "driver" in their product name is unhelpful and misleading; they are GUI libraries. Look at the specific product links to see a screen-shot and feature list. The more capable the display, the more features. Probably bet to talk to the supplier for support for your device.Embouchure
@Clifford: Have you used RAMTEX's gui library personally? I am having issues talking with an SSD1305 via the SPI interface. If you have any thoughts, I will post a question here and not high-jack this tread.Liberticide
@Adam: It is used in my company, but not directly by me. I am not sure what the interface to the LCD is or even what LCD is used.Embouchure
@Clifford: Thanks! It was worth a shot. Ramtex got back with me to resolve the issue.Liberticide
when using ramtex, what is the framework (something like MVC) for creating menus and moving between menus and graphics ? Is there any framework for this, or do we need to "invent the wheel" ?Artie
V
1

Rich Quinnell mentions "... I saw a demonstration of Java applications running on an STM32-F3 MCU..." http://www.microcontrollercentral.com/author.asp?section_id=1741&doc_id=253618

I guess it is what you are looking for?

Voltaism answered 17/11, 2012 at 22:10 Comment(1)
the link is broken nowGand
L
1

Atmel (now owned by Microchip) actually makes a GUI library targeted at their microcontrollers.

This is part of the now called Microchip® Advanced Software Framework.

Lex answered 6/5, 2015 at 7:9 Comment(0)
C
0

You may want to have a look at the Nano-X framework (formerly known as Microwindows): http://www.microwindows.org/

It claims to support down to a 16-bit DOS system, so I'm not sure if it's suitable for an 8-bit, but maybe the library can be pared down to just what you need.

I haven't used it, but at one point was considering looking into using it for some simple display UI (though on a 32-bit ARM system). Unfortunately, the project shifted gears before I actually did anything with it. I'd be interested in what your take on it is (or how well it works if you decide to try to use it).

Confer answered 8/6, 2010 at 18:5 Comment(2)
I ran across that one too, but a even a light-weight xlib-type system seems to heavy-weight for a typical AVR.Omnipotent
Has anyone gotten this to work on a Cortex-M3 32-bit ARM microcontroller?Gand
B
0

NuttX is a real-time operating system for microcontrollers. The author has starting a developing some gui primitives for LCD displays for it.

Bren answered 11/6, 2010 at 17:15 Comment(1)
in fact, NuttX now has a great GUI system. But it is hard to port :( uGUI is much easier (and free for commercial use).Gand
V
0

We've started using easyGui and it seems good. You design the screens in a PC app then it generates the source code - making the design stage really easy.

It does most of the things on the list. Line graphs are coming soon. You can make up buttons pretty easily as reusable structures.

It comes with template drivers for lots of displays - depending on how closely the template matches your display (colour depth & interface are the biggest issues) you might be able to use the code unmodified or change it to suit.

Vedanta answered 16/6, 2010 at 1:12 Comment(0)
C
0

I have been working on a similar project. Closest thing I could find are in the following links, but I doubt you will find a library with all the features you desire. These will only setup basic drawing functions, but it's a start. There are also some useful tools for bitmap converting and font creators if you dig around.

http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/glcd_dcf77/index.html

http://en.radzio.dxp.pl/

Almost everything else I have seen here is way overkill for what the poster seems to be asking for.

Compagnie answered 25/8, 2010 at 18:17 Comment(1)
radix07, have you finished this?Gand
P
0

The CodeVisionAVR development environment now has graphical libraries for XMEGA.

The CodeVisionAVR C Compiler features a powerful graphic library for LCDs with resolutions from 84x48 up to 800x480 pixels.

However, it is not free.

Placenta answered 19/11, 2012 at 6:42 Comment(0)
S
0

You can use the "Microchip Graphics Library" for free.

This includes GUI tool "Graphics Display Designer X" for designing screens and this outputs the "C" files for your designed screen.

I am using this tool which is very user friendly, but some of the widgets what you are looking you may not find.

Here is the link for GUI tool: Click here!

Slender answered 12/11, 2014 at 7:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.