Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Why choose Netduino over Arduino?


  • Please log in to reply
8 replies to this topic

#1 JMVL

JMVL

    New Member

  • Members
  • Pip
  • 2 posts

Posted 06 August 2012 - 02:18 PM

Greetings to All, I discovered the Netduino a couple of days ago! I have recently started development of internet-connected devices using the Arduino Uno and an Internet shield. I am intriguded by the power of C#, multithreading, debug and the many other features of Netduino that make it easy and fast to develop internet-connected devices. There are, however some drawbacks: limited product range, limited supported devices and related code, limited competition (price), limited support (just this forum?), fewer sample code available, ... You have the experience, so help me make an informed decision: 1) Based on your experience, what are the 5 key reasons why Netduino is a better development tool for developping custom internet devices that Arduino 2) How do you deal with the restrictions/drawbacks compared to Arduino to reduce their importance Thanks for your responses. JMVL from Paris, France

#2 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 06 August 2012 - 03:39 PM

Hi and welcome to the Netduino community!

There are, however some drawbacks: limited product range, limited supported devices and related code, limited competition (price), limited support (just this forum?), fewer sample code available, ...


most devices can work with a Netduino. The differences in hardware support are very small. I must say you hit the sore spot with the related code. Although there already is a lot built-up in 2 years of time.

1) Based on your experience, what are the 5 key reasons why Netduino is a better development tool for developping custom internet devices that Arduino

It's not better nor worse, it's just different. Both systems have it's benefits, and can be combined.

But 5 points I really like about Netduino:
1. the visual studio IDE makes a lot of sense to me
2. it supports both C# and VB, which I find very easy
3. it's fully interrupt based and has multithreading
4. step-by-step debugging can be very useful to trace errors
5. there's a very friendly community with a lot of people willing to help out

2) How do you deal with the restrictions/drawbacks compared to Arduino to reduce their importance

For example, the current Netduino only has 4 PWMs. For servos that can be a drawback. I solved this by using a pololu servo controller. This has a PIC chip on it that controls the servos with it's own timers.

Also, shields which uses analog inputs are often incompatible because the Netduino runs on 3.3V and the Arduino on 5V. For digital I/Os that's no problem, but for analogs it is. But! This is also going to affect Arduino in some way, since the newer arduinos also use 3.3V. Therefor the IORef pin has been added to Arduino.
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#3 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 06 August 2012 - 05:56 PM

Hi JMVL,

I used to write a lot of hand crafted PIC micro assembler, and eventually found a free C compiler for the PIC - which had an annoying small code size limit.
I don't have much time to play around with code and I was finding that I spent most of my time reviewing what I had already done.

Along came the Netduino:

  • The development environment is as rich as the environments I use in my work, and yet the "compiler" and tools are all free.
  • This is a great forum for getting help - I don't think I can recall anyone ever answering a post with "read the faq".
  • Many of the Arduino shields are compatible with the Netduino - some do require signals to be swapped around, and some require extra hardware such as voltage level shifters.
  • Using the .Net framework it is quick to write a test program to just try stuff out before writing the proper code.
  • With .Net you can quickly write code that uses strings and floating point numbers that would need to written far more carefully in C (or possibly assembler).

Well, that's my "5"

Dealing with restrictions depends on what they are, you might need to use an SPI device to expand the functions you have on the Netduino, you might have to wire up a simple circuit on a breadboard to convert a voltage or give a high current motor output... Its all possible, and often not too difficult.

Have fun - Paul

#4 Dan Morphis

Dan Morphis

    Advanced Member

  • Members
  • PipPipPip
  • 188 posts

Posted 06 August 2012 - 06:30 PM

I discovered the Netduino a couple of days ago!
I have recently started development of internet-connected devices using the Arduino Uno and an Internet shield.
I am intriguded by the power of C#, multithreading, debug and the many other features of Netduino that make it easy and fast to develop internet-connected devices.
There are, however some drawbacks: limited product range, limited supported devices and related code, limited competition (price), limited support (just this forum?), fewer sample code available, ...

You have the experience, so help me make an informed decision:
1) Based on your experience, what are the 5 key reasons why Netduino is a better development tool for developping custom internet devices that Arduino

2) How do you deal with the restrictions/drawbacks compared to Arduino to reduce their importance


One of the big reasons for me why I use the NetMF platform using Netduino over Arduino is debugging. With Arduino, without going through a lot of gyrations, you have two basic ways of debugging. Serial.println, and flashing an LED. Serial.println works fine if you don't need to use the serial port(s) for other purposes.

With NetMF, you can do Debug.Print (or is it Console.WriteLine - don't my code in front of me), write out to a serial device, twiddle an LED, and most importantly, single step through the code to inspect what is actually going on. Another big thing is the code that you write, is the code that gets uploaded to the board.

With Arduino, if you use the Processing language and Arduino IDE, what you write is not what gets compiled and uploaded. A good example of this is some code I wrote last week, one of my preprocessor directives was wrong. The output from GCC which the Arduino IDE spit out said there was an error on line 133. My code didn't have a line 133. So I had to turn on verbose compiler output, so I could see where the actual file that the Arduino IDE was feeding to GCC was. Then open that file up and see what the actual error was.

That said, both platforms have their strengths and weaknesses.

Another big one is interrupts. Only pins D2 & D3 (IIRC) can be used to trigger interrupts. On the Netduino, any pin can trigger an interrupt. Interrupts are useful to have the microprocessor tell you when something has happened, instead of having to constantly monitor the state of a pin, and do your own checking on if the state of the pin has changed, and if that state is one you care about. For example, you can trigger when a pin goes high, goes low, or both.

-dan

#5 mtylerjr

mtylerjr

    Advanced Member

  • Members
  • PipPipPip
  • 106 posts
  • LocationChristchurch, New Zealand

Posted 06 August 2012 - 06:31 PM

Dont forget that the Micro.Net framework is from Microsoft, which is awesomesauce. Everyone love Microsoft! :)

/Former Microsoft engineer

#6 Coyttl

Coyttl

    Advanced Member

  • Members
  • PipPipPip
  • 61 posts
  • LocationSilver Spring, MD, USA

Posted 06 August 2012 - 07:41 PM

My biggest draw to the Netduino was the code side - I knew/know .NET a lot better than Arduino's C, so that meant my learning curve was limited to the hardware side. (If I had gotten an Arduino, I'd have a software AND hardware curve..)

#7 Mario Vernari

Mario Vernari

    Advanced Member

  • Members
  • PipPipPip
  • 1768 posts
  • LocationVenezia, Italia

Posted 07 August 2012 - 05:45 AM

In addition to the valuable points mentioned above, I'd place another question:
- why not Netduino and Arduino together?

As for me, an attempt to comparing them is wrong: they are pretty different, although the inspiration of Netduino is derived from the Arduino.

Arduino - pros:
  • very thin firmware layer: you can reach any internals without any pain;
  • native programming, thus the speed looks very high;
  • greater community around it;

Arduino - cons:
  • the debugger is trivial, but enough for small projects;
  • the language (C/C++/asm) is not intuitive for novices, but the libs set is very well shaped;
  • against medium/complex projects, you must deal with very hard tasks, sometime impossible to solve them;


Netduino - pros:
  • fully managed languages (C#/VB), which helps a lot dealing with objects;
  • the code is (pretty) easily portable to/from PCs, phones, etc. It's always .Net;
  • very powerful libs embedded in the .Net Micro Framework itself;
  • Visual Studio IDE is great, and full of features;
  • the debugger is really powerful;

Netduino -cons:
  • the managed framework leads to an unpredictable timing response of the execution: almost impossible rely on timings;
  • needs an huge amount of resources (ram, rom, cpu) compared to an Arduino board;
  • the overall execution looks really slower than an equivalent native program;
  • much harder putting the hands on the firmware for customization.

As you may see, they are two machines having different targets. You can blink a led with both the boards, but I think you won't pay 50 Euros for just a blinker!

Please, have a look at the Netduino Go!. Its hardware/firmware structure fits exactly as the philosophy seen above. There's a "main brain" running .Net Micro Framework, for an easier yet powerful programming. There are one or more small "satellite brains", which aim is really simple, but well done. Altogether create an ideal ecosystem where you can tune either a complex application, but also some small hardware interfacing without driving crazy with thousands of C/C++ code.
Even from the hardware perspective, this approach is better.

Cheers
Biggest fault of Netduino? It runs by electricity.

#8 JMVL

JMVL

    New Member

  • Members
  • Pip
  • 2 posts

Posted 08 August 2012 - 02:59 PM

Thank you all for your valuable answers. JMVL

#9 Gutworks

Gutworks

    Advanced Member

  • Members
  • PipPipPip
  • 363 posts
  • LocationOttawa, Ontario

Posted 08 August 2012 - 03:51 PM

That was a great comparison Mario. Very informative and objective. As always I appreciate your valued input. Cheers, Steve




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.