I have started a new codeplex project called mip (managed Internet Protocol) to create a robust TCP/IP stack that is easy to use for .NET MicroFramework. Basically, if you have a .NET MF device with SPI support, you can now connect an enc28j60 based ethernet adapter to it without changing your firmware at all. That’s right, you can use the smaller firmware without ethernet and just add this library.
The basics are functional right now, but it has only been tested with a small sample web page and only with my 2-wire router. Please let me know if it works for you so I can check off different routers from the compatibility list. Also, if you have changes you want to make, please let me know! Or if you see it do something wrong, capture it with wireshark for me and send me the capture file…
Tested to work with ENC28 + CerbuinoBee
Also, tested with a generic enc28j60 module from ebay and the Cerb40. (wiring directions are in the intellisense tooltip of the enumeration in the Start method)
Brilliant! I am glad you got it finally complete and up for everyone to enjoy.
Someone may think, why managed? We lost an opportunity in the past because a customer needed 2 independent network interfaces but we only had one. With this, you can have few, not just 2! It won’t be the fastest but it surly opens new doors of possibilities.
i noticed you are including the local naming using mDNS and net-bios, i was kind of wondering how hard would be to include ( UPnP ) which would definitely be cool…
I’m playing with the UPnP as of now, if i succeed i’ll let you know… none the less don’t let that stop you from investigating the possibility to add support for it…
this is indeed a very impressive and highly promising project!
I really like your primary goals for the project:
Durability – keep running despite exceptions
Never block – No method should ever block and the code should be written to make this impossible
Features that make usage and discovery simple for the end-user
Sensible default values such as DHCP on by default
Support for Local Naming such as mDNS and even NetBIOS over TCP
Small – embedded devices have very little memory
Simple code – code should be easy and simple to foster contributions
Thanks, and please keep up the great work!
Cuno
PS
Maybe someone in the community would be interested in looking into writing a mIP driver for the STM32F407 with built-in Ethernet controller, e.g., for the upcoming Mountaineer Ethernet mainboard? CSA’s driver for LWIP could be a starting point (http://netmf4stm32.codeplex.com/SourceControl/changeset/view/1e6869691598).
I took a look at it and porting that driver is do-able. I am actually re-poritng the enc28j60 driver from the original Microchip code now (almost done). Unfortunately, I don’t have any hardware with that implemented. If someone can get me the hardware, I can give it a try.
Jay Jay, uPNP is totally possible. I see it’s just some UDP messages. But what do think it would be good for?
It is great if added, because one it would allow us to open PORT in routers firewall (to allow access to the device from teh internet without users intervention) when it Upnp is enabled of course and it would also allow us to set a Presentation Web Page, when Upnp is detected by any Supported OS… which would allow other Upnp compatible devices to control our microcontrollers.
SOLD! I am totally sold on the idea to add UPnP! “it would allow us to open PORT in routers firewall” – fantastic. That is totally in keeping with my goal of simplicity for the user! That is definitely getting added to the To-Do list!
Super! I have written a new driver that won’t have the restrictions of GPL, fixed the the link events, and fixed a memory leak. I intend to check that code in today…