
Arduino and Netduino pros and cons
#1
Posted 03 October 2010 - 06:10 PM
#2
Posted 03 October 2010 - 06:40 PM
#3
Posted 04 October 2010 - 01:15 AM
#4
Posted 04 October 2010 - 02:54 AM
just get the raw MCU and program it like a "real man" hehe.
Oh, that made me laugh ! I've done my duty, 8080, 6502, 6800, 6809, and it took me ages
to 'trust' 'C' code and libraries written by someone else. My Visicalc floppy is hanging on the
wall next to the battery powered paper tape rewinder, and right underneath the Windows 1.0
floppies.
If you need a sweet deal on a stockpile of Tandy Color Computer ICs I can help you there. That was
enough to make a 'real man' out of many people. LOL I keep looking for my ASM disks, and assembly
books, but I just can't seem to find them.
Thanks though for the reply. I'm pretty new to both the Arduino and the Netduino, but that was the
way I was looking at them also. Aduinos around the house and garage, feeding data back to the Netduino, and then
local storage, or net. After 8 years of retirement it's feeling good to beat a keyboard again, and I always
loved the smell of solder.
I am using original 7400 A series a lot. They're probably collector items now, eh ?
#5
Posted 04 October 2010 - 03:59 AM
I'm curious if you or anyone else ever hit the real-time processing limitation of netmf.If you need realtime processing, go arduino...
I realize the interpreted netmf is slower than arduino's compiled C, but so far it seems fast enough?!
How often does garbage collection in realtime apps? Can it be avoided by carefully forcing garbage collection at convenient times?
It'd be an interesting challenge to attempt to create a real-time app in netmf. Any suggestions? Maybe it's a myth? Maybe Netduino can do everything Arduino can?
#6
Posted 04 October 2010 - 04:44 AM
#7
Posted 04 October 2010 - 05:37 AM
#8
Posted 04 October 2010 - 06:40 AM
It depends on how exactly you define 'real-time'. Usually, people by 'real-time' mean anything that is 'really fast' or has 'an immediate response'. But the key characteristic of 'real-time' [operating system] is consistency concerning the amount of time it takes to accept and complete an application's task (Wikipedia). This means that you always know how long it takes to meet a deadline (e.g. response to an event, such as interrupt) - in hard real-time this is deterministic, i.e. predictable. .NET Micro Framework is not hard real-time, because garbage collector delays (queued) interrupt handler execution by undetermined amount of time, although there is an upper limit (based on size of available RAM).I'm curious if you or anyone else ever hit the real-time processing limitation of netmf.
Probably yes, but IMHO better would be to code the program in such way it does not need garbage collection at the first place, e.g. by reusing objects, static instances etc.Can it be avoided by carefully forcing garbage collection at convenient times?
This is possible in .NET Micro Framework platform with a help of native code. I have been able to implement code with 1 µs accuracy (reproducible), and there is already BigBanger driver sample. Additionally, in certain cases a hardware feature can be 'abused', e.g. it is possible to generate signals with precise timing via SPI, USART, PWM, precisely measure input via Timer Capture/Compare unit etc. Netduino is limited by what is available through the pin headers and firmware code, the microprocessor itself has many such features.If you need nanosecond accuracy - eg: bitbang a protocol, netmf will not do it...
If you want to hold a pin on for exactly 22.45micro seconds, you can't do that on a managed system
Yes, this is indeed long time - but you can compensate for it with clever programming, it is possible for example to use interrupt timestamp (passed to the handler via its argument) like phil did in his RC6 Decoder.On NetMF that isn't possible. Interrupts get raised 1-2ms late (1/1000th to 1/500th of a second late) - that is a *huge* amount of time.
#9
Posted 04 October 2010 - 09:11 AM
#10
Posted 04 October 2010 - 01:30 PM
#11
Posted 04 October 2010 - 01:47 PM
E.g. a pin for exactly 22.45 microseconds - use a 555 timer. Triggering this pulse when your RFID tagged cat tries to crap on your vegetable patch - use the Netduino.
Fred, I think you hit it right on the money here. Most users will probably go this route--"logic and control" using their Netduino, interfacing with other chips that do specifically-designed jobs like precise timing.
And some advanced users will integrate some custom native code into their Netduino firmware instead. Options are wonderful things...
Chris
#12
Posted 04 October 2010 - 07:59 PM
Oh, that made me laugh ! I've done my duty, 8080, 6502, 6800, 6809, and it took me ages
to 'trust' 'C' code and libraries written by someone else.
I hear you brother!
My first machine was a army computer FADAC with rotating hard disk as registers and memory; it had about 200 circuit cards that had two flipflops on it, etc. That I hacked out programs for it on paper tape, hex machine that you programmed in octal. But hey it was a 31 bit machine for Field artillery firing data calculations.
Can't say I miss the pain; would rather use C# and concentrate on end results.
Anyway the netduino is starting to feel a little crowded with everyone pushing this or that as a capability. Of course its always implement first and optimize second when needed.
#13
Posted 05 October 2010 - 12:41 AM
#14
Posted 05 October 2010 - 01:34 AM
Thank you for the insights. There whole world is not all nails for our easy to use Netduino hammer. It made me more aware of what are suitable tasks for Netduino and what should be handled by a 50 cent 555 Timer. Thanks everyone!
Well put, hari.
While there are a lot of nails you can hit with the 2-month-old Netduino hammer, there are also more to come... And thanks to community members (CW2, Pascal06, and others), you'll be able to enable additional community-created features and functionality in the platform.
Chris
#15
Posted 06 November 2010 - 09:41 PM
#16
Posted 06 November 2010 - 09:52 PM
#17
Posted 06 November 2010 - 10:02 PM
http://michael-schwarz.blogspot.com/
http://www.ajaxpro.info/
#18
Posted 06 November 2010 - 10:13 PM
...
You can also look into using the bitbanger driver:
http://forums.netdui...tbanger-driver/
Does that give you a good start?
...
Looking into that right now. It looks promising! And thanks for the welcome and the response.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users