This is a good question when it comes from people with no experience on embedded devices and a very bad one when you hear it coming from people that work on embedded devices.
“I’m using a PC inside my embedded device, so I can use Windows as I use it on my PC” this is usually a statement made by people who actually design bad embedded devices. And those devices are not bad because they use a PC-based hardware (using a PC may be a good solution for some kind of devices where developing a custom board is too expensive and does not provide any real advantage in terms of cost), not because they use Windows.
It’s because they use a Windows version designed for PCs, and so they behave like a PC and not like an embedded device!
A PC has always a user taking care of it (or calling for help when something goes wrong beyond his recovery capabilities!), an embedded device must run unattended. Users don’t want or even can’t interact with it. It must be able to solve its own issues and, at least, report errors by itself.
Usually airport are a good place to spot some PCs “hidden” inside embedded devices. And those PCs sometimes show their nature giving unnecessary information or asking for help to people that just want to receive some information from them (or that are the target for advertising campaigns running on those devices).
Let’s see some samples.
1. Malpensa Airport (Milano, Italy)
Installing updates is a good idea if your device is connected to a network, maybe doing that overnight is smart, so no-one will see the device restarting. But telling to everyone that your “embedded” PC installed its updates overnight doesn’t look like such a smart idea…
The message is in Italian, but I guess that any Windows 7 user can recognize it. “New updates have been installed”. This message will stay on top of the content (information about the security controls) until someone finds a mouse and a way to connect it to a terminal that is suspended 2.5 meters from the ground.
Sorry for the bad quality of the images but the mix of phone camera and horribly early morning hour impacted my photographic capabilities quite hard
2. Paderborn Airport (Paderborn, Germany)
Here we have a nicely designed information totem that is supposed to show interesting contents or, maybe, just advertising.
Instead is showing a wizard from a set-up application (or something like that, my knowledge of German is close to zero…) that I suspect is not very interesting for most of the people passing in front of it and that can’t interact with the device because no mouse or keyboard is available.
You can also notice that the display is mounted in portrait mode but is configured in landscape. I don’t envy the developer that had to debug his application keeping is head turned 90° to the right to read the output
3. Cadorna railway Station – Milan – Italy
Many thanks to Giorgio and Frangino for this great sample.
Do you recognize those icons? It’s a Windows 98 desktop! Running on a monochrome display with very low resolution.
This picture has been taken a few days ago, not in year 2K!
The good news is that this Windows 9X powered PC is still up and running. At least 15 years after its OS release and 7 years after the end of MS support for Windows 98/ME. But let’s see the bad news…
The application has crashed and the display is no longer showing useful information.
Just letting some people know that Windows 9X is still alive and kicking. 13 years after the release of Windows ME! (but Windows ME “my computer” icon was different, so we are looking at Windows 98 or even at Windows 95 here).
How could this device be restored?
Powering on and off the device isn’t a very good way to restore its operations. Do you remember what could happen to a FAT filesystem after an unexpected power outage? Someone will have to shut it down. It may be possible to do this remotely, but the service was interrupted for some time.
Consider also that this is a display that is used to show train timetables, so information must be updated in real time and I suppose that this device is connected to some form of corporate network. It hope it’s a dedicated network because putting a Windows 9X machine with an OS that is no longer patched and supported on an open corporate network is like hiring a wolf to take care of your sheep!
Embedded devices don’t need to follow technology trends and move to the last OS release a few week after it’s available. Devices must be stable and reliable and any change must be tested carefully. But, on the other side, using a 15yrs old unsupported desktop OS to power a connected embedded device may be a bit too conservative.
4. Pisa Airport – Italy
My friend Marco Dal Pino sent me this image via Twitter, another airport, another useless display. The text is too small to read it, but it seems an error due to a broken or no longer bootable hard drive. In this case the OS can’t do nothing to fix the issue, but hopefully a monitoring system should be in place, detecting that a device is no longer operating.
5. Trash can
This came from a tweet by Kharim Yaghmour and it’s one of the funniest samples I’ve ever seen. The device is still operating, you can put trash inside it… but the system (Linux in this case) has crashed. Maybe emptying the trash will free some disk space and allow it to run? The text is not readable, it seems to be a kernel panic at startup. This may be due to an hardware failure, but showing this on the screen doesn’t help. Maybe showing a company logo during boot may have made it less noticeable.
6. Train – Naples – Italy
Thank to my friend Paolo Patierno (see his blogs here and here) sent me this picture taken on the subway in Naples.
It’s the well known “Unable to connect” error message from Firefox (can’t see what OS, but it doesn’t matter).
Using a web browser to show advertising or other information in this context may be a good idea, you already have good browsers for many operating systems, you can realize good animations and graphics in HTML5+JS, and you can have a browser reloading the information from the server without the need of building an infrastructure to distribute that content.
You can even change the contents on the server on the fly, and all the terminals will be updated immediately.
This solution worked great. On the developer’s desk.
In the field (and more likely if you are running on a train moving underground…) you can lose network connectivity. Even if the serve is on the train. And, again, there is no way to see this device recovering automatically when the connection is restored.
Browsers can be embedded inside applications on many different operating systems, allowing the “host” application to check network connectivity, show an error message when it’s not available, try to use a backup connection etc.
You may even handle this kind of failures inside your HTML/JS code.
Those samples proof that showing this kind of error messages to end-user will make device unusable, lead to a waste of resource and even a waste of money (if someone was expecting to have their advertising shown on those nice big screens…).
And those issues are deadly easy to fix. Use the right version of Windows! With Windows Embedded Standard you can easily remove any notification message, message box and other OS output that is not related to the main task performed by your device. It’s easy to do that or to find someone that can configure the OS for you and avoid this kind of issues that could lead to unsatisfied customers (those that pay for the advertising) or to inconveniences to passengers that will not find the information they expect from those monitors or find it partly covered by error message that they already hate on their PCs.
During the next months I’ll try to document other “supposedly-embedded” devices behaving like PCs just because someone thought that learning how to use the right version of the OS (we are not talking about a completely different OS here!) was not worth the effort.