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.
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.
I would not use Windows on a Pi, it can be done, but makes no sense to me.
You occasionally see Windows on stuff that runs full-size PCs "embedded" into a device, but then typically just normal Windows nowadays.
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.
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.
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.
-- 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.
[1] https://www.beckhoff.com/english.asp?embedded_pc/cx1010.htm
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
Even older ATM machines use OS/2 Warp.
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.