Hello and Welcome! If you have a technical question please check out our Forums. If you have an order or shipping question please refer to our Customer Support page. Please see all COVID-19 updates here and thank you for your continued support.


Please take our customer survey for a chance to win $1000 in SparkFun credit! We really appreciate the time you take to give us your extremely valuable feedback on how SparkFun can be its best - we couldn't do it without your input. Thank you!



Member Since: May 16, 2008

Country: United States



Technologist, programmer, etc.

Programming Languages

Python, PHP, Javascript, Processing, and all things web.


University of Texas at Dallas



  • I was wondering the same thing. The datasheet refers to dead time when switching modes under "H-SW Operating Description " and shows a waveform indicating this dead time exists at the rise and fall of the output PWM. If this happens using the internal diodes, then I think we're safe. To confirm here's what I did:

    • Modified the Sparkfun-provided library to work with mbed (I may have newer changes by the time you read this, so check that out if you're interested)
    • Programmed an ST board to drive at 50% duty forward then immediately switch to 50% duty backwards
    • Wired up the ST, motor driver, and 4.5V supply from my benchtop PSU (no other components)
    • Bravely connected my oscilloscope between motor output AO1 and GND
    • Made some observations


    • The supply to the motor (A01 and A02) uses PWM at 50Hz with rise times around 50ns and overshoot of roughly 0.7V
    • No spikes or dips like you'd see using a simpler circuit like this one

    I guess the built-in protection diodes provide at least some level of protection; although, I'm not sure how robust they are. Note that my observations were using a single motor - using two motors may change the results. It might be a good idea to switch to "stop" or "braking" mode before reversing directions, and I guess it's a good idea to keep an eye on temperatures for long-duration or high output rides.

  • I think this sentence is confusing: "A PNP works in a same but opposite fashion. The base still controls current flow, but that current flows in the opposite direction – from emitter to collector."

    Looking at the previous paragraph: "The NPN transistor is designed to pass electrons from the emitter to the collector (so conventional current flows from collector to emitter)."

  • After measuring the resistor and getting something in the 350Ohm range, I tried resoldering, then replaced with a new resistor altogether, and eventually came to the conclusion it's probably the MOSFET. I got the same resistance with both resistors, and my multimeter jumped all over before it finally gave a reading every time I tested. I'm going to try a new MOSFET tomorrow. Thanks for your help l0gik!

  • Here's the solenoid we purchased: http://www.ebay.com/itm/3-8-Electric-Solenoid-Valve-NSF61-Potable-Water-12VDC-24VDC-VAC-110-120VAC-G28E-/290791658142?pt=LH_DefaultDomain_0&var=&hash=item43b488929e (12VDC, 500mA).

  • I have this and the corresponding breakout board connected to a 12V solenoid (which is connected to a beer line) and a GPIO pin of a Raspberry Pi (powered by the 5V side of the same molex connection powering the solenoid). The Pi outputs 5V for a specific period, then drops to a few mV. The solenoid opens just fine, and the beer flows great (nice head), but it doesn't ever close. It's great for getting drunk, but kind of ruins the project.

    I measured voltage across the solenoid terminals, and it goes right to 12VDC, but never drops below 5VDC. I think the pressurized system combined with a relatively high "low" voltage (5VDC) is preventing the valve from closing. Any ideas how to get it closer to 0V when the Pi's pin is low?

  • Props for the Vannevar mention!

  • What kind of t-shirt is this printed on? I'm kind of between sizes, and I want to look super swanky in a custom enclosure.

  • Great tutorial. To work around the memory limitation, you could put the SpeakJet dictionary in an external Javascript file, host it anywhere (Dropbox is good), include it in the head of the HTML (or just before closing body tag if you know what you're doing), and make it as big as you'd like. The same goes for images and CSS. The only thing you can't do is AJAX requests to domains other than the one the WiFly is on (considered cross-site scripting and blocked by newer browsers).

  • Yeah, the chisel or bevel would be nice.

  • Friggin awesome work guys! You're my hero's.