Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Windows 10 IoT Core Support for Raspberry Pi 3 (windows.com)
84 points by ingve on Feb 29, 2016 | hide | past | favorite | 68 comments


You know what's funny is you can't even flash Raspbian on an SD Card on Windows without a third party application [1]. If Microsoft is going to be all gung-ho about open source and about the Pi, maybe they should ship "dd" with their command prompt...and bash / coreutils while they're at it. Until they do that, development on Windows is going to be a pain outside of the Visual Studio walled garden, and barely anyone is going to want to develop on Windows when 99% of the tutorials and documentation online is written for a bash prompt. And I'm not talking about just Pi development - developing anything on Windows is a huge pain without a Bash prompt and proper coreutils support.

[1] https://www.raspberrypi.org/documentation/installation/insta...


> And I'm not talking about just Pi development - developing anything on Windows is a huge pain without a Bash prompt and proper coreutils support.

Now that's some grade A nonsense.


Aye, developing C# is a breeze and perhaps the best development experience I've ever had.


I think he meant to say "not talking about just Pi development -- developing anything for embedded systems on Windows is a huge pain"

or

"...developing anything cross-platform on Windows is a huge pain"


> And I'm not talking about just Pi development - developing anything on Windows is a huge pain without a Bash prompt and proper coreutils support.

You haven't used Windows in a very very long time I take it? Powershell is likely a better shell than Bash and Microsoft freely provides compilers for C/C++/.Net and you can trivially get compilers for most other major languages on the platform.

All I am reading from your complaints is that you're scared of learning something new.


PowerShell may be much better than the command prompt ever was, but it still doesn't contain a `dd' equivalent


This is probably true, but then it involves learning powershell, which is only useful on Windows.


I might add that the C# compiler seems to come pre-installed on windows, nowadays.


The (old) C# compiler, as the VB compiler, was actually part of the .NET framework starting with .NET 2. Since .NET comes pre-installed on Windows, you also have a compiler. However, the new C# 6 compiler is no longer included in the framework, I think. When you install .NET 4.6 it even adds a notice to the old compiler's greeting message:

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240.


Yes, that's right.


It is? I had to install Visual Studio manually the other day in order to compile C#. Or are you talking about `csc.exe'?


I did mean csc.exe. On my machine csc.exe came pre installed but was not on the path.


Last time I tried to use Powershell I gave up pretty quickly.

Learning Powershell had higher costs than using something *nix based without any major advantage.


I highly doubt that powershell is better than bash, unless you're perhaps only counting bash and its builtins and disregarding the whole environment of binaries around it.


Have you spent any time with PowerShell? It's completely amazing. And I say this as a hard core Linux user since 1996.


I've spent quite a bit of time recently with PowerShell and I have to say that at best, I'm underwhelmed. I can see the potential with PS but there are too many things that are just left out by default.

The documentation seems incomplete and very clunky to actually use; it's hard to find what command you want and some docs are just plain wrong. Even using third party docs is frustrating. Honestly, it reminds me of the PHP docs, and not in a good way. Job control seems to be very clunky. I can't seem to push things into the background reliably in a PS1 script. Some things seem to work OK but others just background and disappear. Another problem I've had is appending to files; you can output log information to a file (ie. ls > ls.log) but you can't append to a log file (ie. ls >> ls.log). There may be a way to do it, but it probably involves writing a command and loading it somewhere.

That's the most annoying thing I find when living in the Windows world; there doesn't seem to be a good representation of $HOME. Where do I keep my SSH keys? When I create PS1 scriptlets how do I ensure they are loaded in a new PS1 shell? I'm sure there are answers to this but, as I said before, the docs are not the best. Maybe Microsoft should author a BASH --> PS1 translation guide. :)


To your second point, @home is a default variable $home and can be de-reffed from '~':

PS C:\Users\rich> ls ~/.ssh

    Directory: C:\Users\rich\.ssh

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a---- 1/14/2016 19:30 3247 id_rsa

-a---- 1/14/2016 19:30 744 id_rsa.pub

-a---- 1/14/2016 22:12 1595 known_hosts


I think you're suffering from PEBCAC ;)

You can append content to a file using >>:

PS C:\Users\rich> "Foo" > 1.txt

PS C:\Users\rich> cat .\1.txt

Foo

PS C:\Users\rich> "Bar" >> 1.txt

PS C:\Users\rich> cat .\1.txt

Foo

Bar


What makes a shell amazing?


Better pipes

edit: and better tab completion.


Well, you can't format a SD card with a unix file system on Windows..

Seems logical to me.

You can format the SD-card with a 3rd party app that's free. Okay, i'll download that..

Actually, i don't really understand the problem and i also don't agree with developing anything on windows is a huge pain...

I run a lot of github projects just fine on my Windows 10 without additional hassle if VC++ is correctly configured :)


that doesn't seem logical to me. I can format ntfs and hfs partitions (and many others) on linux.


For the ability to create ntfs drives on Ubuntu, you need to:

    sudo apt-get install ntfsprogs
That's the same as installing a third party application i suppose ;) -- http://blog.onetechnical.com/2009/06/09/format-an-ntfs-drive...


I am perfectly fine downloading an external application to write an image the sd card just like I am perfectly fine in using "apt-get install" for any application that doesn't come bundled with Ubuntu/Raspbian. If 99.9% of your users aren't going to use a feature why bother bundling it? If there was no effective way of doing this on Windows then I can understand the reasoning behind your statement. However, that is not the case so am sorry but this comes off as pissy person trying hard to find a reason.


Here is dd for Windows. http://www.chrysocome.net/dd


You might find this helpful: https://github.com/t0x0/random

It seems to convert the ffu format to a dd-able img format. I haven't tried using it, however.


What do you mean you can't flash an SD card in Windows? Never heard of Win32DiskImager?


Excellent point


Pi user here. Anyone know what the point of Windows 10 IoT is?


If you're more comfortable with Windows development than Linux development, it's a way to get things running more easily. (Although I expect that for many HN readers it's the other way around.)


Being able to develop embedded IoT solutions using C++/CX, .NET and Visual Studio tooling.


I was wondering the same thing. Without a display or most other "Windows" type things, how do you work with a Pi running Windows? I'm guessing you have to be comfortable with the shell, which takes you one step out of Windows.

Plus, Microsoft seems to be big on cross compiling .NET code on Linux. Wouldn't it make more sense to load Linux on the Pi, develop in V.S., and cross compile it for Linux? Couldn't the V.S. team include a "Build to Linux" button that compiles the code and pushes it to an SSH target? That seems much better than dealing with embedded Windows.


The idea is to use the Pi as a device to which IoT-focused applications can be deployed after being developed on a Windows PC. For Windows-focused developers, it can be a gateway to building on an unfamiliar platform without abandoning the comfortable dev environment that they're already proficient with.


I would expect that Windows 10 could run proprietary stuff like Netflix DRM which would make it a good choice as a media station since Raspbian etc. can't run Netflix, but who knows.


I'm not entirely up to speed on the situation of UEFI secure boot for ARM; didn't Microsoft mandate that it can't be disabled for such devices to boot Windows? Is that the case here?


These are categorized as experimental devices and Windows 10 is free to use on those devices for development and testing.

The UEFI secure boot requirements only apply if you want to distribute a commercial product and want to slap a "Designed for Windows 10" sticker on it - or negotiate a special distribution license with Microsoft (i.e. do not expect Windows 10 to be "free" if you want to use it in a commercially distributes product).


it does not actualy run "normal" Windows.


Has anyone taken a close look at what's actually running? I suppose it could be a version of the Windows Kernel since they have it running on ARM for Phone and RT but I frankly wouldn't be all that surprised if they were running Linux with .NET Core on top.


I've loaded up Windows 10 IoT for RPI 2 previously. It is a Windows kernel, but otherwise massively cut down. It limits the system to a single running "foreground" application at a time, plus some system services. If you wished to dedicate the device to a single purpose, it's fine, but don't expect a robust shell environment like you would see on a bare bones linux box. It certainly won't support a user using it as a desktop environment. Think of it more as embedded Windows offering, great for being a single app server, robotics platform or kiosk.


Which just makes me wonder what the point of it is. I guess if you really love Windows and want to build an embedded system this would be the way to go. I'm betting that most people that build embedded systems are not Windows developers and I'm not sure that this IoT offering changes anything.


I'm starting to wonder the same thing. I've been looking for a project to try it out on but every time I think I find one, I realize that it's something I can't do with Windows 10 IoT because it lacks a key feature (e.g. printing) and the time it would save on other aspects would be wasted trying to work around it's inadequacies in other respects.


"Windows 10 IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display, and that runs on the Raspberry Pi 2 and 3, Arrow DragonBoard 410c & MinnowBoard MAX. Windows 10 IoT Core utilizes the rich, extensible Universal Windows Platform (UWP) API for building great solutions."

http://ms-iot.github.io/content/en-US/IoTCore.htm


It is not available in the Microsoft store, the link there doesn't go to the product.



Followup: the 3 is live on Microsoft's site.


Will Windows 10 IoT phone home with as nuch information as Windows 10 PC edition does?

It makes perfect sense that Microsoft would want to mine the data they can fetch from the IoTs in your house as well as your computer.


I'm really interested in this as I have a project that would be perfect for it, but I don't see any licensing information available. Anyone know anything about that?


There are two licensing models for Windows 10 IoT Core https://www.microsoft.com/en-us/WindowsForBusiness/windows-i...

> There is a SKU ‘Windows 10 IoT Core’ available at no royalty cost for all our device makers that enables automatic OS updates via Windows Update when connected to the internet.

> In addition, we also have an OEM exclusive SKU ‘Windows 10 IoT Core Pro’ which provides an ability to defer and control updates. This SKU can be licensed via distributors. Except for the servicing model difference, the features are the same between these two SKUs of Windows 10 IoT Core.

So it's free for most everyone who would be browsing Hacker News.

I work for Microsoft on IoT Core, so it's exciting to see some exposure! :)


Note that the EULA related to this edition (at http://ms-iot.github.io/content/eulas/dashboard_eula_en-us.p...) also states in section 2 that "You may not" ... "transfer the software or this agreement to any third party".

(plus some more restrictions of a similar kind)

So this is a development license, not a "ship a product" license. Which is fair, but it's less universal than what your post could be interpreted to mean.


I think that's just the default EULA. I also found this page where you can apply for commercialization https://www.windowsforiotdevices.com/

Here's an excerpt from the commercial terms of use for the non-Pro SKU:

> Subject to the requirements in Section 3 and restrictions in Section 4 and the other terms and conditions of this Agreement, Microsoft hereby grants to you a royalty-free, worldwide, non-exclusive, personal, non-transferable, non-assignable, limited license to install a Runtime Image into an Embedded System and distribute your Embedded System to End-Users.


Free if the backdoor is enabled.


Why does Microsoft care about the Pi? What would make them invest in a version of Windows for it?


It is the eternal quest for hearts and minds. Developers. Developers. Developers. Microsoft have always been aggressive about getting their stack in schools here. Hook them young. To be fair other companies try and do the same. It is good to see Microsoft on the Pi. Diversity is important. It is better that they get behind the Pi than them going off and promoting a more closed alternative that would only boot a signed Microsoft image.


As more and more things become connected and automated, why would they not want to extend their platform to those devices?

The architecture of the Pi is common enough that is probably serves as a proof-of-concept for commercial vendors who want to build programmable products that would be well-supported by operating systems and device drivers (by piggy-backing on the work done for the Pi).


There's actually a very good reason. Windows XP has been officially unsupported by Microsoft for about two years now unless you are willing to pay them a quarter million dollars a year. Often the computers spec'd for those systems have pitiful amounts of CPU power and memory (i.e. much less than necessary to run Windows 10), and the cost of a re-spec for PCs in certain critical systems is basically the cost of developing a new platform (not to mention that some of them can't fit a microATX-sized PC or have low power requirements) makes it potentially cost-effective to use SBCs, especially a popular one which someone like Newark/Element14 can customize for you and potentially support.


If kids start playing with Windows early on then they may grow up with a more positive view of MS.


To be fair, this is exactly why I got my 14 year old cousin on Ubuntu two weeks ago. So far he loves it.


Why filter your cousin's world view when you could show him all available options and let him make an informed decision himself?

Microsoft isn't so "bad" any more with their shift towards open source.


Allow me to clarify

Cousin: "Ugggggg my laptop is garbage since I put on Windows 10 and it's so slooooooow, can you fix it? I can't even play Minecraft!!!!"

Me: "Umm, I haven't actually used Windows in about 5 or 6 years and have no idea what's wrong - I also don't feel like spending my limited time visiting family messing around with your laptop. Here's a USB drive with Ubuntu, give it a shot"

Cousin (next day): "DUDE that's amazing it's so fast! I had to figure out UEFI stuff but I installed Ubuntu and Minecraft is faster than it's ever been before! I have a great dual boot setup going!"

Anyway, I don't feel too bad about it.

Incidentally, UEFI is one of the many reasons MS puts me off.


It's funny in a way, it'll end up creating an opposite kind of taste for Windows compared to the desktop version.

"All the programs and cool stuff are on Linux. Nothing supports Windows, lmao"


The Raspberry PI has a substantial commercial market. That plus as a way to retain interest in Windows, their support makes pretty good sense.


Not only this. Raspberry pi serves as a good jump in point for embedded development, and there are a good billion more cores to be sold in that area in the next few years.


Microsoft lost the smartphone game cause they came too late with a mature product. Supporting Pink ensures they stay in the IoT game from the start.


Education.

More hands on experience for the students with all the available hardware extensions.


Mindshare?


Why it's $49.99 on Windows store instead of $35?

Is Microsoft is charging extra for the Windows license?


Because it includes 16GB SD card I suppose.


"Puts a head on a headless device" That's actually pretty neat.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: