Introducing UPnP NETMF Stack!

Hello guys,
I’ve been cracking at the Documentation and implementing the UPnP Stack for netMf for a while now… and i finally have a working framework YAYyyyyy…
there is still a lot of work to be done… but it is a great start i can finally see my Device PopUp in the Intel UPnP Device Spy and my Windows XP Box…
So far here is what i have done:

Advertise a device on the network so other UPnP devices can see it.
Open Firewall Port, Close them as well.
Discover other devices…
Get External IP address…

What’s left : a lot…

  1. handle Soap Error.
  2. turn the whole Stack into classes and implement events…
  3. give the ability to advertise your device as any of the supported device type (Basic, Home Automation, Networking, Printer, Scanner, Remote Access, and so on…) not sure if we can have them all but i will try…
  4. generate the proper XML and handle responses properly…
  5. generate services and implement Control, eventing

If you are interested to help to implement the API and Organize the code please reply back… and I’ll send you a copy of what i have… as soon as i clean the code…

thank you.

Edit: for those of you who are wondering what can you do with this… well in short using this stack you can have all of your NETMF Devices talk to each other automatically over a network, using a standard format and not only to each other but to any UPnP Compliant device… imagine you have a home automation network, now you want to add a NetMF device to the network, you just plug it into your network router and that’s it everything else is handled automatically… if you decided to remove it the same thing, you want to control it again it’s easy…Possibilities are endless…

3 Likes

@ Jay Jay - That is exciting. Thank you for doing this.

I remember where it started. :wink:

http://www.tinyclr.com/forum/topic?id=2472&page=4#msg49098

Oh yes i remember and that’s when i started looking into, i didn’t do much with it at the time… lack of time, until recently i decided to give it a shot… and man it’s coming along nicely.

i kept it running all night … no lockups and no surprises… :slight_smile:

Thank you.

Awesome Jay Jay! I’d like to integrate this into the mIP stack as well on codeplex. Can you send me a copy? And do I have your permission to redistribute under Apache with attribution to you?

Thanks,
-Valkyrie-MT

@ Jay Jay - This is a great contribution! I’d recommend you go ahead and push it out to GitHub/CodePlex for us to be able to easily test/contribute. I’m working on a networking demo that I’m giving soon and it would be awesome to be able to show that you can just plug in an ethernet cable and a PC will automatically detect it :slight_smile:

What’s required on the PC side? I assume you still have to write some sort of driver for it to make it useful. Do you have examples of what that would look like?

This is very cool Jay Jay! Thank you for your effort.

Thank you guys,
I really appreciate the feedback…
Once the code is wordy I will upload it to codeplex…
@ Valkyrie-MT: once I clean the code I’ll let you know… In few days hopefully.

@ ianlee74: nothing is required on the pc side all drivers are part of windows, you may just have to enable UPnP to see them on your pc.

I know the UPnP drivers are there. I’m more curious about seeing an example of what the code would look like to utilize a device that is connected by UPnP. For example, say I have an network connected Zombie cannon and I want to be able to fire that cannon from a PC… The PC would find the device on the network and register it in Devices & Printers and I would see it but what I’m not familiar with is how would my Windows client app execute Fire() for the cannon without some sort of driver on the PC that provides this functionality. Sorry, but interfacing with hardware on the PC side at this level is new to me.

as far as my windows Xp box i do not see a way to invoke actions… BUT what you get is a Presentation Page(Web Page) so when i double click on my UPnP device it opens it’s own Web Page which you can use to control the Device …

try it… open my Network places and if you see a UPnP mostly your router double click on it or right click and hit invoke, which will open your browser pointing to the configuration page… My spider does the exact same thing… all i added for this behavior is the web server which reads the web file from an SD CARD and serves it to the brwosers… now i can control my device from a web browser. (so with UPnP i don’t have to know my Spider IP address nor i need to worry about it) all i did is plug it in and double click on the icon and voila i see my Spider web page and you can do pretty much anything you want from there.

and if you want to invoke actions directly then you can use the Intel Device Spy, which will give you access to all of the feature of that UPnP device.

Just catching up on this thread… simply awesome work! This will be very nice for all the DIY home automation types here (myself included). I’m imagining a laptop screen full of icons pointing to my pool, heating, security, and other as yet to be invented control systems.

Somebody give this guy some well deserved points!

1 Like

Ah, I see. So, if I wanted to tell it to do something the easiest way would perhaps be to add some web services in addition to the default web site. I can’t wait to try this out. Any chance the code will be up this weekend. I’m giving a demo to my company next Fri and would love to be able to show this off.

@ ianlee74: Sorry bud, i couldn’t get to the code these past few days, got busy working a bit out doors rebuilding the engine on my classic car (I’ve been at it for almost a week now) and she is almost ready… :slight_smile: anyway i will hit the indoors again this week, so hopefully I’ll have something ready to share.

thanks.

@ ransomhall: thank you for the encouragements… and UPnP will be great for those types of Projects and more… it is a great technology for sure…

I’ve been thinking about this a lot the past few days. I assume this code will only make the module visible to a PC or some other “master” type device. To have that “master” capability on NETMF would be really cool. I have a universal NETMF controller device that I use for lots of different things (watch for blog post tonight!). It would be really cool if it could be aware of other UPnP enabled NETMF devices in it’s network and could do the autodiscovery to figure out if it’s something that it knows how to control :slight_smile:

That’s exactly what you will be able to do… :wink:

Outstanding! This should be worth double triple points if it works as advertised! :wink:

The only downside to this is that now every project I build is going to have to contain a WiFi module. We REALLY need a cheaper way to WiFi… :frowning:

ENC28J60 module + Vonets wifi bridge = wifi for under $30

hmm any links for those modules, with those prices…?

Well, both are sold here for $35 each… maybe godefroi has a secret source he will divulge :slight_smile:

While not a full WiFi stack, the RN-XV module is $35 at Sparkfun, add $15 for the XBee module and it’s the cheapest solution I’ve found.