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

Libraries, Drivers and Shields


  • Please log in to reply
15 replies to this topic

#1 poodull

poodull

    New Member

  • Members
  • Pip
  • 2 posts

Posted 04 August 2010 - 02:42 PM

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

#2 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 04 August 2010 - 03:11 PM

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

#3 poodull

poodull

    New Member

  • Members
  • Pip
  • 2 posts

Posted 04 August 2010 - 05:52 PM

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.

#4 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 04 August 2010 - 07:33 PM

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.

Chris

#5 Kamal

Kamal

    New Member

  • Members
  • Pip
  • 7 posts
  • LocationPlanet Earth

Posted 10 August 2010 - 08:51 PM

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

#6 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2010 - 09:07 PM

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.

#7 RuggedCircuits

RuggedCircuits

    Member

  • Members
  • PipPip
  • 17 posts

Posted 10 August 2010 - 09:34 PM

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.
Rugged Circuits LLC / <http://ruggedcircuits.com>

#8 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2010 - 09:47 PM

Any plans for serial communication with a terminal program on the PC? That's pretty important to me.


Over one of the UARTs (D0/D1 or D2/D3) using an RS232 shield or TTL-to-RS232 converter cable? Or through the USB cable?

Chris

#9 RuggedCircuits

RuggedCircuits

    Member

  • Members
  • PipPip
  • 17 posts

Posted 10 August 2010 - 09:49 PM

Over one of the UARTs (D0/D1 or D2/D3) using an RS232 shield or TTL-to-RS232 converter cable? Or through the USB cable?

Chris


Over the USB cable would be ideal.
Rugged Circuits LLC / <http://ruggedcircuits.com>

#10 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2010 - 09:55 PM

Over the USB cable would be ideal.


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).

#11 Kamal

Kamal

    New Member

  • Members
  • Pip
  • 7 posts
  • LocationPlanet Earth

Posted 11 August 2010 - 05:44 PM

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. :)

#12 Szymon

Szymon

    Advanced Member

  • Members
  • PipPipPip
  • 108 posts
  • LocationPoland, Krakow

Posted 11 August 2010 - 05:57 PM

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.

#13 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 11 August 2010 - 06:03 PM

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.


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?

Chris

#14 Solidus

Solidus

    Member

  • Members
  • PipPip
  • 12 posts

Posted 11 August 2010 - 11:39 PM

A git/svn repository to upload community-contributed drivers/demos/etc :P

#15 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 11 August 2010 - 11:46 PM

A git/svn repository to upload community-contributed drivers/demos/etc :P



Also a great idea. Welcome to the community, Solidus.

#16 Chris Seto

Chris Seto

    Advanced Member

  • Members
  • PipPipPip
  • 405 posts

Posted 12 August 2010 - 12:31 AM

A MediaWiki site might be a good place for community driven information...




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.