# General > IoT, IoE, and Maker Forum > Raspberry Pi Windows 10 IoT on Raspberry Pi 2

## CVMichael

I thought this forum would be a perfect match for the new Raspberry Pi 2, that Windows 10 IoT supports.

It is really cool the things that you can do with the Raspberry Pi, and now with Windows 10, this is the next thing I want for my "things to play with"  :Smilie: 

Here are some interesting reads (top links google gives):

http://www.theregister.co.uk/2015/02...ton_interview/
https://dev.windows.com/en-US/iot
http://www.pcworld.com/article/28862...ercharged.html

----------


## dclamp

I am going to have to pick one of these up. Any idea on the pricing on them?

----------


## Gruff

$35.00 US.  Far as I know.
Post 1 Link 3 "Counting Pennies" talks about other costs.  SD cards, Cables, Etc...

----------


## Niya

What a great little device. We have one, the older model, which we use in conjunction with a Smart TV so we don't need conventional cable providers. We can use the internet.

----------


## dclamp

I figured it would be more expensive than the $35 if it came with Windows. I looked it up a bit too, guess Windows is free with it. Nice.

----------


## CVMichael

I got the Raspberry Pi 2 last friday, so I had 4 days to play with it until now. Here is my experience with it so far.

I went to my local electronics, and I bought the Raspberry Pi 2 for $70 CAD. It is ONLY the Raspberry Pi 2... no power supply, no miniSD memory, no cables... nothing! (just the Pi 2 card)
I then went to my local computer store, and got, 2 * 16GB miniSD memory (2 of them because one for Linux (rasbian), and another for Windows 10), HDMI to DVI cable (to plug in the monitor), an HDMI to HDMI cable (to plug the PI 2 in the TV), and I also got an Microsoft All-In-One Wireless Media Keyboard because it's wireless, and 2 in one, so it does not use too many USB slots in the Pi 2. All this cost me ~ $120.

Got home, and realized I still did not have a power supply for it... I then had the idea to plug the Raspberry Pi 2 into the USB Hub that I have that has external power supply. It gives 1.2 amps to the PI 2, but they recommend 2 amps if you plug power hungry devices in the PI 2 (but I don't), so the 1.2 amps was enough.

First I downloaded NOOBS as a zip file, I dragged and dropped the contents to the miniSD, and plugged it into the Pi2. The install started, and reformatted (and partitioned) the miniSD, and I installed Raspbian.
Never tried linux before, and I was surprised, it's a lot like a windows OS... it detected the MS Keyboard & Mouse, and I was able to play Minecraft  :Smilie: , browse the internet, played videos on YouTube (kinda sluggish though, and I had to refresh the web page because sometimes it did not load properly, no images, or it did not load the videos)

Best part... I had an old miniSD that had a file corrupted (an MP4 video recorded with my GoPro camera), and I was not able to copy the file to my computer (Windows 7); it gave me an error whenever I was trying to copy & paste. But... I plugged the miniSD into the Pi 2, and copied the 1.6 GB file to the Raspbian miniSD; it copied the file, but in the log section it just told me that there were some errors... BUT IT COPIED THE FILE!!  Then I formatted the miniSD (with the corrupt file), and copied back the file to the miniSD, and finally I was able to copy the file to my Windows 7. The file was sitting in the miniSD for almost a year! (unable to copy it)... finally! I was able to play the video I recorded... and surprisingly, the MP4 was playing perfectly full screen on the Pi 2, (using the "omxplayer" player)

Raspbian also comes with software to start programming on it, so that's really cool... but I did not do that... I thought to try the Windows 10... yeey...

So...

I found out that in order to put Windows 10 on the Pi 2, you need to have Windows 10 on your PC!! (they say you can't have it in a Virtual PC because you need access to the miniSD card). But I don't want to upgrade to Win 10 just yet, so I tried to have it as a VM anyways...

I first tried to make a VM in VMWare Server 2, but I was getting and error (don't remember the error)... so I could not install Win 10... I then googled, and found other ppl have installed Win 10 on "VMWare Workstation", so... I downloaded VMWare Workstation 11, and installed Win 10 on it, with no problems.

From the VMWare Workstation, I switched the miniSD from my main computer to the VM, and Windows 10 was able to use it.
Finally, I was able to write the Win10 image to the miniSD. Started the Pi 2 with the Win 10 miniSD, and after 10 minutes I got into this screen:


It did not detect my Microsoft Keybord & Mouse !!! it's a Microsoft product and it did not detect another Microsoft product !!!!!!!
I changed to my other wired mouse (Logitech), and it detected it
That screen IS EVERYTHING !! all you can do is change the time! that's it!
I then had to use Power Shell to connect remotelly to change settings. (see tutorials online)

So, I thought... let's put a "hello world" program on it... I installed Visual Studio 2015 Insider Preview on my Windows 7.... nope... it does not install the stuff you need to program for the Pi 2... I then installed again on the VM the Visual Studio 2015, then I had to install some "tools"  (dont remember exactly... something IoT additions). Downloaded the Hello World sample, and compiled it, and tried to publish.... error... can't connect to the Pi 2...
I spent 2 days to try to figure this one out, I even re-formatted the miniSD and installed Windows 10 Iot again (later on discovered that that was not the problem). But finally... I figured it out, after I tried a million things loosing track on what I did / did not... but I think the problem was just un-checking a checkbox that does authentification when you try to connect to the Pi 2 (and apparently you don't need to authenticate)

So... yesterday, I finally was able to execute the Hello World application after 2-3 days of frustration!! and I was not able to click on the button in the Hello World application because the ******* thing did not detect the mouse & keyboard !!!!  :Mad: 

So.... it took about 30 mins to install Raspbian that is a full OS, and you can develop apps on it, and it took me 3 days to install Win 10, and find out it's just a picture, not a full OS.

For NOOBS (Raspbian), the downlad was 742 MB, quick & easy drag and drop of files...
For Windows 10 IoT, I think I downloaded about 15 GB of data off the internet (thank god I have unlimited download bandwith). The VM file size is 26 GB, and all I have on it is Windows 10 OS, and Visual Studio 2015...

Anyways... Now that I got both to work, I plan to develop apps in both Raspbian, and also Win 10, I just have to switch the miniSDs

----------


## CVMichael

Here is the best tutorial that helped me fix some of the things that other tutorials missed:

Part 1:
http://wmug.co.uk/wmug/b/pwin/archiv...etting-started

Part 2:
http://wmug.co.uk/wmug/b/pwin/archiv...-set-up-the-pc

Part 3:
http://wmug.co.uk/wmug/b/pwin/archiv...-a-light-blink


And... I also 3D printed a case for my Raspberry Pi 2  :Smilie: 

The thing here: http://www.thingiverse.com/thing:604915

----------


## dclamp

Excellent review! I am going to have to swing out and buy one this week to play around with it. I have the first generation of RPi but I haven't found any use for it as of yet. 

I am really digging that case you printed. Every time I consider buying one I think "I will never print anything with it" but then there is always something (like this) where you think... I will just print a case for it... Im sure if I had one, I would print more than I think. 

My question though is: why do you have a class A IP address? How many hosts do you have on your network!?  :Stick Out Tongue:

----------


## Gruff

So how much are you into total now?

I'll have to dig up a CAD to US dollar converter.   :Smilie:

----------


## CVMichael

So far only the $70 + $120 = $190, but next time I pass the electronics store, I will probably also get a breadboard

----------


## Gruff

So about $155.36 US.  And you still need a power supply right?
Even so not bad for a hobby computer.

So what is the deal with Win10 in this case.
Is it the WinRT sort of thing where it cannot run standard windows apps or what?

----------


## CVMichael

> Excellent review! I am going to have to swing out and buy one this week to play around with it. I have the first generation of RPi but I haven't found any use for it as of yet. 
> 
> I am really digging that case you printed. Every time I consider buying one I think "I will never print anything with it" but then there is always something (like this) where you think... I will just print a case for it... Im sure if I had one, I would print more than I think. 
> 
> My question though is: why do you have a class A IP address? How many hosts do you have on your network!?


It's nice to have a 3D printer, there are a lot of things you can print, and the best part is the unplanned things, like this case  :Smilie: 

As for the RPi2, I got it to play with it... especially since I read on the net that you can develop in Visual Studio. I want to make a car-toy-robot.... thing  :Big Grin:  and I want to put a camera on it, and... well... when I get there... I will have to see what other things I put on the robot, maybe some sensors...  and of course, I will use my 3D printer to 3D print the robot

As for the IP address... not sure... the "box" that comes with my internet provider, has already preset to assign IPs from 192.168.0.10 (and up). I have about 7 devices on my network.

----------


## CVMichael

> So what is the deal with Win10 in this case.
> Is it the WinRT sort of thing where it cannot run standard windows apps or what?


Windows 10 IoT is only for developers, and it is only the "core"... so, it's basically a blank windows. Whatever apps you install on it, it will be your apps, pushed by Visual Studio on the Raspberry Pi 2.

I wanted to make apps that have a database, I don't know how am I gonna install MySQL (or something simmilar) to the Pi2 so that my app(s) can store/retrieve data from a database.

Because it's a Windows core only, I am having a hard time deciding where to develop apps in Raspbian because it's a full OS, or Windows because I develop in Visual Studio (but with limited capabilities).

----------


## dclamp

The only devices I have used for IoT have been Arduinos. And my database was on an actual server. I programmed my "smart" devices to essentially be dumb. They would either report to the main server or take action from the main server. They never made their own decisions. With that, I never considered putting a database right on the device. I could see how non-home automation devices can benefit though.

Is there any SQL Server version available for it? Tiny Tiny SQL lol.

----------


## techgnome

I'd imagine SQLCE would likely work.

-tg

----------


## CVMichael

> The only devices I have used for IoT have been Arduinos. And my database was on an actual server. I programmed my "smart" devices to essentially be dumb. They would either report to the main server or take action from the main server. They never made their own decisions. With that, I never considered putting a database right on the device. I could see how non-home automation devices can benefit though.


Yea, I did the same when I was playing with PICs. But Arduinos and PICs, have about the same speed ~16 MIPS, the latest PIC 32s go up to 330 DMIPS, but still not nearly enough to have databases on them.

I always wanted to make a robot that collects information using distance sensors (like ultrasound, camera, infrared, or even LIDAR), and then I want to store that information in a database, so that later on the robot will use that data for navigation. So basically lets say I will let it go move around the one room, it will find it's way around the house, and scan everything. Then I can tell it to go from one room to another, and it will find the best route to go using data previously collected, and if there is something new in the path, to make corrections, and continue on the path.
I will make it save a 2D map of the house, and then if all goes well, I will upgrade it to 3D...

By the way, did you guys see my robot? https://www.youtube.com/watch?v=L3Dpe1v6G-w
Basically what I want to do is something like that, but with a database attached to it, stores the position & distance, this way it remembers where it went, and go to new places.




> I'd imagine SQLCE would likely work.
> 
> -tg


Looks interesting, I will definitely have to try that  :Smilie:

----------


## CVMichael

Today I finally had the chance to make my first program in C using Geany editor and bcm2835 library.

I wanted to see how fast the Pi 2 can switch IO pins on and off, so I commented out the delays, and only left the code to write to the pin.



```
#include <stdio.h>
#include <bcm2835.h>

#define PIN RPI_GPIO_P1_11

int main(int argc, char **argv)
{
	if (!bcm2835_init())
		return 1;
	
	bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
	
	while(1)
	{
		bcm2835_gpio_write(PIN, HIGH);
		//delay(10);
		bcm2835_gpio_write(PIN, LOW);
		//delay(10);
	}
	
	return 0;
}
```

I connected my MSO-9201 signal analyser to the output, and pushed the analyser to it's limits. I set it to sample at it's max speed at 500 MSa (that's a 2 nanoseconds precision).

So, each GPIO write it takes ~70 nanoseconds, so a full impulse (on and off) takes 140 nano seconds, this gives an output of about 7MHz. Of course, there is no other code for whatever other processing is needed to write to the pin on/off.

Anyways... for controlling motors and sensors for a robot, this speed is more than enough.

PS. I wrote this from my Pi 2  :Big Grin: 

[Edit], Ow... my next test should be the same thing but on Windows 10 IoT  :Smilie:  I can bet it will be much slower, LOL. I will try it this weekend

----------


## dclamp

Thanks for keeping us up to date! I look forward to getting mine and playing around with it!

----------


## CVMichael

So, I tried to do the same on the Windows IoT

I modified the Blinky sample: https://ms-iot.github.io/content/win...les/Blinky.htm

I commented out the lines that changes the color of the circle in the interface, and the code left was only to flip the pin on/off.

At first I tried with the timer, I changed it from 500 ms to 1 ms, and the pin flipped every ~32 ms, so it seems the timer is the same as on the main computer timer (minimum 32 milliseconds)

Then I commented out the timer code, and added in the MainPage() a loop to flip the LED (pin... I did not connect any LED, I connected it to my logic analyzer). 


```
public MainPage()
        {
            InitializeComponent();

            //timer = new DispatcherTimer();
            //timer.Interval = TimeSpan.FromMilliseconds(1);
            //timer.Tick += Timer_Tick;
            //timer.Start();

            Unloaded += MainPage_Unloaded;

            InitGPIO();

            while (true)
            {
                FlipLED();
            }
        }
```

This way it should flip at it's fastest speed. And as predictable it is MUCH slower running on the Windows IoT, in fact it is more than 1000 times slower! LOL

It was writing to the pin between 100 microseconds to 200 microseconds, the logic analyzer was giving frequencies between 3.5 KHz to 4.9 KHz, the timing varies A LOT!!

So, Windows 10 IoT... quite a disappointment compared to C on the Raspbian (Linux)

----------


## Niya

> So, Windows 10 IoT... quite a disappointment compared to C on the Raspbian (Linux)


Was that program compiled using optimizations ?

----------


## CVMichael

Ahhh... no... I don't know what optimizations I can change, and also, I took the sample that was meant for IO (input/output), so I am assuming it is already optimized.

----------


## Niya

Ok.....I assume that program was written using Visual Studio ? And it had to be compiled ?

----------


## CVMichael

Right... and the optimizations are where?

----------


## CVMichael

If you are referring to the "Build" section in application properties:


I checked "Optimize Code", it made no difference at all...
I checked "Allow unsafe code", it made no difference
I unchecked "Define DEBUG constant", and "Define TRACE constant", again it made no difference

The only thing that made a TINY difference is when I executed "Start Without Debugging", it increased the frequency by ~50Hz, but still very irregular varying between 3.6 KHz to 5.04 KHz

Still a long way to go until it gets to the frequency reached using C in Raspbian, at 7MHz

----------


## Niya

> I checked "Optimize Code", it made no difference at all...


Hmm...that Visual Studio looks different from mine but yea, looks like you got it.

At this point without diving into this myself, I haven't the slightest clue why Windows is performing so poorly. This stuff is a little outside my world.

----------


## CVMichael

I got my second RPI 2, and I also got a camera for it, I installed Raspbian on it, and I plan to make it send the video from one to the other. And of course, I 3D printed a case for the second one, and also a case for the camera.

But today I will be busy for the rest of the day  :Frown:

----------


## dclamp

Excited to see where this goes. What protocol are you going to use to communicate?

----------


## CVMichael

> Excited to see where this goes. What protocol are you going to use to communicate?


My interest in HD Video transmission over WiFi was started by this: http://diydrones.com/forum/topics/3-...odity-hardware
I also discovered about Raspberry Pi 2 because of that thread.

That thread interests me because for a long time I wanted to have better quality video from my drones (my Hexacopter, and my 3D printed quadcopter) for FPV.
The FPV system I have now it is analog, and it has very low resolution, in fact the first time (and last) time I tried using it for FPV, I crashed my drone because I cut the power of my drone thinking that the drone is close to the ground, when in fact was about over 1 meter above the ground, and I broke the landing gear on it. The quality of the video was soo poor that I could not tell how far off the ground the drone is... Since then I did not even try to fly sing FPV.

So, to finally answer your question. The way the HD transmission works using the RPi2 with WiFi, Is to put the WiFi modules in broadcast mode, so it is a connectionless transmission, kind of like UDP broadcast. This means that it does not re-transmit when loss of packets. Another nice benefit is that on the receiving side you can have more than one receiver working as a "union" (it's called "Diversity"). So you can improve your receiving sensitivity by placing 2 (or more) receivers a few meters appart.

There are systems out there that do HD Video transmission for FPV, but they are really expensive, here is an example: https://www.google.ca/?gws_rd=ssl#q=...ideo+Downlink+ 
This one goes up to one mile, that's 1.6 Km, and with the Raspberry PI 2, and the WiFi, you can go more than double that... and less than half the price... that is owesome!

----------


## mickel52

I can't install windows 10 iot core on raspberry pi 2. I've tried almost all methods. Picked up a microSD 8 GB class 6 explay. Installed the noobs from under it installed rasbian. Everything works. I Install windows RTM iot 10-black screen!. During installation it says that Flash drive does not match the speed. Installed WIndows 10 use windows 10 iot iot core dashboard - show multicolored square. Does this mean that the microSD card is not compatible?

----------


## CVMichael

Hi mickel52,

Here is a list of compatible SD cards: http://elinux.org/RPi_SD_cards

All the miniSDs that I use are class 10. I read on the forums the speed difference if from hours to minutes.... though I don't remember how long it took to install Windows 10.

But the miniSD might not be the problem... It seems that you have to format and write the Windows 10 IOT image from a Windows 10 machine. I installed Windows 10 in a virtual machine, and wrote the W10 IOT image from the VM.

----------


## mickel52

I bought a sony card uhs-i sr-8uya 8 GB. Windows 10 iot is not loaded if I start with noobs. If I start from the windows 10 iot dashboard colored square appears. Can my raspberry pi is faulty? Raspbian works well, but I do not know how to enable the sound. Can I buy another raspberry?

----------


## CVMichael

> I bought a sony card uhs-i sr-8uya 8 GB. Windows 10 iot is not loaded if I start with noobs.


That's because NOOBS is strictly Linux, nothing to do with Windows....




> If I start from the windows 10 iot dashboard colored square appears. Can my raspberry pi is faulty? Raspbian works well, but I do not know how to enable the sound. Can I buy another raspberry?


So you downloaded Windows10 IOT image, and you write the image using a Windows 10 PC ?
There are videos on YouTube and lots of instructions on the net on how to properly write the image... are you sure you write the image correctly?

About the sound; you have an option to send the sound through HDMI or through headphones jack, it does not work through either of them?

----------


## mickel52

Yes, I write the image using the PC. All the instructions I reviewed. There is written in great detail, and even have screenshots, but they do it well, but I don`t can. About the sound: in Raspbian when I run the game there appears to choose the sound but to hdmi. I do not know what player to use and where the player download to play video or sound. Sorry for my bad english

----------


## CVMichael

About the sound, see this: https://www.raspberrypi.org/document...udio-config.md

----------


## mickel52

Add another important information led Green gives 5 long and three short. Does this mean 8 solution? So how about tanning duration led error codes not specified

----------


## mickel52

https://youtu.be/DBAVrfBrM3M
Video answer
Play Start at 0:00
I try to install different operating systems

----------


## mickel52

please help me(

----------

