Hacker News new | ask | show | jobs
by BlahGod420 2167 days ago
Does anyone have more experience with Windows on IoT devices in general? I'm curious about this - it seems like it could be a real game changer in general for IoT. But if it is already available and not actually doing much game changing, I'd be curious to know why.
16 comments

> it seems like it could be a real game changer in general for IoT.

Could you explain why Windows could make things better? As I get more IOT things I have gone more and more basic and had great success. I’m not suggesting that flashing ESP32 chips is the way forward for everyone, but it certainly has its merits.

If the rough edges could be removed (imperfect flash software, the need for multiple guides, understanding pin layouts and my crap wiring) the basic method is great - name the chip, give an SSID and password, then tell it what sensors it has - flash. It’s a genuine 10 minutes before it’s in Home Assistant.

You might want to checkout https://prismos.dev Full disclosure: This is a project I built addressing the exact same problems, its open source and currently more focused on building an easy to approach platform for developers and students new to the hardware scene
Thank you.
I knew someone at my old makerspace who was using it for a final thesis project several years back, when it was just out a year or so.

He was a very capable C# programmer, I think this was the reason for picking it. But over the course of the project he became really bitter and his opinion dropped considerably. Apparently many things that are super easy to do on raspbian were impossible or super hard on Windows IoT. Not regular computing stuff, but integrating with hardware. GPIO, I2C, that kind of stuff.. The kind of stuff that's Bread & Butter for IoT in other words ;)

I can't validate this as I've never really used it myself other than booting it once. But I valued his opinion highly.

Yep, you'd need to write a device driver for all the hardware if Microsoft hasn't done it for you.

I would not use Windows on a Pi, it can be done, but makes no sense to me.

Embedded Windows has been a thing for a long time and has steadily become less and less relevant over the past decade or so, with many users slowly migrating away. It is more expensive and basically unsupported by Microsoft and hardware makers, while adding very little unique features. I've basically only encountered it in "We stop support for Windows" announcements, "Here's how to make migrating away from it a bit easier for your devs used to it" and "We need to migrate away from Windows, can you help?"

You occasionally see Windows on stuff that runs full-size PCs "embedded" into a device, but then typically just normal Windows nowadays.

> Embedded Windows has been a thing for a long time

Mostly in Windows CE palmtops, based on a miniaturized version of the actual Windows 9x interface. Not sure it's ever been a thing in real embedded workloads.

It has unfortunately. It's used in some of Keysight's oscilloscopes. Even the new ones. And it's not even a new version

https://ripitapart.com/2018/10/15/gaining-access-to-the-wind...

Some of the later ones run Linux apparently but I've never seen one. All the Rigol ones are Linux based.

This is absolutely not true. Windows CE ran on things like ATM or cash registers or oscilloscopes or industrial control platforms.
The CNC machines I used to run ran off an embedded version of xp customized by Siemens as part of their Simatic system.

https://support.industry.siemens.com/cs/document/20059684/si...

I believe the newer versions of their machines have upgraded to windows 10 however and are handled a bit differently now.

Well, considering if it's an embedded/utility device with a screen (that isn't a phone) there's a greater than 50% chance it's running some form of windows, I wouldn't consider that statement true at all.

-- edit below

For examples, the displays at restaurants are about 50-50 linux/windows... airport displays are > 50% and same for billboards... Bank ATMs are almost all Windows, which are all over the place.

-- edit 2

I don't think that linux doesn't have a place, and for non-display embedded devices is definitely the leader. I was mainly pointing that windows ce portables were not even the biggest point of windows embedded use, or even that it wasn't widespread.

Enough embedded use that I wouldn't bet on the "mostly" in your statement. And there's been different Embedded lines after WinCE.
Beckhoff still uses them as the basis for their PLC platform[1] and the exist in a lot of other embedded contexts as well.

[1] https://www.beckhoff.com/english.asp?embedded_pc/cx1010.htm

To add to the list of people pointing out that you're mistaken, I'll add that Windows CE was used in Ford's first and second generation Sync vehicle infotainment systems. It was also the basis for one of the two SDKs for the Sega Dreamcast.
I find it interesting that so many people point out that some sort of Windows OS WAS used by vendor A, B, or C. Yes, a lot of enterprises tried Windows in embedded use cases in the past. Presumably companies will keep trying it from time to time in the future too. But the fact of the matter is that, as the usecases nature vendors migrate to Linux. Also, saying that there were multiple parties trying to use Windows does not mean that Windows has significant market share in that domain.
How are other examples not a valid counterpoint to the claim that it was "mostly Windows CE palmtops"? They don't claim that it is still overly popular or not being replaced.
There was a specific Embedded Windows product, it wasn't just a matter of vendors configuring the desktop version.
Yeah, Windows CE was used everywhere as a sort of “web browser” for equipments because it’s lightweight and somewhat stable.

Too bad Microsoft didn’t understand why customers has no business with NT and just let the market go for other choices like Android or Linux+Qt.

My experience in general with windows is that you need GUIs everywhere to configure stuff, whereas linux is text config first. I just deployed 20 pi's at work for a project and remote management on raspbian is fantastic. My BOM for the project is $300 and the previous system's BOM was $3k. Love raspbian.

The other piece is that there are 10 years of raspbian questions and answers on the internet. You have a problem, then someone else has hit it.

You can do absolutely everything from powershell on the command line, on your local machine or any machine in your network, from Windows 10.
Sure. It mostly isn't a first class customer, however. We may never have "The Year of The Linux Desktop" because of this, but command line configuration in Linux is the first class use case.
I don't agree with the comment you responded to but all server tools for Windows are configured via Powershell, and the GUIs just use the PowerShell Apis.

They started migration back in server 2008 or 8r2 to support Headless/Azure.

The GUI is literally a second class citizen in Windows Server these days.

Fantastic. My experience is that when I have an issue on Windows my searches give me a ton of GUI screenshots, but in Linux I get text file edits and terminal commands. However I may be doing it wrong.
Not wrong, but things change. As far as OS philosophy, Microsoft has changed rapidly in a short time.
Well, if it's controllable through a group policy. Otherwise you'll quickly regress to myriads of registry key incantations. Some things take hours or days to figure out how to configure.
You can do everything for the operating system, sure.

But you often can't script X random Windows app via PowerShell, whereas there are very few Linux tools that aren't first class command line citizens.

Will it take more time to setup and configure the Pi's than with the $3k system? If not, great! If so, then unless money for a hardware budget is the primary constraint, your time has to factor into the price as well.
Not for me. Getting windows to do my bidding is almost always a chore for me compared to Linux.
Note that this utility is for installing the full desktop Windows on ARM (at best a gray area wrt licensing), not IoT
Windows on IoT, no. Windows as a risk, yes. Apologies if this seems rant-ish, but the idea has touched a nerve.

IoT is generally something you should regard as a entrypoint into a network as much as desktops, servers, NAT broadband routers, APs are.

Flash and forget is a dangerous thing, and especially so if all you wanted was an IP connected thermostat.

If what you wanted was a thermostat with some sort of video output, then why not use an Arduino with a i2c serial ESP8622 or ESP32, or maybe an Orion Omega, note that the thermal output and voltage requirements increase. With smaller micro controllers and a serial connection you have mostly what you need, rather than a full-fat interface. The simplest solution is most likely the right one.

Don't include a GUI and all that other warm and fuzzy stuff of MS unless it is needed on what could be an entry point to a network or if the IoT is infrastructure.

There are things that could make IoT a very dependant piece of infrastructure. Suppose you deliver cargo. Suppose that some of the cargo is temperature dependent and you use a new IoT Rasp Pi 4 with Windows to control the refrigerator as your manager thinks money can be saved compared to old, in-person managed thermostats.

Fluorouracil, a chemotherapy treatment, MUST be kept at 5c +/- 3c, otherwise patient health and treatment can be compromised. It also has a short shelf life, if your goal was to know how long it has been in transit (simple BBE stickers are probably better, but your concern as a consumer could be forgery).

Something like IoT can help, and can hinder here, if you were to do end-to-end tracking of the supply chain, you could know it's whereabouts. If you were a malicious actor, you could do things like stuxnet, report that the thermostat is just fine, when really the shipment is at room temperature. Not that hard to imagine if you know where the shipments are from and your goal is to destabilise.

Is a good old-fashioned thermostat better here? Maybe. If you need to remotely control something, I'd prefer slightly harder to update in the field, Arduinos/ESP than the risk of it being an entry point to a network in the wild.

Many network infiltrations originate at the desktop. I'm classing Windows Server as desktop, because, well, it has a desktop out of the box. It is not a server OS. Real servers are not the entry point, despite their proximity to raw internet.

It's used in a lot of embedded scenarios... and will really depend on your use case. The raspberry pi will need a lot more/better hardware support if Windows is going to be a viable option. Video support is poor, onboard audio and lan aren't yet supported.

It's somewhat cool, but will need much better hardware support, or higher end hardware depending on the purpose.

If you aren't targeting something with end-user interfaces or consistent display needs, Linux is generally a better bet, and you can pretty much use the same languages and tooling.

For embedding, about the only more painful use of linux is when you need a gui display, and even that can somewhat be worked around... testing and isolating updates is probably the larger cost multiplier vs. windows in terms of long term support.

Windows IoT for Raspberry Pi is dead. That was enough for my to forget MS for the embedded end. Azure Hub sure. But a serious OS for the sensor end.
Could you elaborate a bit on why do you think full Windows on IoT is a game changer...

I think it’ll drive up unit cost by few hundred dollars on top of tenfold degradation in experience, so my gut feeling is it’s completely disconnected from reality.

That said Microsoft seemed to think the way you think at least at one point, so you’re not alone at all, and it’s interesting where the misunderstanding come from.

Yeah I also find this take confusing. The main USP for Windows is that it runs proprietary software which has been captured through vendor lock-in. Even if you are somebody who just likes windows for some reason, I'm not sure what the value-add would be for a machine with no UI
I am thinking about how a machine might expose a UI to an AR viewer of some kind. So, the scenario is: you throw on a pair of AR glasses and open the network-viewing app. I imagine being able to see UIs for thermostats, media players, audio equipment, etc. I suspect a Windows IoT device might get one closer to such a goal? Maybe not?
How would a windows device be closer to that goal? All you would need to make it work is some kind of standardized protocol for how IOT devices advertise data and controls.

The only thing Windows would "do better" would be adding layers of proprietary software and telemetry which would probably reduce performance and make it harder to work with.

> I'm not sure what the value-add would be for a machine with no UI

Educational lock-in. The RPI is a device for learning about computers. MS directly target the classroom at the moment, get people locked in early with online accounts, and then progress that into workplace familiarity.

I don't think employers want to spend the money to educate staff on using a Ubuntu-based desktop, even though that has a proven lower TCO.

Get them when they're in the class room. The best time to plant a tree is twenty years ago.

Yeah I mean I can understand the value to MS but I don't see it for anyone else.
Does anyone have more experience with Windows on IoT devices in general?

As long as Microsoft insists on force-feeding OS updates without permission from either users or developers, Windows is a non-starter for embedded online devices that need to maintain any semblance of reliability. For better or worse, they have taken Windows out of that particular market.

My opinion: I think it won't catch on as windows is too bloated and doesn't bring much advantage to the table. As a matter of fact i got a RPI just to have a standalone linux box.
> As a matter of fact i got a RPI just to have a standalone linux box.

And that's the beauty of Linux, it runs from mini devices to very very heavy supercomputers. I hope one day Steam will be more prevalent on Linux.

It's about time MS is squeezed out the same way they squeezed Netscape out.

Proton is an amazing project. I hope it will lead to more Linux Steam users, and consiquently more 1st party support, because I'm sure MS will do everything in their power to make Proton less effective and reliable than it is today over time.
Windows CE is in a lot of things. The Coke freestyle machines are CE running on ancient overtaxed hardware hence the poor touch response.
Don't forget some old ATM machines still use CE.

Even older ATM machines use OS/2 Warp.

> it seems like it could be a real game changer in general for IoT.

How so? IMO GNU/Linux is a very good IoT os, especially since the GPL compels companies to release firmware source so the community can patch the device after the company abandons it.

Let's just say that unless you're under a non-technical (e.g., political) mandate to use an embedded version of Windows, I cannot think of a good reason to seriously consider it.
Because it is bloated. It would run well on iot if you could make your iot device as big and as computationally powerful as a laptop.
It's not much better/worse than any modern linux desktop distribution... My biggest issues with the linux side usually come down to dealing with the one off issues that seem to popup on major updates... and never, ever try to use brand new hardware for you daily driver with linux unless you are prepared to deal with said frustrations.
Windows IoT is basically renamed from Windows Embedded.