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.
I've started a project using teensy++ (Arduino clone) and as a full time C# architect, I'm very interested in migrating to netdunio. I realize this is a new product, so I'm trying to be patient, but I don't see the things I need to do so.
First and foremost, there are libraries upon libraries in the Arduino community for stuff like switch debouncing, multiplexing, stepper/motor, servo control, etc. Do things like that exist already for the netduino?
Second, there are shields for just about everything under the sun. Specifically, I'd like a zigbee, wifi, or plain ethernet shield for this thing. I've read on the website that it supports them, but drivers are needed... so we're back to my first point: where are the drivers?
what about the 4.1 micro framework? Can I do some more advanced stuff like WCF services, threadpools, etc?
Lastly, one thing that I really like about the arduino is that I don't need an ardiuno. I bought a teensy++ because (at the time) it had the most IO ports available. It's a tiny, non-standard form factor, but I have all the pins I need on one board. So my question is, is this also opensource hardware? Are there any other companies building boards?
This is very exciting news to me (courtesy of Make) and I can't wait to pick one of these up.
fc
Hi poodull, welcome to the forums.
First of all, Netduino is 100% open source. You can download the hardware design files and firmware/sdk source code on our downloads page.
There are a bunch of other .NET Micro Framework boards out there (some higher end, with screens and networking etc.)--but no other boards with open source hardware and software that we know of. Yet.
So first of all, lots of features are built into Netduino. Support is already integrated for:
GPIO, I2C, SPI, PWM (motor control), and ADC (analog inputs)
Switch debouncing is built into .NET Micro Framework. You just set the glitchFilter property of your InputPort to TRUE.
For many shields (i.e. ones where they're just providing bridges for PWM to control motors and things like that), no drivers are required. It's the shields with custom I2C chips that drive peripherals where drivers are required. If there's a shield you'd like us to test, let us know. We'll be adding an "accessories" page listing tested shields later this month...and we'll be adding support for new accessories on a regular basis--complete with open source drivers.
.NET Micro Framework does offer advanced things...like threading and event based programming. WCF is supporting to an extent in .NET MF, but I'm not sure how big it is. You might need a board with more flash/RAM, but you might be able to do it on a Netduino. It's something we need to test.
Does that give you some good info to start with?
Chris
Yes, that's a great start. I guess I used the wrong phrase. It's not driver's I'm interested in since most components require no drivers at all.
The point is the coding libraries for controlling these things for a specific task -- Almost like code snippets. For example, switch debouncing. There's quite a few different libraries in Arduino and tons of debate on which to use based on your needs of granular control (including hardware used). However, like you pointed out, in .net 4.1 there's just the boolean parameter in the constructor for a InputPort.
I suppose if there's a specific library defined for product X, it would be relatively trivial to port it to C#.
Well, I'm going to get one and play around with it. Hopefully it can handle what I need without any issue.
Any advice on how to keep pin state updates as fast as possible using the net framework? The idea of having multiple threads is scary. I have no idea how a microcontroller like this would handle it. Volatile comes to mind.
Any advice on how to keep pin state updates as fast as possible using the net framework? The idea of having multiple threads is scary. I have no idea how a microcontroller like this would handle it. Volatile comes to mind.
For inputs, use events. They'll get called automatically when pin states change. And the threading is very lightweight (also, it's cooperative multitasking at its core--so if you're using multiple threads do small tasks, as big tasks could take an entire 20ms timeslice before the .NET MF runtime steals the processor back for another thread).
One thing to note: .NET Micro Framework is managed code. There is garbage collection in there, etc. You won't be able to do crazy-fast blinky apps in C# (although we could enable that through native code components--we'd just need to understand the problem better). That said, the I2C drivers, SPI, etc. all happen natively in the background...
Also, this is your board: if you want the raw speed of the ARM processor, you can erase the .NET MF, write C++ code, and get the full 48MHz speed (with the full 512KB flash/128KB RAM available). Most of our users will want to use .NET -- especially in projects and prototypes and short-run products...but we already have some users who want to tear it down to the bare metal and take advantage of all the raw speed.
There's a book, "Expert .NET Micro Framework" that's an excellent walkthrough to .NET MF. We're putting together an outline to create a Creative Commons-licensed introductory text that we hope to offer in the coming monhs. Please let us know what types of tutorials and info you need, and we may be able to work them into the book...and possibly into video tutorials as well.
Hi,
My name is Kamal and I have been eyeing the Arduino for a long time. I did not get it only because I did not want to have to learn yet another programming language. I like C#, it makes things easy. So, when I saw the Netduino, my brain went into autopilot and before I knew it, I had ordered the Netduino (just got an email that it is ready for pickup at the O'Rielly campus in Sebastopol ).
Anyway, I know a little bit of C# that I taught myself. I have zero experience with with hardware programming like the Arduino or Netduino.
Chris, since you asked for types of tutorials, I (and I guess many others in a similar boat as me) would love a tutorial series for n00bs . E.g. I have almost no idea what GPIO, I2C, SPI, PWM, etc. stand for and how they are used.
Sure I could learn about them by searching online, but that education will be out of context to the Netduino making it harder to translate that information into practical application using the Netduino. I can probably stumble along and learn it in due time but I want to start making cool things right away instead of learning the really basic stuff.
Anyway, thanks for making the Netduino possible. I look forward to playing with it.
Kamal
Chris, since you asked for types of tutorials, I (and I guess many others in a similar boat as me) would love a tutorial series for n00bs . E.g. I have almost no idea what GPIO, I2C, SPI, PWM, etc. stand for and how they are used.
Kamal, thanks for posting!
As far as introductory tutoritals, we'll see what we can do
We have an AnalogInput (ADC) how-to video planned for next Monday. And then motor control, GPIOs, I2C/SPI accessories, etc. At that rate, hopefully we can get you up to speed on all the features by the end of September.
We have an AnalogInput (ADC) how-to video planned for next Monday. And then motor control, GPIOs, I2C/SPI accessories, etc. At that rate, hopefully we can get you up to speed on all the features by the end of September.
Any plans for serial communication with a terminal program on the PC? That's pretty important to me.
Okay, cool. We'll see what we can do! There are a lot of tutorials in the works, so it may be a bit down the line (but if lots of people want this particular tutorial sooner, I'm sure we can push back some others).
As far as introductory tutoritals, we'll see what we can do
We have an AnalogInput (ADC) how-to video planned for next Monday. And then motor control, GPIOs, I2C/SPI accessories, etc. At that rate, hopefully we can get you up to speed on all the features by the end of September.
Hi Chris, when I said intro tutorials I did not particularly mean the principals of electronics. It would be nice, say, when you are doing a tutorial that utilizes GPIOs, give a brief description what is it and what does it do (generally).
For example, in the “Blinking an LED” video tutorial the purpose of Output port is described in a way that is easy to understand its purpose without getting too technical.
Please just consider this feedback on what kind of tutorials I would like to see. I hope it does not sound like I am telling you what you ought to be doing, which is what it kinda sounds to me when I reread what I wrote.
I think one of the strengths of Arduino is the Playground area at http://www.arduino.cc/playground/
and especially the pages that collect information (including links to any libraries) about interfacing with various hardware: http://www.arduino.c...ingWithHardware
Do you plan to add similar Wiki on this site? There are already some good libraries for .NET MF but its hard to find them on the web. It would be cool to have a single source for such information.
Do you plan to add similar Wiki on this site? There are already some good libraries for .NET MF but its hard to find them on the web. It would be cool to have a single source for such information.
Hi Szymon,
Great point. We're working on it. Right now, it's code named the Sandbox (sandbox.netduino.com). We're doing some integration work to make sure it runs off the same logins, etc. It might be renamed "wiki.netduino.com" before we're done, but I kind of like Sandbox. Thoughts?