Why choose Netduino over Arduino?
#1
Posted 06 August 2012 - 02:18 PM
#2
Posted 06 August 2012 - 03:39 PM
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.
It's not better nor worse, it's just different. Both systems have it's benefits, and can be combined.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
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
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.2) How do you deal with the restrictions/drawbacks compared to Arduino to reduce their importance
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.
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#3
Posted 06 August 2012 - 05:56 PM
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
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
Posted 06 August 2012 - 06:31 PM
/Former Microsoft engineer
#6
Posted 06 August 2012 - 07:41 PM
#7
Posted 07 August 2012 - 05:45 AM
- 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
- Gutworks likes this
#8
Posted 08 August 2012 - 02:59 PM
#9
Posted 08 August 2012 - 03:51 PM
Twiiter: https://twitter.com/Gutworks
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users