GUI interface for embedded gadgets

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?

Reply to
Loading thread data ...

Dumb question - could a simple browser interface be provided by a SLIP serial interface? Is SLIP still supported?

Reply to

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 ...


Reply to
Tauno Voipio

Il 13/10/2015 10:41, pozz ha scritto: > [...]

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.

Reply to

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
Reply to
Waldek Hebisch

Il 14/10/2015 00:06, Waldek Hebisch ha scritto:

This can't be named a *graphical* user interface...

Reply to

Il 13/10/2015 23:12, pozz ha scritto:

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

formatting link
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?

Reply to

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.


Reply to

Images? Buttons? ...

The user could write everything in the file and there isn't a native error checking in this approach.

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?

Yes, it could be fine with USB. It isn't a solution with RS232-only devices.

Reply to

Op Tue, 13 Oct 2015 10:41:46 +0200 schreef pozz :

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:
Reply to
Boudewijn Dijkstra

Den onsdag den 14. oktober 2015 kl. 00.13.34 UTC+2 skrev pozz:

just put an html file on the device and open that with a browser


Reply to

pozz's log on stardate 14 lis 2015

Why don't you consider using Mono, PureBasic, Xojo or something similar? I doubt you require some advanced functionalities so using these frameworks and their native API should suffice...

"If you lie to the compiler, 
it will get its revenge." 
 Click to see the full signature
Reply to

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.