I really don't understand people who want this, with closed source software the learning stops at some point, you can't learn everything about your Windows-Pi even though it was created for learning! Even the example code (read I2C temp sensor, display using webserver) they give on the home page starts with: "// Copyright (c) Microsoft. All rights reserved.". Why would you want this? Can there really be people that are willing and able to build their own IOT but do not want to learn about Linux?
Knowing about Linux doesn't mean assuming it's the best tool for the job at hand.
I've used Linux, I've installed Linux, I've fixed a couple of broken Linux installs etc. I've compiled software on Linux. I've imaged an SD card for a Pi from Windows pre-Noobs. I've installed Rasbian using NOOBS.
I've also played with Arduinos, although mainly using other peoples' libraries for time and network comms etc.
I have not, however, written any serious software for Linux and I am not a Linux developer. I mostly use VS on Windows to develop software that will end up on Windows computers to be used by Windows users.
I have the required physical equipment, software and skillset to make a solution that meets the end requirements using 10 Core on a Pi 2. I don't have that for Rasbian. I've no doubt Lady Ada has a tutorial somewhere to teach me enough to get it working, but why would I invest my time in that?
I'd be better off using the skills I already have to accomplish this task. Then learning something completely different that will allow me to accomplish an end result I can't presently achieve.
At some point they might get curious and try Linux on it as well, but I'm all for whatever makes it easier for someone to get into trying something new without a lot of burden. For some people that means using Windows so they can use the platform and tooling they're most familiar with (Visual Studio and .net).
Yes, there's mono and such, but even that still brings its own complexity when you actually consider what else it takes to get set up and going for someone that's never used Linux before (or outside of some courses in college).
It's like wanting to build furniture, but then told you should plant a tree, wait for that tree to grow, chop it down, cut it up for wood, then you can start building some furniture. Most people would give up long before actually making any furniture in that case.
I previously tried Mono on the Pi and it had lots of bugs related to the processor architecture. Problems with the hard float support stopped things like Datetime from working properly.
This was a while ago so I imagine it's been fixed in a recent build. It shouldn't be a problem on the newer architecture of the Pi 2 either.
I think it's better to bite the bullet and just learn Linux and Python. You can then add those skills to your CV along with Windows and C#.
Absolutely, and especially in corporate environments. I'm not saying Windows 10 IoT is any better (I think it's very unlikely to be, but I also haven't evaluated it), but I can say for certain that I wish I had a single, identical python library for any IoT platform that handled interfaces as simply as:
with pin_1 as p1:
p1.output(1)
time.sleep(2)
p1.output(0)
Now, there are some libraries that approach that level of simplicity once you have your system configuration set up, but that doesn't lend itself to agile development. I want something that works like that out-of-box -- flash it, load code, press go button -- which simply doesn't exist. And, after spending a lot of time writing my own hardware IO library using direct memory access in Python, I don't think there's an OS out there that's capable of doing it (yet). I've spent just way too much time accommodating unfortunate abstractions taken at the linux kernel level (that I understand for historical reasons, but disagree with for future ones). An operating system for IoT done right is, in my opinion, a very lightweight exokernel with some really smart abstractions that just gets out of your way. Then you need a clever (and native) secure networking system, and you're in very good shape. void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}Even something that seems as complex as as reading a sensor and writing data out to a CF card doesn't require an OS if the basic library support is there.
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT)
while 1:
GPIO.output(2, False)
sleep(2)
GPIO.output(2, True)
Perhaps I'm not understanding what you want exactly, you seem to know what you're doing.Also, the sysfs mappings that the easy bindings tend to be written from are very, very slow (like ~3+ orders of magnitude slower than they should be: http://hackaday.com/2013/12/07/speeding-up-beaglebone-black-...).
Why would I put an OS on a computationally constrained device that is essentially guaranteed to spend a portion of the CPU time doing things I likely don't want done, for someone else (Microsoft in this case)?
My experience with Linux on the Pi is that it just works out of the box. Simple things that you need to install a driver for on Windows are plug and play on Linux [0].
I installed the desktop Windows 10 preview just to flash the SD card. Although I read in the Mag Pi [1] that there is a Python script [2] to convert the image to a normal format.
I'm a big fan of C# and I'm a professional .NET developer. It's my go to stack. Yet, I believe that the best way to use a Raspberry Pi is with Python on Linux.
[0] https://unop.uk/dev/raspberry-pi-electricity-monitor
I'd host the file but I imagine it will go out of date pretty quickly as MS change the original.
Granted, if you go through the developer site, it points you towards installing what you need to develop software for it. shrug
Then flash it with your normal tool such as dd or Win32DiskImager.
In case you're interested: https://github.com/lawl/Win10IOTRaspberryUnpacker
The script makes an 8GB file by default but it should be possible to change that. Add a parameter for the size of the card or even auto-detect it.
I've documented the process and written up my thoughts on IoT core here: https://unop.uk/dev/windows-10-iot-core-public-release-for-r...
That requirement itself is a big step:
On my wife's laptop I had even tried a fresh install of Windows 7 followed immediately by the upgrade and hit the same bugs as before (no "Modern" apps would load including Settings, and Explorer.exe was constantly crashing). A clean install of 10 fixed those issues and now it runs great.
Fixed now, thanks.
There must be something about their business model I'm not getting. Going to microsoft.com with the intent of buying Windows to install it on a naked PC or in a VM on OSX, I have yet to identify an option that allows me to: 1) buy a license, 2) download an ISO image.
The closest solution I've seen is to download some exe file that presupposes that I have Windows installed somewhere so I can....do god knows what to get an install going.
I know what I came to the site for. Instead the site spends all its energy on selling me on the idea of Windows and then fails to sell me the product.
Consistently.
For years.
Why? Do they not want my business? Is it really so horrible to sell their product to someone who wants to run their OS under VMWare?
This is neither hyperbole nor gratuitous negativism, but Microsoft is perhaps the worst company to buy a product from online. Microsoft fixing this is the litmus test for when they might, and I would like to emphasize might, be able to stop sucking.
Windows is only £80 or so and there was a big button on the nag screens that took me to the Windows site to buy a licence. Great - credit card in hand I clicked on through and was instantly greeted with buy Windows 8.1 screens.
The problem is, I absolutely did not want under any circumstances to install 8.1. I just wanted a legit licence to the already installed 7, which the computer was quite happily running and required no learning/explaining of metro to my mother.
For nearly 1 hour I tried to find a way to buy that Windows 7 licence key and found absolutely no way to do it.
That has been known to happen [1] (it's never happened to me personally). I suspect it has something to do with buggy AV or anti-malware software.
> For nearly 1 hour I tried to find a way to buy that Windows 7 licence key and found absolutely no way to do it.
You don't have a Best Buy type store near you?
[1] http://www.infoworld.com/article/2859267/operating-systems/w...
Not really, they want the business of IT departments of medium/large companies, running full Windows stacks (Windows Enterprise, Office, Windows Server, MS Sql Server, Exchange), which buy licenses by the dozen (at least) through their purchasing department.
It's how they make(a lot of) money.
My guess they did that because it's probably just like BartPE or other PE products - it copies files from the underlying OS.
> Is it really so horrible to sell their product to someone who wants to run their OS under VMWare?
There is nothing stopping you from running Windows in a VM - millions of people do it all over the world.
Still it is a step in the right direction for Microsoft. I am happy to see them doing such things. Competition in the IoT space is a good thing for all.
I agree, too -- and this phrase has been on the minds of people while installing Microsoft products for decades now. It's in their DNA somehow, it seems.
Do not interrupt the actual discussion to meta-discuss the scoring system.