Netduino home hardware projects downloads community

Jump to content


Photo

Introducing Netduino.IP, the shiny new TCP/IP stack for NETMF


  • Please log in to reply
35 replies to this topic

#21 beastyboy

beastyboy

    Advanced Member

  • Members
  • PipPipPip
  • 193 posts
  • LocationNetherlands

Posted 28 February 2015 - 01:49 PM

Hi Chris,

 

"A new build released on average every two weeks"

 

Now not sure which calendar you are using but if you want to get to this average you need to shorten your release window.

 

Cheers,

Beasty


Van SchOten Ict Diensten en Services
http://www.voids.nl


#22 devnetmf

devnetmf

    New Member

  • Members
  • Pip
  • 1 posts

Posted 07 March 2015 - 02:40 PM

The first build of the Netduino.IP technical preview (with source) is now available for download:
Download: Netduino.IP Technical Preview (Build 1)

For this preview build, we're focused on testing out network configuration (using the new MFDeploy tool). If you have some spare cycles, please test out the IPv4 and IPv6 configuration options.

Next up...ARP (address resolution protocol) and link status events. Then DHCP. Then ICMP, UDP, TCP, etc. Lots to test :)

Thanks for your participation and feedback!

Chris

 

 

Chris,

 

Will Netduino.IP also include UDP multicast?

 

Devnetmf



#23 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 30 April 2015 - 05:03 AM

Hey beastyboy,
 

Now not sure which calendar you are using but if you want to get to this average you need to shorten your release window.


Sorry for the suspense on the builds. We have had 7 builds in the last three months, but kept them private because we wanted to surprise you with something awesome: a hybrid Netduino.IP stack that supports Wi-Fi :)

More details on the new Netduino.IP hybrid stack for CC3100 are here:
http://forums.netdui...100-wi-fi-chip/

Now that that has shipped, we'll be resuming the Netduino.IP beta program in May. We have already added in a Netduino.IP.Interop assembly which will let the next progressive beta pull your MAC and IP settings from flash...

I'll post again in the next few weeks, with the next progressive beta of the core Netduino.IP stack.

Chris

#24 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 30 April 2015 - 05:04 AM

Hi devnetmf,

Will Netduino.IP also include UDP multicast?

We're keeping UDP pretty simple for the first release, but could certainly add in new features--carefully--after the first release.

Chris

#25 beastyboy

beastyboy

    Advanced Member

  • Members
  • PipPipPip
  • 193 posts
  • LocationNetherlands

Posted 01 May 2015 - 10:26 PM

Thanks Chris for this update, but I would really have liked to know what happened during these build. Just eager to know what you are up to.

Could you post an update on the 'other' long running projects

Cheers beastyboy

Van SchOten Ict Diensten en Services
http://www.voids.nl


#26 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 24 May 2015 - 11:08 PM

Hey team,

A quick update on our progress on Netduino.IP this month.

New EthernetInterface class
This is the new Ethernet Interface layer for the core Netduino.IP stack. It is responsible for packing and unpacking Ethernet frames. When a frame arrives from the network it passes the payload up to the IPv4Layer or ARP Resolver. And when a frame needs to be sent, it wraps it in an Ethernet header and sends it to the ILinkLayer driver.

This class also handles the link state events. So when your network cable is attached or detached it will signal NETMF's NetworkChange event.

Source at:
https://github.com/n...netInterface.cs

New Netduino.IP.Interop class
This new managed code library (which debuted with Netduino.IP hybrid stack) coordinates with the Netduino.IP config native code to retrieve your MAC address and IP settings from NETMF's ER_CONFIG sector. It is the only assembly which is required for deployment inside the firmware itself (since it uses native code interop). This means you can deploy networking as a runtime feature if desired, enabling NETMF to work great on smaller-flash microcontrollers.

Managed code source is at:
https://github.com/n...uino.IP.Interop

New ArpResolver class
The ARP resolver class handles conversion between MAC addresses and IP addresses. When Netduino.IP needs to send an IP packet via Ethernet, it asks the ArpResolver to translate the IP address into an Ethernet (MAC) address.

If the IP address is on the local network, the ArpResolver will send out an ARP request to retrieve the MAC address from the destination, so it can do direct delivery of the frame. It will then cache the address for 20 minutes so that follow-up frames to the target do not have to undergo address resolution.

If the IP address is on the greater Internet, the ArpResolver will send out an ARP request to retrieve the MAC address of the router. Those frames will then be routed through the network router to the Internet.

Finally, the ArpResolver automatically replies to incoming ARP requests...so that other devices on your network can deliver IP traffic to it.

Source code is at:
https://github.com/n.../ArpResolver.cs

I'm pulling in our IPv4Layer class code today and building firmware for Netduino Plus 2...so we should be able to do the first "hello world" style apps using NP2 and Netduino.IP in the next few days using UDP and static IP. :)

Chris

#27 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 25 May 2015 - 08:43 AM

Two more quick updates...

New UdpSocket class
This is the behind-the-scenes class which transmits and receives UDP datagrams through the IPv4Layer. It includes a 1500-byte buffer for one incoming UDP datagram at a time.
https://github.com/n...IP/UdpSocket.cs

Incoming fragment reassembly
The IPv4Layer class has been updated to support reassembly of fragment incoming packets (for all protocols).
https://github.com/n...IP/IPv4Layer.cs

Some last notes
Once we pull in the code which calls Netduino.IP from NETMF's internal socket interface, I should be able to compile the official Netduino.IP Technical Preview Build 3...complete with a UDP demo for getting NTP time from an NTP time server.

Next steps are to add DHCP support, ICMP support and DNS support. Then...TCP.

I'll post again later this week once we have a new compiled build to take for a spin...

Chris

#28 NameOfTheDragon

NameOfTheDragon

    Advanced Member

  • Members
  • PipPipPip
  • 112 posts
  • LocationCanterbury, Kent, UK

Posted 25 May 2015 - 10:38 PM

It is good to see progress being made on this. The flurry of angry disillusion users voting with their feet recently has been a bit worrying. I hope you are getting that message loud and clear, Chris. I believe that Netduino as a concept will sink or swim on the back of netduino.IP, so I am keeping my fingers crossed that it is a success. I am committed to .NET MicroFramework in general and Netduino in particular and Netduino.IP can't come quickly enough for me, or the several projects I have on hold waiting for a workable IP stack! You really need all the fans you can get right now, especially with Linux-based modules like CHIP coming on stream.

 

I would love to get more involved in the pre-release testing but currently there just isn't enough functionality to make it worth the investment. Once you can demonstrate an end-to-end connection, even a simple one, then I am all over it. I'm not sure that UDP goes far enough for what I need but I will certainly have a go at making something work.

 

Keep at it!

--Tim



#29 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 25 May 2015 - 11:43 PM

Hey Tim,

Thank you for the kind words :)

We're really excited about Netduino.IP (and so far, with the wireless hybrid version of the stack, results have been overall positive so far).

While NETMF is a stellar platform, I know that network glitches in the NETMF+lwIP combination have stung some community members. I'm pushing to get the Ethernet version of Netduino.IP shipped ASAP, one big hammer that we can directly maintain and support to ensure a great user experience.

On testing... We are putting together a simple "get NTP time" demo for the Build 3 preview, if you'd like to take the wheels for a spin. Should be posted in the next few days (compiled from the current source on GitHub).

Thank you very much for your support and enthusiasm, Tim. I look forward to your feedback on the new stack.

Chris

#30 NameOfTheDragon

NameOfTheDragon

    Advanced Member

  • Members
  • PipPipPip
  • 112 posts
  • LocationCanterbury, Kent, UK

Posted 26 May 2015 - 03:57 PM

Wireless is a "nice to have" but seeing as none of the Netduino products have wireless hardware out of the box, I hope you don't focus on that too much at the expense of the core networking. Really solid UDP and TCP and a sockets implementation are the key things to get right. If the code is well written, then it should be relatively easy to add alternative transports and encapsulations later.

 

--Tim



#31 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 May 2015 - 05:08 PM

Hi Tim,

Wireless is a "nice to have" but seeing as none of the Netduino products have wireless hardware out of the box, I hope you don't focus on that too much at the expense of the core networking.


The hybrid wireless version of the Netduino.IP stack runs on Netduino 3 Wi-Fi today. It seems that we haven't done a good job announcing this new wireless addition to the Netduino family. :(

Really solid UDP and TCP and a sockets implementation are the key things to get right. If the code is well written, then it should be relatively easy to add alternative transports and encapsulations later.


Agreed, and agreed! Thanks again so much for the feedback.

Chris

#32 NameOfTheDragon

NameOfTheDragon

    Advanced Member

  • Members
  • PipPipPip
  • 112 posts
  • LocationCanterbury, Kent, UK

Posted 26 May 2015 - 09:48 PM

Ah very interesting, I hadn't seen that. PoE would've been quite useful, more so than WiFi IMHO, but that's another debate. I see you added GoBus sockets too.

 

The price, however, is creeping up to the point where it doesn't look very attractive any more. Not in the light of things like the $9 CHIP - or $24 with an HDMI adapter, yes, output to a display. The penalty is having to develop on Linux, but the .NET MicroFx community is definitely being outmanoeuvred here. Something _discontinuous_ needs to happen, and fast. Chip launches in December and it is a game changer. Innovate or die!

 

--Tim



#33 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 May 2015 - 10:10 PM

Hey Tim,

The Wi-Fi add-on is basically a $35 add-on to Netduino, integrated into the board...about the same as an affordable Wi-Fi breakout for Arduino, etc. Netduinos start at just $19.95 for Netduino 1, so there are lots of options.

With Netduino 3 we're trying to create a really nice development board for both amateur and professional makers. Other boards have their places--and we may innovate with some less feature-rich products in the future as well. We're here to serve the community's needs, and sales of Netduino hardware are what enable us to continue innovating and leading with great new hardware.

In any case, and segueing back to the main topic: Netduino.IP is ready for that future.

Chris

#34 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 08 June 2015 - 06:00 PM

Quick update:

We've added DHCP support and ICMP in the latest Netduino.IP Preview for Ethernet.
http://forums.netdui...review-build-4/

I included a sample "get time from time server" project with the build. If a few of you have time to load the firmware on your Netduino and run the sample project (or your own UDP code), we would really appreciate the extra testing.

Things to test:
1. Make sure that your board got allocated an IP address via DHCP. [The sample app shows the address in the Output window.]
2. Make sure that the sample app was able to get time from the Internet time server.
3. Try to ping your board (using the IP address displayed in the Visual Studio Output window) and make sure it responds to ping (ICMP echo) requests.

Next up is DNS. Then we will finish up with TCP. Once TCP is tested, Netduino.IP for Ethernet will officially join the Wi-Fi version as an RTM release, ready for production use.

Thank you to everyone for their testing and test results during the beta. This stack is going to be an awesome enabler for the NETMF ecosystem...

Chris

#35 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 15 June 2015 - 05:32 PM

Quick update:

We've added DNS support in the latest Netduino.IP Preview for Ethernet.
http://forums.netdui...review-build-5/

I updated the sample "get time from time server" project to use DNS lookup. The updated sample is attached to the above post.

Things to test:
1. Make sure that DNS resolution is working. If the sample app can retrieve Internet time, DNS is working.
2. Try changing the time server hostname in the GetTime() function.
3. Create a new app which resolves other Internet domain names, including CNAME hosts.

Next we will finish up with TCP (in builds 6+). Then Netduino.IP for Ethernet will be ready for release.

Thanks for all your help testing out the new networking stack!

Chris

#36 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 03 July 2015 - 09:55 PM

Netduino.IP v1.0.0 is now shipping.

RTM. Woot! :) Thank you to everyone for all your testing and feedback.

Grab your copy now (for Netduino Plus 2):
http://forums.netdui...etduino-plus-2/

Netduino.IP supports HTTP, TCP, UDP, DNS, DHCP, ICMP, etc. It is a full-featured IPv4 stack written in C#.

To use Netduino.IP, just flash the new firmware and use standard System.Net.Sockets classes. No special application code required.

Chris




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.