Forum: Mikrocontroller und Digitale Elektronik Anpassbares GUI für STM32F4


von Simon R. (sr_engineering)


Lesenswert?

Guten Abend

Für eines meiner aktuellen Projekte bin ich auf der Suche nach einer GUI 
die auf einem STM32F4 läuft und betreffend Aussehen bis ins Detail 
anpassbar ist.
Als Display wird ein 5" LCD mit 800x480 pixel und capazitiv Touch 
verwendet. (Controller wahrscheinlich SSD1963).

Ein GUI welches für die STM-Familie oft genannt wird ist ja die Segger 
Version von STM. Allerdings bin ich mir nicht sicher ob sich diese 
Oberfläche genug an meine Bedürfnisse anpassen lässt. Das GUI sollte 
möglichst schlicht sein (wie zb iOS) und sich klar abheben vom 
altbekannten "Windows-Design".

Bezüglich customization habe ich gehört, dass QT meine Bedürfnisse 
erfüllen würde. Nach meiner Recherche macht es jedoch kein Sinn ein 
Linux auf ein STM32F4 zu portieren.
Fals es wirklich keine andere Möglichkeit gibt, bin ich auch bereit eine 
andere CPU zu verwenden, dazu nehme ich gerne Vorschläge entgegen.

Kurz zusammengefasst meine Anforderungen:
-Anpassbares Aussehen
-Touch Unterstützung mit basic Gesten wie scrolling
-Fals möglich lauffähig auf STM32F4


Besten Dank für eure Hilfe.

Noch einen schönen Abend.
Gruss Simon

: Bearbeitet durch User
von Guest (Gast)


Lesenswert?

Wieso sollte emWin nicht an deine Bedürfnisse anpassbar sein?

Ok, die Demos sehen teilweise nicht so hübsch aus.
Aber du würdest dich wundern bei welchen allen Geräten bei dir Zuhause 
emWin das LCD ansteuerst und du nichts davon siehst ;-).

von Simon R. (sr_engineering)


Lesenswert?

Hi

Das ist ja mal toll, dass ich doch noch eine Antwort auf meine Frage 
bekomme ;-)

Ich kenne mich eben mit solchen GUIs noch nicht besonders gut aus, 
deshalb bin ich mir etwas unsicher.

Kannst du mir ein konkretes Bsp. nennen welches gut aussieht und emWin 
verwendet?

Besten Dank und Freundliche Grüsse
Simon

von Guest (Gast)


Lesenswert?

Ja, könnte ich...darf ich aber leider nicht, sorry.
Aber du kannst davon ausgehen das alles was du z.B. auf einem Android 
Handy oder iPhone siehst auch mit emWin möglich ist.
Schau dir doch mal bei Segger ein paar Samples an, 
http://segger.com/emwin-samples.html

Oder schau mal hier: http://segger.com/customer-applications.html

Bzw. wenn man sie diese Liste anschaut, wirds auch klar ;-) :
http://segger.com/customer-list.html

von Guest (Gast)


Lesenswert?

> Bzw. wenn man sie diese Liste anschaut,
Sollte natürlich heißen, "Bzw. wenn man sich..."

von Simon H. (simi)


Lesenswert?


von Simon R. (sr_engineering)


Lesenswert?

Guest schrieb:
> Ja, könnte ich...darf ich aber leider nicht, sorry.
> Aber du kannst davon ausgehen das alles was du z.B. auf einem Android
> Handy oder iPhone siehst auch mit emWin möglich ist.
> Schau dir doch mal bei Segger ein paar Samples an,
> http://segger.com/emwin-samples.html
>
> Oder schau mal hier: http://segger.com/customer-applications.html
>
> Bzw. wenn man sie diese Liste anschaut, wirds auch klar ;-) :
> http://segger.com/customer-list.html


Danke für deine Antwort.
Die Customer Applications list ist doch noch ganz aufschlussreich ;-)

Ich habe allerdings noch ein wenig Bedenken, ob das mit der Lizenz die 
man von ST bekommt auch möglich ist. Der Sourcecode ist ja im Gegensatz 
zu den anderen Lizenzmodellen nicht verfügbar, wenn ich das richtig 
sehe. Wäre das nicht eine Bedingung um das GUI entsprechend anzupassen?

Mir geht es hauptsächlich darum, dass ich mich nicht komplett in das 
Segger GUI eindenke, obwohl bereits im vorhinein klar wäre, dass das GUI 
für meine Anwendung nicht geeignet ist.

Vielen Dank für deine Hilfe.

Gruss
Simon

von gnuopfer (Gast)


Lesenswert?

Simon R. schrieb:
>Der Sourcecode ist ja im Gegensatz zu den anderen Lizenzmodellen nicht 
>verfügbar, wenn ich das richtig sehe.

Segger verkauft dir alles, kostet halt seinen Preis. Wenn es ein 
kommerzielles Projekt ist, dann sind die paar 1000 Euro für den Source 
egal, das hat man als Zeitersparnis beim Debuggen schnell wieder 
herinnen (jaja, auch in der emWin stecken Bugs !). Zum Anpassen der 
GUI-Logik ist der der Sorcecode aber definitiv nicht notwendig.

> Mir geht es hauptsächlich darum, dass ich mich nicht komplett in das
> Segger GUI eindenke, obwohl bereits im vorhinein klar wäre, dass das GUI
> für meine Anwendung nicht geeignet ist.

Eine embedded GUI die weiter anpassbar ist als emWin wirst du meiner 
Meinung nach nicht finden, schon gar nicht mit verfügbaren (und 
verständlichem !) Source.
Wenn du echt Angst hast, das du mit emWin nicht weit genug kommts, dann 
ist es besser du fängst gleich mit einer vollen Eigenentwicklung an.


mfg

von Simon R. (sr_engineering)


Lesenswert?

gnuopfer schrieb:
> Segger verkauft dir alles, kostet halt seinen Preis. Wenn es ein
> kommerzielles Projekt ist, dann sind die paar 1000 Euro für den Source
> egal, das hat man als Zeitersparnis beim Debuggen schnell wieder
> herinnen (jaja, auch in der emWin stecken Bugs !). Zum Anpassen der
> GUI-Logik ist der der Sorcecode aber definitiv nicht notwendig.


Das Projekt ist eben zur Zeit noch nicht kommerziell, hat aber 
Ambitionen, dass es evt. mal in diese Richtung gehen soll. Momentan ist 
es also nicht möglich einen so hohen betrag dafür auszugeben.

Ich kann aber sicher auch mal mit der Lizenz von ST beginnend und evt. 
später noch ein Upgrade erwerben.

Besten Dank.
Simon

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Ich habe den Thread auch gerade erst gesehen ;-)

Wir machen zur Zeit genau das, was Du auch vor hast: STM32F4 mit 
(vermutlich) SSD1963 und 7"-Touch.

Da uns sowieso ein passendes RTOS gefehlt hat, haben wir uns für NuttX 
entschieden. Das ist weitgehend Posix-konform und die üblichen 
Schnittstellen und Protokolle gibt es direkt mit dazu.

Dort ist auch eine GUI inkl. Windowmanager, Touch etc. enthalten - und 
das Ganze bei einer BSD-Lizenz, also auch kommerziell vernünftig 
verwertbar.

Durch die sehr weit gefächerte Unterstützung an Mikrocontrollerfamilien 
ist da eigentlich für jede Entwicklung etwas dabei.

Gregory Nutt ist übrigens sehr hilfsbereit. Ist auf jeden Fall ein 
tolles Projekt.

von Simon R. (sr_engineering)


Lesenswert?

Chris D. schrieb:
> Ich habe den Thread auch gerade erst gesehen ;-)
>
> Wir machen zur Zeit genau das, was Du auch vor hast: STM32F4 mit
> (vermutlich) SSD1963 und 7"-Touch.
>
> Da uns sowieso ein passendes RTOS gefehlt hat, haben wir uns für NuttX
> entschieden. Das ist weitgehend Posix-konform und die üblichen
> Schnittstellen und Protokolle gibt es direkt mit dazu.
>
> Dort ist auch eine GUI inkl. Windowmanager, Touch etc. enthalten - und
> das Ganze bei einer BSD-Lizenz, also auch kommerziell vernünftig
> verwertbar.
>
> Durch die sehr weit gefächerte Unterstützung an Mikrocontrollerfamilien
> ist da eigentlich für jede Entwicklung etwas dabei.
>
> Gregory Nutt ist übrigens sehr hilfsbereit. Ist auf jeden Fall ein
> tolles Projekt.

Schön, dass das Thema nun langsam fahrt aufnimmt.

Damit ihr euch noch einwenig ein besseres Bild des Projektes machen 
könnt, hier ein kleiner Beschrieb:
Es handelt sich um ein Musikgerät für den Studio einsatz. Mit dem GUI 
sollen Presets und andere Parameter konfiguriert werden können. Es ist 
mir dabei wichtig, dass das GUI möglichst schlicht ist und sich optimal 
in das Gerätedesigne einfügt. Zudem wäre es schön, würden einige 
Touch-Gesten erkennt werden.

Nuttx habe ich mir auch schon angesehen. Habt ihr Seggers emWin auch in 
Betracht gezogen? Und wenn ja, was hat den Ausschlag für NuttX gegeben?

Was meint ihr zum neuen STM32F4 mit integriertem Displaycontroller? 
Dieser soll Vorteile bzg performance und alpha blending, bieten wenn er 
mit emWin verwendet wird. Hat damit schon jemand Erfahrungen gemacht?

Gruss
Simon

von Guest (Gast)


Lesenswert?

Hallo Simon,

wieso meldest du dich nicht mal einfach direkt bei Segger? Mit denen 
kannst du sogar in Deutsch quatschen. Wenn es nicht kommerziell ist, ist 
das natürlich manchmal nicht so einfach aber ich habe eigentlich die 
Erfahrung gemacht, das mir immer sehr kompetend und freundlich 
weitergeholfen haben.
Notfalls über deren Forum, http://forum.segger.com.

Was bei emWin sehr schön ist, ist das du auch erstmal in der Simulation 
arbeiten kannst.
Bei deiner Applikation musste ich sofort an dieses Sample denken, 
http://segger.com/admin/uploads/imageBox/emWin_Sample_WIDGET_Amplifier.png.
http://segger.com/emwin-samples.html

Die Sourcen brauchst definitv erstmal nicht, kannst so alles anpassen. 
Und wenn du sie später haben willst bietet Segger ein Upgrade dafür an, 
http://segger.com/emwin-source-code-upgrade.html?p=212.

von Guest (Gast)


Lesenswert?

Simon R. schrieb:
> Was meint ihr zum neuen STM32F4 mit integriertem Displaycontroller?
> Dieser soll Vorteile bzg performance und alpha blending, bieten wenn er
> mit emWin verwendet wird. Hat damit schon jemand Erfahrungen gemacht?

Meines Wissens macht das emWin in dem Fall alles in Software.
Das hängt immer ein bisschen vom LCD Controller usw. ab ob es besser ist 
das komplett in Software zu machen oder Hardware Features auszunutzen.

Klingt komisch aber leider sprechen die Chiphersteller nicht immer 
vorher mit den Softwareentwicklern wie Segger was an Features sinnvoll 
ist (auch wenn es sowas natürlich auch gibt und ich bei solchen 
Gesprächen schon dabei war).

von Nine (Gast)


Lesenswert?


von Simon R. (sr_engineering)


Lesenswert?

Guest schrieb:
> Was bei emWin sehr schön ist, ist das du auch erstmal in der Simulation
> arbeiten kannst.
> Bei deiner Applikation musste ich sofort an dieses Sample denken,
> http://segger.com/admin/uploads/imageBox/emWin_Sample_WIDGET_Amplifier.png.
> http://segger.com/emwin-samples.html

Diese Beispiele kenne ich bereits und genau die verunsichern mich auch. 
Das GUI soll an sich nicht sehr aufwendig sein. Es sollen allerdings 
transparente Elemente verwendet werden und das ganze soll auch noch 
ordentlich animiert sein.
Ist zb. ein screen wechsel mit einem Fingerwischen wie beim iPhone 
möglich.

Ich kann die Möglichkeiten momentan noch sehr schlecht einsetzten...

Gruss
Simon

von Nine (Gast)


Lesenswert?

Simon R. schrieb:
> Diese Beispiele kenne ich bereits und genau die verunsichern mich auch.
> Das GUI soll an sich nicht sehr aufwendig sein. Es sollen allerdings
> transparente Elemente verwendet werden und das ganze soll auch noch
> ordentlich animiert sein.
> Ist zb. ein screen wechsel mit einem Fingerwischen wie beim iPhone
> möglich.
>
> Ich kann die Möglichkeiten momentan noch sehr schlecht einsetzten...

vergiss das! Zu Testzwecken kannst Du Dir gerne mal eine Analoge Uhr 
zeichnen und dann schauen wie schnell das Display aktualisiert wird :-D
Meine Erfahrung zeigt: Für das Update des Sekundenzeigers daurte es 
deutlich länger als eine Sekunde auf einer MCU.
(320x240pixels)

von Arc N. (arc)


Lesenswert?

Chris D. schrieb:
> Ich habe den Thread auch gerade erst gesehen ;-)
>
> Wir machen zur Zeit genau das, was Du auch vor hast: STM32F4 mit
> (vermutlich) SSD1963 und 7"-Touch.
>
> Da uns sowieso ein passendes RTOS gefehlt hat, haben wir uns für NuttX
> entschieden. Das ist weitgehend Posix-konform und die üblichen
> Schnittstellen und Protokolle gibt es direkt mit dazu.

Klingt nicht schlecht... (bis auf den Klammerstil...)
Gibt es irgendwo Angaben zum Speicherbedarf (min/max, RAM, Flash), 
konnte auf der Projektseite auf die schnelle nichts dazu finden?

von Arc N. (arc)


Lesenswert?

Nine schrieb:
> vergiss das! Zu Testzwecken kannst Du Dir gerne mal eine Analoge Uhr
> zeichnen und dann schauen wie schnell das Display aktualisiert wird :-D
> Meine Erfahrung zeigt: Für das Update des Sekundenzeigers daurte es
> deutlich länger als eine Sekunde auf einer MCU.
> (320x240pixels)

Dann mal ein paar gute alte Atari ST Spiele ansehen. Wer das Teil nicht 
kennt: der "Grafikcontroller" verdient noch nicht mal so genannt zu 
werden, dass war nur ein einfacher Adresszähler, sonst nichts d.h. alles 
(fast, es gab einige Tricks, die aber meist nur in Demos/Intros 
angewandt wurden) wurde in der Software gemacht. Der 68000 schaffte grob 
1 MIPS, trotzdem liefen gute Spiele mit 50 Hz absolut ruckelfrei 
(320x200x4BPP).
Ein STM32F4 @ 168 Mhz hat gut die 200-fache Rechenleistung und dann soll 
es bei 320x240x16BPP ruckeln?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Arc Net schrieb:
> Klingt nicht schlecht... (bis auf den Klammerstil...)
> Gibt es irgendwo Angaben zum Speicherbedarf (min/max, RAM, Flash),
> konnte auf der Projektseite auf die schnelle nichts dazu finden?

Aus der Doku:
"Using a variety of technologies, NuttX can scale from the very tiny to 
the moderate-size system. I have executed NuttX with some simple 
applications in as little as 32K total memory (code and data). On the 
other hand, typical, richly featured NuttX builds require more like 64K 
(and if all of the features are used, this can push 100K)."

Das deckt sich mit unseren Größen hier: für das aktuelle Projekt 
(STM32F4) liegen wir bei knapp 70K, wobei da aber auch schon einiges 
drin ist (u.a. TCP/IP, UDP, diverse Dateisysteme, Webserver, USB-Host, 
Windowmanager, Grafikbibliothek usw.)

Wie gesagt: das läuft auch auf kleineren AVRs vernünftig.

von Guest (Gast)


Lesenswert?

Nine schrieb:
> vergiss das! Zu Testzwecken kannst Du Dir gerne mal eine Analoge Uhr
> zeichnen und dann schauen wie schnell das Display aktualisiert wird :-D
> Meine Erfahrung zeigt: Für das Update des Sekundenzeigers daurte es
> deutlich länger als eine Sekunde auf einer MCU.
> (320x240pixels)

Was für ein Blödsinn...
Auf welche CPU und CPU Frequenz, welchen Displaycontroller, welcher 
Anbindung des Displaycontrollers an die CPU und welche Farbtiefe 
beziehst du dich?

Wer an der Performance zweifelt kann sich doch einfach eine 
entsprechende emWin Demo für seine Hardware von 
http://segger.com/evalboards.html herunter laden und es testen.
Meine Erfahrung zeigt: Es kommt natürlich darauf an, was man machen 
will, aber emWin läuft erstmal auf jeder CPU.

von Arc N. (arc)


Lesenswert?

Chris D. schrieb:
> Das deckt sich mit unseren Größen hier: für das aktuelle Projekt
> (STM32F4) liegen wir bei knapp 70K, wobei da aber auch schon einiges
> drin ist (u.a. TCP/IP, UDP, diverse Dateisysteme, Webserver, USB-Host,
> Windowmanager, Grafikbibliothek usw.)
>
> Wie gesagt: das läuft auch auf kleineren AVRs vernünftig.

Danke. Werde ich mir dann mal für ein aktuelles Projekt ansehen.

von Matthias (Gast)


Lesenswert?

Guest schrieb:
> Es kommt natürlich darauf an, was man machen
> will, aber emWin läuft erstmal auf jeder CPU.

ja laufen schon, als Standbild. Aber eine Performance wie der TO sich 
wünscht erreichst du auf einem STM32 nicht!

von Simon R. (sr_engineering)


Lesenswert?

Wie ich sehe, gehen da die Meinungen wohl ein wenig auseinander.

Was wäre den eine Alternative, bei welcher ich mir keine sorgen um die 
Performance machen muss?
Das würde ja wohl in Richtung Linux mit zb Qt gehen. Gibt es da günstige 
Embedded Plattformen welche die nötige Leistung zu Verfügung stellt?

von W.S. (Gast)


Lesenswert?

Simon R. schrieb:
> Fals es wirklich keine andere Möglichkeit gibt, bin ich auch bereit eine
> andere CPU zu verwenden, dazu nehme ich gerne Vorschläge entgegen.

Ach wie gnädig, Euer Hochwürden.

Junge, entweder schreibst du dir deine grafische Klassenbibliothek 
selber oder du probierst eben das, was es so gibt aus - auch wieder 
selber.

Fange erstmal klein an und entwickle dir deine Hardware, schreib dir ein 
GDI dazu und mache dir deine eigenen Fonts, da kriegst du nen Begriff 
davon, was es heißt, Entwickler zu sein.

W.S.

von Paul (Gast)


Lesenswert?

Simon R. schrieb:
> Das würde ja wohl in Richtung Linux mit zb Qt gehen. Gibt es da günstige
> Embedded Plattformen welche die nötige Leistung zu Verfügung stellt?

wurden doch schon beispiele gnannt, für 79USD bekommst du das ATSAMA5 
xplain kit, dazu ein Display anschließen fertig.
Linux/QT/Android pflegt Atmel für dich
www.at91.com
wenn du swipes unterstützen willst wie sie beim ipad gibt, solltest du 
ein capacitives touchscreen nehmen, da ist die latenz deutlich geringer

von Martin K. (martinko)


Lesenswert?

Matthias schrieb:
> Guest schrieb:
>> Es kommt natürlich darauf an, was man machen
>> will, aber emWin läuft erstmal auf jeder CPU.
>
> ja laufen schon, als Standbild. Aber eine Performance wie der TO sich
> wünscht erreichst du auf einem STM32 nicht!

Je nach Anbindung des LCDs aber ganz lässig.
Ich habe recht viele Tests gemacht, mit verschiedenen Grafik 
Bibliotheken und verschiedenen Displays unterschiedlich angebunden. Ein 
STM205 zum Beispiel kann mit einem über 8 Bit angebundenen LCD schon 
vollkommen ruckfreie "Wisch" Aktionen zeichnen wie auch die Segger 
Demosoftware zeigt. Auch Alpha Effekte sind kein Problem.

Gruß Martin

von Guest (Gast)


Lesenswert?

Matthias schrieb:
> ja laufen schon, als Standbild. Aber eine Performance wie der TO sich
> wünscht erreichst du auf einem STM32 nicht!

Und leider wieder Blödsin. Ohne genaue die Rahmenbedingungen, die ich 
oben beschrieben habe, zu definieren, kann man dazu gar keine Aussage 
treffen.

von Peter (Gast)


Lesenswert?

Hallo,

Hast du dir schonmal uGFX angesehen?   http://ugfx.org

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.