Author Topic: Building UIs on Embedded  (Read 22862 times)

0 Members and 1 Guest are viewing this topic.

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: Building UIs on Embedded
« Reply #25 on: May 12, 2016, 10:49:16 pm »
Emwin is probably the best known and widely used too.
Well, they certainly don't give that away!  Not too many hobbyists are going to spend 9k Euros for a GUI library.  Nevertheless, if I had a commercial project, I would consider it.
Read more carefully: some microcontroller vendors already paid the license for you so it helps to look whether you can use a commercial library royalty free before looking at writing your own. AFAIK NXP offers several commercial libraries for use with their microcontrollers.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4196
  • Country: us
Re: Building UIs on Embedded
« Reply #26 on: May 13, 2016, 01:27:44 am »
The embedded world is sort-of slowly adjusting to the idea that the "display" they might use for a UI (ie a smartphone or tablet) is a much more computationally able device than the "embedded" part of the system...
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4067
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Building UIs on Embedded
« Reply #27 on: May 13, 2016, 05:28:15 am »
That is because the hardware is not the determining price. Software is.

I could take more than 100 hours to build your own solid graphical lib. Which will justify buying a module until you're looking for +10k units to sell.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: Building UIs on Embedded
« Reply #28 on: May 13, 2016, 06:11:30 am »
The embedded world is sort-of slowly adjusting to the idea that the "display" they might use for a UI (ie a smartphone or tablet) is a much more computationally able device than the "embedded" part of the system...
The problem with hopping onto a mobile device bandwagon is that specifications and software change about every year so your device is likely to become obsolete very quickly.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2616
  • Country: 00
    • My random blog.
Re: Building UIs on Embedded
« Reply #29 on: May 13, 2016, 06:16:07 am »
The embedded world is sort-of slowly adjusting to the idea that the "display" they might use for a UI (ie a smartphone or tablet) is a much more computationally able device than the "embedded" part of the system...
The problem with hopping onto a mobile device bandwagon is that specifications and software change about every year so your device is likely to become obsolete very quickly.

wifi and html is not going away any time soon
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: Building UIs on Embedded
« Reply #30 on: May 13, 2016, 06:43:08 am »
The embedded world is sort-of slowly adjusting to the idea that the "display" they might use for a UI (ie a smartphone or tablet) is a much more computationally able device than the "embedded" part of the system...
The problem with hopping onto a mobile device bandwagon is that specifications and software change about every year so your device is likely to become obsolete very quickly.
wifi and html is not going away any time soon
Try and browse websites with the original Netscape or even a browser which was released a couple of years ago and you'll see what I mean.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2572
  • Country: fr
    • kripton2035 schematics repository
Re: Building UIs on Embedded
« Reply #31 on: May 13, 2016, 06:51:12 am »
take a look at Xojo IDE : http://www.xojo.com
you can compile to a Raspberry Pi 2 or more a nice modern desktop application
(and also almost any linux driven arm7 or more architecture)
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2616
  • Country: 00
    • My random blog.
Re: Building UIs on Embedded
« Reply #32 on: May 13, 2016, 08:34:16 am »
The embedded world is sort-of slowly adjusting to the idea that the "display" they might use for a UI (ie a smartphone or tablet) is a much more computationally able device than the "embedded" part of the system...
The problem with hopping onto a mobile device bandwagon is that specifications and software change about every year so your device is likely to become obsolete very quickly.
wifi and html is not going away any time soon
Try and browse websites with the original Netscape or even a browser which was released a couple of years ago and you'll see what I mean.

except we are talking reverse here, try browsing 20 year old website on modern browser - does it work?
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4067
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Building UIs on Embedded
« Reply #33 on: May 13, 2016, 08:49:25 am »
The HTML <5 part does.
The Javascript and other active content (there is a lot) does not.
 

Offline JoseR

  • Newbie
  • Posts: 7
  • Country: es
Re: Building UIs on Embedded
« Reply #34 on: May 13, 2016, 12:00:13 pm »
That's an interesting theme, I would like to know the most common ways to build UIs on the industry.

The best ones I've seen where made with QT in ARM boards, but I think for beginners it would require a very hard work to achieve those results.

There's a Labview version for PI/Beaglebone for non commercial use: https://www.labviewmakerhub.com/doku.php?id=get_labview

 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: Building UIs on Embedded
« Reply #35 on: May 13, 2016, 12:09:42 pm »
BTW I'd advice against using GUI builder software which outputs a file (or code) to position the buttons and other controls at fixed positions. The problem with such a file is that you can't scale to a different display size. Ofcourse some UI frameworks have some support for auto sizing controls but in many cases you want buttons to just move and a graph or grid to grow bigger. I design my user interfaces using MS Visio (a vector drawing program) and then use formulas to do the actual positioning and sizing based on the size of the display area.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: Building UIs on Embedded
« Reply #36 on: May 13, 2016, 12:27:41 pm »
The competition from the soc people (=phone people) migrating into the embedded space creates some interesting dynamics.

The most difficult part of integrating a gui into an embedded project is the GUI, its interaction with an OS. Data acquisition and algorithm are mundane and typically not a challenge for most embedded programmers. So the gui folks in the embedded space are generally better compensated, with limited supply.

for the phone people, the opposite is true: there are plenty of apps programmers who can handle the gui in their sleeps. It is the data acquisition (on the bottom layer) that is a challenge for them trying to migrate into the embedded space.

So a good marriage would be a team consisting of those phone people handling the user level interactions and the embedded people handling the hardware interactions, thus cutting out those high-priced folks who handle the gui today.

I think we will see more and more embedded applications running on some OS in order to minimize software / development costs and speed-up time to market.
================================
https://dannyelectronics.wordpress.com/
 
The following users thanked this post: VEGETA

Offline VEGETA

  • Super Contributor
  • ***
  • Posts: 1916
  • Country: jo
  • I am the cult of personality
    • Thundertronics
Re: Building UIs on Embedded
« Reply #37 on: May 13, 2016, 09:44:16 pm »
The competition from the soc people (=phone people) migrating into the embedded space creates some interesting dynamics.

The most difficult part of integrating a gui into an embedded project is the GUI, its interaction with an OS. Data acquisition and algorithm are mundane and typically not a challenge for most embedded programmers. So the gui folks in the embedded space are generally better compensated, with limited supply.

for the phone people, the opposite is true: there are plenty of apps programmers who can handle the gui in their sleeps. It is the data acquisition (on the bottom layer) that is a challenge for them trying to migrate into the embedded space.

So a good marriage would be a team consisting of those phone people handling the user level interactions and the embedded people handling the hardware interactions, thus cutting out those high-priced folks who handle the gui today.

I think we will see more and more embedded applications running on some OS in order to minimize software / development costs and speed-up time to market.

well, that is good info. For me, the hardship is the selection of the tools. From what I saw, Altia is the best and most attractive solution but it will cost thousands, which is just insane! other good solutions are quite the same.

And my requirement seems hard to do with a typical ARM MCU as someone told me here, he said M4 can not do it, but A9 can. The whole ARM MCU world is more complicated than PIC to begin with so I have many issues regarding picking the right IDE and toolchain (Keil is not free), integrating FreeRTOS (essential to me), and doing a good GUI that offers video output on the screen itself.

The easiest way as the suggestions say is to use respberry pi 3 for gui and internet connectivity while using STM32 mcu with freertos for all other tasks... do you agree?

someone even suggested Win10 IoT which is very new to me! didn't know it is a valid option. By picking Pi3 as GUI cpu, I will be saved from pricey GUI tools but I will stuck again with the tool to use with it.

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: Building UIs on Embedded
« Reply #38 on: May 13, 2016, 11:39:17 pm »
Before I get married into a system, I like to do little experiments.  Since the GUI and graphics are going to be the most difficult, particularly the streaming video to a portion of the GUI, I would do that part first.  Try a PI 3 and see how it goes.  Can you connect the camera?  Will OpenCV display the stream?  Can you embed the output of OpenCV into your GUI.

The answer to all of the above is "YES" but the devil is in the details.

http://opencv.org/

Start with "High-level GUI" just to see the minimal GUI with a video capability:

http://docs.opencv.org/3.1.0/d7/dfc/group__highgui.html#gsc.tab=0

Quote
While OpenCV was designed for use in full-scale applications and can be used within functionally rich UI frameworks (such as Qt*, WinForms*, or Cocoa*) or without any UI at all, sometimes there it is required to try functionality quickly and visualize the results. This is what the HighGUI module has been designed for.

It provides easy interface to:
•Create and manipulate windows that can display images and "remember" their content (no need to handle repaint events from OS).
•Add trackbars to the windows, handle simple mouse events as well as keyboard commands.

Remember, you are counting on Linux to provide a metric dumpster load of code.  Stuff you don't want to write!

Once you get a rudimentary GUI/display running, it will be pretty easy to do the real GUI in something like Qt and you can write it in C, C++, JAVA or Python.  There is a Qt library for each of these (although I have only used the Python variant).  You will also find Python code for dealing with the hardware IO on the headers.  It's in the PI distribution.

Incidentally, OpenCV also runs on MacOS, iOS, Windows and Android.  So, you can migrate your GUI to an Android tablet and use WiFi to connect to the STM32F.  You might want to consider not coupling the systems with SPI if networked connections can be responsive enough.  That assumes, of course, that you can find a TCP/IP stack for the STM32F.  If not, Microchip has a stack for their PIC32 - free!

 

Offline SL4P

  • Super Contributor
  • ***
  • Posts: 2318
  • Country: au
  • There's more value if you figure it out yourself!
Re: Building UIs on Embedded
« Reply #39 on: May 14, 2016, 12:11:36 am »
Usually, if I want a UI that is easy to evolve and maintain,   I run a separate processor and environment that is suited to the specific requirements - and is responsive to the user input.
this saves the main process - letting it handle the realtime events without any concern for the vagaries of the user.
Interprocess Comms can be tightly coupled, or a fast serial topology.
Adding other UI methods and/or remote capabilities then become a lot easier.
Don't ask a question if you aren't willing to listen to the answer.
 

Offline Iamraj

  • Newbie
  • Posts: 1
  • Country: in
Re: Building UIs on Embedded
« Reply #40 on: June 05, 2019, 01:28:41 pm »
Emwin is probably the best known and widely used too.

I would, however, suggest that you take a different approach. The mkt is really bifurcating, with products like emwin on the low end and os-based systems plus SOC on the high end. The SOC approach has considerably lower cost, both in terms of software development and deployment, especially going into the future.

So as SOC prices decline - thanks to proliferation of smart phones - the sco approach may become more and more appealing.
Hi Danny, you mentions "os-based systems plus SOC" in the above post, can you please elaborate on it. Or share some link where I can study further.
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21606
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Building UIs on Embedded
« Reply #41 on: June 05, 2019, 09:38:12 pm »
Regarding low powered embedded bitmaps, I wrote this compressor; it's designed around the ST7735 LCD controller.
https://www.seventransistorlabs.com/compr.html
The code to read this format only takes a few hundred bytes on AVR, and the compression rate is fair (very good for line art).  For example, I used a somewhat blocky background graphic on a project; the raw bitmap is 20.48kB, the PNG is 2.13kB, the RLE is 5.56kB, and the ST7 encode is 2.56kB.

PNG pretty much always beats it, especially for more complicated, high color images, of course; but a stripped-down zlib inflator takes several kB of code and probably needs input and output buffers too, so isn't economical for just a few graphics.  On most ARM platforms, you might as well use PNG, or something related to it (for example, you could strip it down so that graphics are whole chunks, stored in arrays: simplifying, or obviating the need for, PNG headers and structure).

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline mubes

  • Regular Contributor
  • *
  • Posts: 237
  • Country: gb
  • Do Not Boil
Re: Building UIs on Embedded
« Reply #42 on: June 06, 2019, 06:41:59 am »
Not sure why https://github.com/littlevgl/lvgl isn't getting more love here. Frankly, it could do with more graphically impressive demos, but the capabilities are quite impressive. No connection to the project other than as a user.

 
The following users thanked this post: oPossum, thm_w

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: Building UIs on Embedded
« Reply #43 on: June 07, 2019, 01:07:49 pm »
 

Offline sairfan1

  • Frequent Contributor
  • **
  • Posts: 348
  • Country: ca
Re: Building UIs on Embedded
« Reply #44 on: June 07, 2019, 04:44:52 pm »
Though you are asking about graphic library, but you also want a quick solution. I would recommend cheap Chinese HMI you can buy around $15 and super graphics with touch panel.
 

Offline agehall

  • Frequent Contributor
  • **
  • Posts: 381
  • Country: se
Re: Building UIs on Embedded
« Reply #45 on: June 10, 2019, 12:59:54 pm »
Though you are asking about graphic library, but you also want a quick solution. I would recommend cheap Chinese HMI you can buy around $15 and super graphics with touch panel.

This was my first thought when I saw the topic as well - I recently discovered the Nextion HMIs (and I'm sure there are others just like them) and I'm 200% sold on using those for all my embedded UIs for the foreseeable future if I need to have a UI on my projects.
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3781
  • Country: de
Re: Building UIs on Embedded
« Reply #46 on: June 10, 2019, 01:56:50 pm »
Though you are asking about graphic library, but you also want a quick solution. I would recommend cheap Chinese HMI you can buy around $15 and super graphics with touch panel.

Good luck streaming video to one of those, though.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf