EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

GUI interface for embedded gadgets

Started by pozz October 13, 2015
Most of my electronics gadgets must be configured by the user. There 
many UI (User Interface) avaiable and each has pros and cons:
- voice assisted guide with a keypad
- display and keypad
- touch display
- serial channel (RS232/RS485/USB/Ethernet) connected to a PC
- ...

Many time I choose to provide a simple RS232/USB port on my gadget, to 
keep its cost low. When the user wants to configure it, he needs to use 
his PC and make a simple connection by a low-cost cable.

The big problem in this scenario is to develop the GUI on the PC. Of 
course, there are infinite solutions with pros and cons.

Here I'd like to discuss an alternative solution, inspired to web 
server. The idea is simple: the GUI resides in the gadget as with web 
servers. The computer retrieves the GUI and shows it to the user. Maybe 
without installing a single piece of software on the computer.

The natural solution is to develop a real web server in the gadget. 
Nowadays, every PC has a Web browser installed.
But this solution is a little complex and more expensive than a trivial 
RS232 port: I need to use a MCU that supports a full TCP/IP stack, I 
need to have an Ethernet port (connector with transformers, MAC chip, 
and so on).

Another bad thing with Ethernet is that it isn't plug&play. The user 
should know the IP address of the gadgets, maybe he should change the IP 
address of the computer and so on. And what happens if the user forgets 
the IP address of the gadget? You have to provide at least a push-button 
switch to reset the IP address to default.
(A solution to this is to develop a full DHCP server on the gadget, 
considering that most of computers are configured with dynamic IP address).

Do you know other technical solutions to communicate with an electronic 
equipment with a PC without installing any custom software on it and 
without provide a full Ethernet port?

On 13-Oct-15 4:41 PM, pozz wrote:
> Most of my electronics gadgets must be configured by the user. There > many UI (User Interface) avaiable and each has pros and cons: > - voice assisted guide with a keypad > - display and keypad > - touch display > - serial channel (RS232/RS485/USB/Ethernet) connected to a PC > - ... > > Many time I choose to provide a simple RS232/USB port on my gadget, to > keep its cost low. When the user wants to configure it, he needs to use > his PC and make a simple connection by a low-cost cable. > > The big problem in this scenario is to develop the GUI on the PC. Of > course, there are infinite solutions with pros and cons. > > Here I'd like to discuss an alternative solution, inspired to web > server. The idea is simple: the GUI resides in the gadget as with web > servers. The computer retrieves the GUI and shows it to the user. Maybe > without installing a single piece of software on the computer. > > The natural solution is to develop a real web server in the gadget. > Nowadays, every PC has a Web browser installed. > But this solution is a little complex and more expensive than a trivial > RS232 port: I need to use a MCU that supports a full TCP/IP stack, I > need to have an Ethernet port (connector with transformers, MAC chip, > and so on). > > Another bad thing with Ethernet is that it isn't plug&play. The user > should know the IP address of the gadgets, maybe he should change the IP > address of the computer and so on. And what happens if the user forgets > the IP address of the gadget? You have to provide at least a push-button > switch to reset the IP address to default. > (A solution to this is to develop a full DHCP server on the gadget, > considering that most of computers are configured with dynamic IP address). > > Do you know other technical solutions to communicate with an electronic > equipment with a PC without installing any custom software on it and > without provide a full Ethernet port? >
Dumb question - could a simple browser interface be provided by a SLIP serial interface? Is SLIP still supported?
On 13.10.15 14:32, Oltimer wrote:
> On 13-Oct-15 4:41 PM, pozz wrote: >> Most of my electronics gadgets must be configured by the user. There >> many UI (User Interface) avaiable and each has pros and cons: >> - voice assisted guide with a keypad >> - display and keypad >> - touch display >> - serial channel (RS232/RS485/USB/Ethernet) connected to a PC >> - ... >> >> Many time I choose to provide a simple RS232/USB port on my gadget, to >> keep its cost low. When the user wants to configure it, he needs to use >> his PC and make a simple connection by a low-cost cable. >> >> The big problem in this scenario is to develop the GUI on the PC. Of >> course, there are infinite solutions with pros and cons. >> >> Here I'd like to discuss an alternative solution, inspired to web >> server. The idea is simple: the GUI resides in the gadget as with web >> servers. The computer retrieves the GUI and shows it to the user. Maybe >> without installing a single piece of software on the computer. >> >> The natural solution is to develop a real web server in the gadget. >> Nowadays, every PC has a Web browser installed. >> But this solution is a little complex and more expensive than a trivial >> RS232 port: I need to use a MCU that supports a full TCP/IP stack, I >> need to have an Ethernet port (connector with transformers, MAC chip, >> and so on). >> >> Another bad thing with Ethernet is that it isn't plug&play. The user >> should know the IP address of the gadgets, maybe he should change the IP >> address of the computer and so on. And what happens if the user forgets >> the IP address of the gadget? You have to provide at least a push-button >> switch to reset the IP address to default. >> (A solution to this is to develop a full DHCP server on the gadget, >> considering that most of computers are configured with dynamic IP >> address). >> >> Do you know other technical solutions to communicate with an electronic >> equipment with a PC without installing any custom software on it and >> without provide a full Ethernet port? >> > > > Dumb question - could a simple browser interface be provided by a SLIP > serial interface? Is SLIP still supported?
Yes - it could, though SLIP is being phased out. The fly in the ointment is TCP (or enough to fake it). Been there - done that ... -- -TV
Il 13/10/2015 10:41, pozz ha scritto:
 > [...]
> Do you know other technical solutions to communicate with an electronic > equipment with a PC without installing any custom software on it and > without provide a full Ethernet port?
Ok, it seems my idea isn't good or never developed. Anothler possibility to reduce the complexity of developing a new application for each eectronic device and for each platform (Windows, Linux, Mac, Android, ...) could be an open protocol that describes the GUI that should appear on the control ecomputr (Windows, ...). I'm thinking of a simple HTML that describes the content. The software on PC that receives this protocol should generate the graphical interface. Similar to what happens with HTTP/HTML: - PC asks for index.htm - device sends the home page describing labels, images and so on - PC queries for other resources that are needed to display This protocol that mimics HTTP can be implemented over different channels (RS232/RS485/USB... even Ethernet). The big advtage is to develop a *single* application for the computer that can be used for all the devices. And the GUI resides *in* the device and not in the computer. So, new functionalities will be added in the device (with a new firmware release), without affecting software on PC.
pozz <pozzugno@gmail.com> wrote:
> Most of my electronics gadgets must be configured by the user. There > many UI (User Interface) avaiable and each has pros and cons: > - voice assisted guide with a keypad > - display and keypad > - touch display > - serial channel (RS232/RS485/USB/Ethernet) connected to a PC > - ... > > Many time I choose to provide a simple RS232/USB port on my gadget, to > keep its cost low. When the user wants to configure it, he needs to use > his PC and make a simple connection by a low-cost cable. > > The big problem in this scenario is to develop the GUI on the PC. Of > course, there are infinite solutions with pros and cons. > > Here I'd like to discuss an alternative solution, inspired to web > server. The idea is simple: the GUI resides in the gadget as with web > servers. The computer retrieves the GUI and shows it to the user. Maybe > without installing a single piece of software on the computer.
<snip>
> Do you know other technical solutions to communicate with an electronic > equipment with a PC without installing any custom software on it and > without provide a full Ethernet port?
Make your gadget into USB mass storage device. The device will export text files with current settings. The user can edit them with plain text editior and store new values. P.S. There is also WiFi, but you probably treat it the same as Ethernet. -- Waldek Hebisch
Il 14/10/2015 00:06, Waldek Hebisch ha scritto:

> Make your gadget into USB mass storage device. The device will > export text files with current settings. The user can edit them > with plain text editior and store new values.
This can't be named a *graphical* user interface...
Il 13/10/2015 23:12, pozz ha scritto:
> Il 13/10/2015 10:41, pozz ha scritto: > > [...] >> Do you know other technical solutions to communicate with an electronic >> equipment with a PC without installing any custom software on it and >> without provide a full Ethernet port? > > Ok, it seems my idea isn't good or never developed. > > Anothler possibility to reduce the complexity of developing a new > application for each eectronic device and for each platform (Windows, > Linux, Mac, Android, ...) could be an open protocol that describes the > GUI that should appear on the control ecomputr (Windows, ...). I'm > thinking of a simple HTML that describes the content. > > The software on PC that receives this protocol should generate the > graphical interface. > > Similar to what happens with HTTP/HTML: > - PC asks for index.htm > - device sends the home page describing labels, images and so on > - PC queries for other resources that are needed to display > This protocol that mimics HTTP can be implemented over different > channels (RS232/RS485/USB... even Ethernet). > > The big advtage is to develop a *single* application for the computer > that can be used for all the devices. And the GUI resides *in* the > device and not in the computer. So, new functionalities will be added in > the device (with a new firmware release), without affecting software on PC. >
Regarding this I found the world of "user interface description languages". There are many. Now I'm studying XUL that is a language defined inside Mozilla projects. There is a cross-platform XULRunner application (https://developer.mozilla.org/en-US/docs/Mozilla/Projects/XULRunner) available as binaries for Windows platforms. You write some files that describe the user interface (one .ini file, some .xul, some .js and so on) and launch it by XULRunner. I think it isn't difficult to create a program that downloads all the XUL application files from the device (RS232...) and launch XULRunner. In this way you are writing the GUI similar to writing a web page. The big issue I see is the wayback. How to switch on the LED on the gadget when the user presses a button on the GUI?
On 10/13/2015 6:13 PM, pozz wrote:
> Il 14/10/2015 00:06, Waldek Hebisch ha scritto: > >> Make your gadget into USB mass storage device. The device will >> export text files with current settings. The user can edit them >> with plain text editior and store new values. > > This can't be named a *graphical* user interface...
What's the difference? You open the file in a GUI editor and edit lines that look much like a GUI form screen. Label1 Value Label2 Value Lable3 Value How fancy can a GUI be for this sort of thing? Will you have error checking or something built in? If TCP is a sticking point I don't see how you can hope to have the protocol you are talking about in the other post without inventing something of your own making. I know that UDP is a lot simpler than TCP, but I don't know that existing browsers support it. Can HTTP be used on a link that isn't TCP? I'm not all that familiar with the basics of networking. I do know that serial ports are very simple to implement and USB is not a lot of work these days. A browser is able to read a file, so maybe your device could emulate a flash drive and the browser could read an HTML file from it? In another group someone was talking about serving a file that would create a graph in the browser. It would periodically refresh to update the graph. I can't see why your device couldn't serve up HTML files as a flash drive and let the user navigate them just like being on the web. -- Rick
Il 14/10/2015 02:40, rickman ha scritto:
> On 10/13/2015 6:13 PM, pozz wrote: >> Il 14/10/2015 00:06, Waldek Hebisch ha scritto: >> >>> Make your gadget into USB mass storage device. The device will >>> export text files with current settings. The user can edit them >>> with plain text editior and store new values. >> >> This can't be named a *graphical* user interface... > > What's the difference? You open the file in a GUI editor and edit lines > that look much like a GUI form screen. > > Label1 Value > Label2 Value > Lable3 Value > > How fancy can a GUI be for this sort of thing?
Images? Buttons? ...
> Will you have error checking or something built in?
The user could write everything in the file and there isn't a native error checking in this approach.
> If TCP is a sticking point I don't see how you can hope to have the > protocol you are talking about in the other post without inventing > something of your own making. I know that UDP is a lot simpler than > TCP, but I don't know that existing browsers support it. Can HTTP be > used on a link that isn't TCP? I'm not all that familiar with the > basics of networking. I do know that serial ports are very simple to > implement and USB is not a lot of work these days.
> A browser is able to > read a file, so maybe your device could emulate a flash drive and the > browser could read an HTML file from it?
Yes, it could be a good suggestion if you have a USB and your device is seen as a removable memory disk. One issue: tt isn't a true HTTP, so how to send messages/commands to the device in this scenario?
> In another group someone was talking about serving a file that would > create a graph in the browser. It would periodically refresh to update > the graph. I can't see why your device couldn't serve up HTML files as > a flash drive and let the user navigate them just like being on the web.
Yes, it could be fine with USB. It isn't a solution with RS232-only devices.
Op Tue, 13 Oct 2015 10:41:46 +0200 schreef pozz <pozzugno@gmail.com>:
> Most of my electronics gadgets must be configured by the user. There > many UI (User Interface) avaiable and each has pros and cons: > - voice assisted guide with a keypad > - display and keypad > - touch display > - serial channel (RS232/RS485/USB/Ethernet) connected to a PC > - ... > > Many time I choose to provide a simple RS232/USB port on my gadget, to > keep its cost low. When the user wants to configure it, he needs to use > his PC and make a simple connection by a low-cost cable. > > The big problem in this scenario is to develop the GUI on the PC. Of > course, there are infinite solutions with pros and cons. > > Here I'd like to discuss an alternative solution, inspired to web > server. The idea is simple: the GUI resides in the gadget as with web > servers. The computer retrieves the GUI and shows it to the user. Maybe > without installing a single piece of software on the computer. > > The natural solution is to develop a real web server in the gadget. > Nowadays, every PC has a Web browser installed. > But this solution is a little complex and more expensive than a trivial > RS232 port: I need to use a MCU that supports a full TCP/IP stack, I > need to have an Ethernet port (connector with transformers, MAC chip, > and so on). > > Another bad thing with Ethernet is that it isn't plug&play. The user > should know the IP address of the gadgets, maybe he should change the IP > address of the computer and so on. And what happens if the user forgets > the IP address of the gadget? You have to provide at least a push-button > switch to reset the IP address to default. > (A solution to this is to develop a full DHCP server on the gadget, > considering that most of computers are configured with dynamic IP > address). > > Do you know other technical solutions to communicate with an electronic > equipment with a PC without installing any custom software on it and > without provide a full Ethernet port?
USB RNDIS device. Yes, it does require a TCP/IP stack, but no Ethernet-related hardware. Also it's plug-and-play, as you can preconfigure the IP-addresses of both the host and the target, so no DHCP server needed. Downside: for OSX, a 3rd party driver is needed. -- (Remove the obvious prefix to reply privately.) Gemaakt met Opera's e-mailprogramma: http://www.opera.com/mail/

The 2024 Embedded Online Conference