Netduino Mini

No Robert

I found the minimised browser window beneath several others :slight_smile:

@ Chris: How much did you pay for it

Cheers Ian

I am curious about the price as well. Canā€™t find it on netduino site.

http://www.proto-advantage.com/store/p/netduino_mini.php

Thanks Gusā€¦

Still better off with a panda

Cheers Ian

:whistle:

The Netduino Plus was what got me aware of NETMF in the first place - but I think a FEZ is a better bet than $60 Netduino, since I understand from converastions that by the time the network drivers are loaded to drive the onboard ethernet, it wonā€™t have much spare RAM.

Actually, they freed up like 16KB of RAM. There was an update.

@ Chris: So how much RAM and Flash left there for user use?

Well, for the Netduino Plus, I know that itā€™s always shrinking as they are always working on optimizing the codebase.

Currently, it seems to beā€¦
48KB Flash
30KB RAM

Wow ā€¦ that isnā€™t much. Less than half what we get with the Fez family.

They are always working it lower, like I said. Also note that I didnā€™t factor in the 16KB they removed just recently.

It seems that they will find trouble adding any new feature because:
anew feature = more flash + more ram consumption so the user available memory will be shrinking even more.
And I believe if anyone wants to try compiling the firmware or contribute with a new feature using the free GCC compiler will have trouble optimizing the firmware size because the available memory space is already limited.

I think Wiznet would have been a better choice for such tiny platform. :wink:

I read this about Ethernet performance
[url]Networking Performance with WebServer - Netduino Plus 2 (and Netduino Plus 1) - Netduino Forums
It is less than 600 bytes per second to send data over Ethernet.

With our Wiznet Ethernet support used with FEZ Domino, FEZ Panda, FEZ Rihno or FEZ Mini. according to our friend Mike
[url]http://www.tinyclr.com/forum/12/1070/[/url]
It is about 14,500 byte per second. It is more than 20 times faster than Netduino Plus.

Netduino Plus is a good idea but maybe this is another reason why they should have used the Wiznet chip. Maybe they can work something out to improve the performance!

A note on the side, FEZ Cobraā€™s Ethernet speed reached 1Mbps which is more than 200 times faster than netduino plus.

Well, there is a reason why itā€™s a public beta. Itā€™s not gonna be 100% just yet ;), but itā€™s certainly getting there. I have been using it on RWAR to log GPS to the MicroSD card.

That is interesting difference in performance!

Can someone (Chris?) with FEZ and netduino test the SD write/read speed?

Make a 1000 byte buffer with random data and then write this 1000 byte 1000 times to a file. This will give you a 1000000-byte file. Time it and tell us how long it took on FEZ domino or panda and how long on netduino.
Then do the same thing but this time read the file 1000 bytes at once for 1000 times. Time it and tell us what you see. Run the exact test on FEZ and on netduino.

Remember to use a card that is under 2GB on netduino. FEZ will work with any card of any size.

Maybe also run this test on a USB thumb drive as well?

And also run it on ChipWorkX and Cobra :smiley: (if your chipworkx has a working sd slotā€¦ sigh.)

When you run tests, fragmentation can make a big difference.
Always start with a formatted FAT32 on PC drive before running the test.

Rafik, Chimpanzee, Supa:

We donā€™t normally publish test results on pre-release software, but the GHI team mentioned and asked for stats in this thread so I thought I might offer some reproducible test resultsā€“along with a few notes on TCP. I hope these unofficial results are of assistance and help clear performance questions up a bit.

Test Hardware: Netduino Plus (Rev. A)
Test Firmware: v4.1.0.5 beta (pre-release)
Test Network: Netduino Plus via Ethernet, PC via WiFi

Results (unofficial, pre-release firmware):
75,000-100,000 bytes per second (somewhere in the 600kbps - 1mbps range including TCP overhead)

Using a Netduino Plus running pre-release firmware, you can run the following test code:

        public static void Main()
        {
            byte[] buffer = new byte[256];
            int bufferLength = buffer.Length;
            for (int i = 0; i < bufferLength; i++)
            {
                buffer[i] = (byte)(i % 256);
            }

            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(new IPEndPoint(IPAddress.Any, 12000));
            socket.Listen(Int32.MaxValue);

            Socket echoSocket = socket.Accept();
            while (true)
            {
                // write data
                echoSocket.Send(buffer, bufferLength, SocketFlags.None);
            }
        }

The Netduino Plus app accepts an incoming connection (as a server) and then writes a buffer of data repeatedly in an infinite loop. The data is an array of sequential values from 0 - 255 so that the PC client can verify that there is no data corruption during transmission.

The C# PC test app connects to the Netduino Plus and then counts the number of bytes receivedā€“and validates that there is no data corruption. A count and current time are printed to the console after every 10,000 bytes are received and verified.

C# PC test app code:

        static void Main(string[] args)
        {
            byte[] readBuffer = new byte[512];
            int bytesRead;
            int counter = 0;
            byte currentValidationValue = 0;

            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect("192.168.5.100", 12000);

            while (true)
            {
                bytesRead = socket.Receive(readBuffer, SocketFlags.None);
                for (int i = 0; i < bytesRead; i++)
                {
                    if (readBuffer[i] == currentValidationValue)
                    {
                        counter++;
                        if (counter % 10000 == 0)
                            Console.WriteLine("[" + counter + "] " + DateTime.UtcNow.ToString());

                        currentValidationValue = (byte)((currentValidationValue + 1) % 256);
                    }
                    else
                    {
                        throw new Exception("If you see this message, data was corrupted.");
                    }
                }
            }
        }

We have noted that writing large chunks of data with the pre-release firmware may slow things downā€“something weā€™re working on. Weā€™ll continue to tweak and tune settings to find a good balance of usability, available RAM, and performance. And while we anticipate that the production firmware will offer a good balance of performance, weā€™re also happy to provide tips for power users to get the most out of their hardware. In the meantime, if anyone experiences performance issues with the pre-release beta firmware, please drop us a note in the Netduino community forums.

Disclaimer: Please note that these are unofficial results based on beta firmware. 75kbps is pretty fast, and we may need to back off of this a bit before release to balance out other performance requirements. Also, this test measures throughput only.

Chris
Secret Labs LLC

P.S. The current Netduino Plus firmware offers up to 64KB of flash for code, not 48KB. We can make much more available from a spec perspective, but thatā€™s a topic for another discussion.

Glad you tried it. I was going to try netduino myself as the reported rates were unreasonably slow. Unfortunately, I do not have one. Maybe you can see why that user reported 8K but your test show 75K to 200K. There is some big difference there!

By the way, this test shows the performance in sending data, it is not really an echo test. Can we get this test done with sending and receiving?
While we are at it, what about the SD performance? In read and in write?

I wish I had a netduino+ so I could run these tests myself to help out (hint: do you have a spare one for me?)