Need some design advice

I am starting work on a project that is pretty UI intensive. The plan is to use a 5" and/or 7". UI controlled primarily through a custom keypad with some use of touch screen. (The environment is muddy, dirty, outdoor in the rain, snow, and ice.) UI would probably have as many as 75 unique screens with many real-time variables and settings. There will be some basic hardware interfaces like RS232/485, USB and wired Ethernet. Wireless probably an option. It is a long term project with 300+ units a year.

I am looking for the best solution if that is even possible to determine.
Here are what I see as some options:

  • G400 with Glide
  • Some form of Linux on something like the OSD3358 or Digi i.MX6UL. I can’t seem to figure out the best set of dev tools for embedded linux UI development. (At least that doesn’t cost an arm and a leg.)
  • Windows for IOT on a Tordex or some other industrial level hardware. (I hear slow boot times are an issue even on a quad core Pi.)
  • Windows CE (I think called something else now.) Doesn’t seem to be getting much love from Microsoft these days so I am hesitant to jump into Windows CE. I currently have a product on Win CE 6.

Should I be looking at other options? If so what are they?


EDIT: I should add Ethernet needs to support TLS to talk to various cloud services.

Windows CE is dead. It has been renamed several times, but it still died.

The closest thing to it now is the Windows Phone platform, which is still alive and kicking.

You mean “Windows 10 Mobile”… :wink:

Look into Xamarin Forms from Microsoft.
This allows you to write mobile apps in C# and Xamarin forms and then they get ported to native IOS, Android and Windows 10 Mobile.

Oh… yeah :slight_smile:

and Xamarin is very cool.

I doubt the G400 will have enough memory to support that many screens. I have a program with 20 screens and I am close to the max with that. You could store them on the SD but the risk is that if the SD fails so does your app. Not a choice I would use.

OSD3358 and Linux would be ideal but I have discovered that QT is expensive if you want to use it for closed source commercial projects. I’ve decided to make my source open for this reason. No issues as the design for the boards etc is closed :slight_smile:

I’ve downloaded Xamarin but can’t find any way to run this on a Linux system debugged from a Windows platform.

I loved Windows 10 on the Pi but not sure it is available on any decent platform yet. The Pi is not ideal for industrial use. The boot time is far too long though which is a major issue for the design I am working on.

An Android platform is possible but it is not designed for programs to be running all the time so needs some work on the core OS to support this.

Mono supports a variation of Windows Forms and can be used on Linux and debugged from Visual Studio or Visual Studio Code, locally or from a Windows system. Mono can also drive Gtk via GtkSharp.

I think I did a KB article on this, but I might be wrong. Either way, I can help you get set up with cross-compiling, remote debugging, or local development on Xamarin or Mono.

Looks like I do have a KB on remote Xamarin/Mono from Windows to Linux :


My few cents:

Why do this when the G400 can drive an LCD direct and at lower cost?

I guess the only reason would be to support large numbers of screens?

@ Dave McLaughlin - Large number of screens.

On life support and due to expire at any moment, is how I’d describe it.

@ godefroi - I guess that is true, since they are looking to replace it with actual Windows 10. I suppose this is for the best.

@ Mr. John Smith - I have used similar screens before. Troubleshooting and development seemed to be very tedious because having to use 2 different development environments. 4D systems could be better than what I used a few years ago (Amulet Technologies). Their individual screen cost is too expensive. It does appear that their IC can be purchased by itself. I still am hesitant to introduce yet another development environment. But I will look into it some more.

So it sounds like the development options for Linux would be Xamarin, Mono or QT.

If my memory servers QT is about $6000 for the commercial version. Is there any difference between the open source and commercial version other than licensing?

Xamarin and Mono are Visual Studio based and I think Xamarin comes with the Community version.

Does anyone have enough experience to give the pro/cons between them?

I guess that wasn’t my intention. I certainly am more comfortable with Visual Studio. However, I am not tied to it if there are better options.

From what I can see there is no difference. With the open source option you have to release your code as open source which is something you might not want to do. For me it’s not an issue as the hardware is closed and without the PC software it’s basically useless. $6K is too much for this small project and would put the cost of the system out of reach.

I am still looking at Mono and going to follow Martin’s setup for this and see how I get on but so far I have like the way QT5 works but I do have this RED BLUE swapped issue that doesn’t seem to have been resolved yet.

The pricing has changed quite a bit. They still have free open-source (lgplv3) pricing and have startup pricing at 99/mo or 948/yr if your are a ‘startup’, or 350/mo or 3540/yr if you don’t qualify for startup pricing. The big change here is that you pay a term rather than perpetual fee. I couldn’t find perpetual licensing anymore.

They route you through a strange questionaire, and one of the branches that ends up free is “internal use only” and “i’m ok with lgpl” which ends up getting you the open-source license. Does this mean that you can delay starting to pay until you ship? Almost certainly not their intent.

Considering I used to pay almost $3000/yr for Xamarin (now free); and one might pay a $9500 buy-in and $2000/yr maintenance fee for Altium; and 3840/yr or $9500 perpetual for Keil. Qt sounds downright reasonable in the field of extortionistic software pricing.

EDIT: I should clarify that I love Qt but aside from open source I have never had a project which was a) large enough to cover the fees and b) where there wasn’t a cheaper alternative (modulo maybe some additional dev effort).

Thanks everyone for the suggestions. It is very helpful. Now to get some hardware going. . .