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.

Chris Walker

Member Since 18 Jul 2010
Offline Last Active Private
****-

#165 Arduino vs. Netduino

Posted by Chris Walker on 09 August 2010 - 05:51 PM

Sounds like an interesting project! But I have to say: the name you've chosen for Netduino really rankles, and I wish you'd change it.


Hi sbma44,

Arduino is a pretty cool platform, and the community surrounding it is nothing short of awesome. The Arduino team (some of whom I have had the pleasure of meeting and becoming friends with) are really nice folks and they have done a lot to help launch the open source hardware movement. I look forward to seeing what we can do together to continue building the open source hardware community.

The Netduino is 100% open source and provides Arduino shield pin compatibility. Like the XDuino and other non-AVR "duino" platforms before us, we also want to provide code compatibility with the Processing libraries used on Arduino. We'll be working with members of the Arduino community to help provide support for Processing commands on Netduino. We are also working on some solutions for users of Arduino hardware. More on that as it develops.

We're really proud of the open source community, and we hope that this new entry brings more members into it. Some people will use Netduino as a stepping stone to Arduino (or raw AVR programming). This will be a journey for us all, and we look forward to helping out where we can.

Thanks again for your participation in the forums!

Chris


#77 Firmware Toolchain

Posted by Chris Walker on 05 August 2010 - 04:46 PM

This has got me curious. I'm going to guess that it is easier to rebuild the entire chain than to try and mix and match the RVDS linker maps and the gcc linker maps to make GCC aware of the bootloader location.


Yes. If you're going to compile your own firmware, go all the way with the same C++ compiler. RVDS, Keil, or GCC.

Techie details: The bootloader stores the flash map file. It knows where the .NET MF runtime goes, where your code goes, etc. But the .NET MF runtime needs to have a matching flash map (so it can load your code, etc.). If you use the RVDS-compiled bootloader and a GCC-compiled runtime, they may think that code needs to be deployed one place and run in another. Or they might be happy together. Not sure. It's best to compile everything one way and know that you're good to go.

BTW, GCC is free, which is awesome...but it tends to create larger code so you have a little less room for your C# code. In addition to RVDS, I know that Keil (same compiler...less money) is also supported. See the .NET MF porting kit readme for supported compilers/versions. Also, you can always remove the FileSystem support or other features and free up lots more flash for your C# code if desired.

Chris


#72 Firmware Toolchain

Posted by Chris Walker on 05 August 2010 - 03:41 PM

What toolchain are you using to build the firmware. I'd like to use this as a platform to understand the porting process and add some features as a learning exercise.

I'm assuming the bootloader will not need to be changed for this, but just in case I really munge things up is the ICSP header on the board populated. (I only ordered the board today).


Hi Jeremy, thanks for the post!

We use RVDS to build the firmware (so that you get the smallest firmware with the most RAM available). But .NET MF supports GCC (the free compiler) as well :) If you use GCC, you will want to erase the board and flash the GCC-compiled bootloader (long story short: GCC makes bigger code, and the flash map needs to match). The ERASE pin is located directly underneath D0 on the board; just short it to 3V3 or 5V and then disconnect and reconnect your Netduino--and then use SAM-BA to deploy the bootloader.

The "ICSP" header on the board is just for compatibility with the few Arduino shields that need it. There are no additional features on those pins. And the Atmel ARM chip uses USB programming to program the chip (nifty, no?). You can also program a fully-erased Netduino via the serial (D0/D1) pins instead of USB if you prefer (or if you're on 64-bit Windows and have any troubles loading Atmel's SAM-BA drivers).

Chris

P.S. no, the 6-pin "ICSP" header on the board is not populated. This helps us keep costs down for users...but allows users to solder a ~$0.50 part onto the board if they ever need compatibility with a shield which might use it (XBee comes to mind).


#32 Preview of Mono support

Posted by Chris Walker on 04 August 2010 - 06:43 AM

Soon, we'll be launching an open source project to port the .NET Micro Framework SDK to Mono for use on Mac and Linux.

There are three main parts to providing native .NET Micro Framework support on Linux and Mac:
1. Supporting .NET Micro Framework in MonoDevelop
2. Porting the MetaDataProcessor (.NET MF post-processor) C++ code to Mac and Linux
3. Tweaking the MFDeployEngine and MFDeploy tool to work under Mono

We've completed most of the work with #3 (MFDeploy). I have attached screenshots of MFDeploy in action on Linux and Mac to this post.

Finally, the Mono team has been very gracious in making enhancements to Mono to make this first pillar possible. If you have a chance, please give them a big shout out.

Chris

UPDATE: We have released the first alpha release of MFDeploy for Mono (Mac and Linux).

Attached Files




#31 Arduino vs. Netduino

Posted by Chris Walker on 04 August 2010 - 04:31 AM

A couple quick questions: how does the Netduino differ from, let's say, the Arduino Duemilanove? Do the .NET Micro Framework and Netduino SDKs only work with the Netduino?


To add to what Izzmo said... The Netduino uses the standard .NET Micro Framework SDK. If you outgrow the Netduino, there are a number of high-end boards (200MHz! 8MB!) that you can get for a few hundred dollars. Some even have integrated networking and touchscreens. Any standard .NET Micro Framework code should move between boards by simply re-deploying the application to another board. Plus, our design files are Creative Commons licensed--so you can remix them into your own custom board if you'd like. Lots of our commercial customers will do this in high-volume applications.

That said, most microcontroller projects will work nicely on the Netduino.

The Netduino SDK includes added functionality (AnalogInput, PWM) which is Netduino-specific. But it's open-source, so if you wanted to use your code on another platform you could port the behind-the-scenes C code for that to another processor as well.

Now, for a comparison between the Arduino and the Netduino... Arduino is actually a pretty cool board, and the guys who run the project are pretty swell guys. Here are a few points of differentiation:

1. Arduino uses a simplified version of C, so it's pretty low-level. If you're making a really fast-moving blinking lights application using the GPIO pins directly, Aduino is probably a better choice. Netduino uses managed code--which does lots of awesome things for you (and many of them very efficiently)--but there's some additional overhead there.
2. Netduino is 48MHz, 32-bit, has 128KB of Flash (up to 200KB if you remove FileSystem support and such), 60KB of RAM, etc. Arduino is 16MHz, 8-bit, has 32KB of Flash, and a few KB of RAM. They have higher-end versions available with more Flash.
3. Both platforms can be used for simple projects in a pretty straightforward fashion. But as you create larger, more sophisticated programs... As you start wanting to pause your code and step through it to fix a bug in your code... And especially if you like event-based programming, garbage collection, and threading... Well, that's where Netduino becomes the only option.

You will see us recommending the Arduino for some projects around here. It's a pretty cool product. Both projects are helping build the same open source community. We'll also be building some very specific accessories for Netduino and actively promoting and supporting them for Arduino. We'd like to see the whole community grow. But that said, we think Netduino is a really excellent product. If you want to do cool things with a microcontroller--without all the complication--Netduino is for you.

Chris


#23 Microsoft Robotics Developer Studio services for Netduino

Posted by Chris Walker on 03 August 2010 - 08:08 PM

I'm an Ardunio user and curious about this new netduino. I am wondering about any plans to release Netduino services for Microsoft Robotics Developer Studio. My .net skills and time/patience are not sufficient to write the services myself. If the world of MSRDS were interfaced to the world of Arduino via netduino/MSRDS Services in an easy way (just install components) I would buy a netduino today.


Hi Bezee,

We seeded the fine folks at helloapps.com with some Netduino hardware. They've built a scripting engine for Microsoft Robotics Developer Studio that support .NET Micro Framework. Their support assemblies are quite large, so we're working with them to either slim down the assemblies or remove a few unused features from the Netduino (FileSystem support perhaps). In the latter case, users would reflash their Netduino and they'd have over 200KB of Flash available for their programs.

Anyway, we're hoping to see lots of activity around Netduino and Microsoft Robotics Developer Studio. Lots of cool possibilities!

Thank you very much for your interest in Netduino,

Chris


#4 Netduino Drivers

Posted by Chris Walker on 21 July 2010 - 09:28 PM

I've attached the Netduino drivers to this post. We support the following operating systems: Windows XP Windows Vista (32-bit and 64-bit) Windows 7 (32-bit and 64-bit) NOTE: these drivers apply to Netduinos running 4.1 firmware. The newer 4.2+ firmware uses integrated drivers which are set up by the Netduino SDK installer.

Attached Files






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.