I am still quite new to the Netduino. I have purchased an Ardumoto shield from Hobbytronics in the UK:
- I wrote a review on the site too. (The formatting got lost in posting.)
Easter is very right to warn about the pinouts of shields! The ardumoto has to be connected to the netduino using wire links as none of the netduino PWM signals map onto the two PWM inputs chosen by the designer of this board.
I bought a pack of jumper wires to help with this. (Even Arduino users will have problems if they want to control more than two motors as I don't see any other way to re-route signals between shields.)
You will need four pins in total to control the Ardumoto's two motor channels (two PWM for speed and two GPIO for direction). This still leaves you two more PWMs for servos.
One big issue I had was sorting out the power supply for the motors. I have a model robot that uses 2 AA batteries (3 Volts) for the motors and I decided three AAs (4.5 Volts) would be plenty to drive the motors with the shield. It was a complete disaster, the shieled LEDs worked fine, but as soon as I added the load of the motors the behaviour was very strange. I was forced to read the datasheet for the L298 to try and work out what was wrong. It all came down to the Vin voltage being too low for the transistors in the L298 driver chip to turn on properly. Vin needs to be 2.5V greater than the logic high level being used to drive the chip (3.3V). So I have now settled for six AAs (9 Volts). Watch out for this because I think quite a lot of the motor shields are based on the L298.
Another thing I found was that the Netduino kept resetting if I powered it from the same AA batteries at the shield, so I am currently using two sets of batteries. The Ardumoto has a separate Vin connector to allow power to be drawn directly rather than through the Netduino, and because I am using jumper wires I have chosen not to connect the Vin between the boards.
One final issue I have not yet attempted to resolve is that when the Netduino is reset, the motors turn full on for several seconds. I am assuming that the Netduino's ARM has weak pullups enabled on reset, and that my PWM GPIOs get pulled to logic high by these - thus turning on my motors. Any help on how to address this would be gratefully accepted - I assume this would be a problem to other users also.
Puting the voltage and wiring difficulties aside, the Ardumoto board is well built and does the job I wanted it for.
For those of you in the UK, Hobbytronics were great to buy from. They have a good range of components (not much Netduino specific hardware) and I received my parts the next day having only paid £2 for delivery.