Member Since: July 5, 2011

Country: United States



Electrical engineer

Programming Languages

Python, C/C++


NDSU 1997-2002


Toys, tinkering



I started with a PiRetrocade kit and kept adding until I had a major appliance on my hands: my very own full-size arcade cabinet!

Continue reading

We've made a "Stranger Things"-inspired message wall for your viewing (and tweeting!) pleasure.

Continue reading

The long SparkFun tradition of mild sadism in the name of comedy continues!

Continue reading

For decades, the 555 timer has been a mainstay of hobbyist electronics. Is it time to retire this venerable little workhorse?

Continue reading

Some notes (and examples) to help you understand a bit more about the world of digital imaging.

Continue reading

The FreeSoC2 board is a great way to start using the incredibly powerful PSoC5LP processor line from Cypress Semiconductor.

Continue reading

As an engineer at SparkFun, I make a lot of temporary projects. The Magic Lunchbox helps me take them home to work on without damaging them.

Continue reading

Ever wonder how the Arduino IDE translates your code into instructions for the processor?

Continue reading

Radio Shack is finally declaring bankruptcy, but for many of us, it died a long, long time ago

Continue reading

FTDI's latest driver update appears to be semi-permanently disabling counterfeit FT232 chips.

Continue reading

To compare the Edison and the Raspberry Pi is to do a disservice to both.

Continue reading

In which I buy a cheap truck, planning on using my hacking skills to keep it going, and the universe calls my bluff

Continue reading

When in New York, I found a small group of hackers in as surprising place

Continue reading

Quad Fever!

Quadcopter fever is spreading through SparkFun! Of course we're going to hack them.

Continue reading

How Python makes my life easier every day

Continue reading

Technological befuddlements it took me 10 years and a college degree to understand.

Continue reading

Getting Started with the AutoDriver - v13

September 15, 2016

SparkFun's AutoDriver is a powerful tool for controlling stepper motors. Here's how to use it.

PicoBuck Hookup Guide V12

February 18, 2016

The PicoBuck board is a high-efficiency three-channel constant-current LED driver.

Simblee Concepts

February 4, 2016

The Simblee module is a powerful but easy to use Bluetooth 4.0 device which allows you to create a GUI from directly within your Arduino code!

Simblee LilyPad Hookup Guide

February 4, 2016

The Simblee LilyPad lets you easily integrate Bluetooth Low Energy and mobile apps into your e-textiles projects.

Simblee Breakout Board Hookup Guide

February 4, 2016

This guide will help you understand your SparkFun Simblee Breakout Board.

FemtoBuck Constant Current LED Driver Hookup Guide V12

December 10, 2015

The FemtoBuck board is a high-efficiency, single-channel constant-current LED driver.

SparkFun Blocks for Intel® Edison - 9 Degrees of Freedom Block

August 19, 2015

A quick overview of the features of the 9 Degrees of Freedom Block.

SparkFun Blocks for Intel® Edison - Dual H-Bridge

July 17, 2015

A quick overview of the features of the Dual H-bridge Block.

SparkFun Blocks for Intel® Edison - PWM

June 22, 2015

A quick overview of the features of the PWM Block.

Experiment Guide for RedBot with Shadow Chassis

May 28, 2015

This Experiment Guide offers nine experiments to get you started with the SparkFun RedBot. This guide is designed for those familiar with our SparkFun Inventors Kit and want to take their robotics knowledge to the next level.

Assembly Guide for RedBot with Shadow Chassis

May 28, 2015

Assembly Guide for the RedBot Kit. This tutorial includes extra parts to follow to go along with the RedBot Inventor's Kit tutorial.

FreeSoC2 Introduction

May 14, 2015

The FreeSoC2 is an Arduino-compatible PSoC5LP-based development board, produced by SparkFun in collaboration with Jon Moeller (developer of the original FreeSoC) and Cypress Semiconductor.

Wake-on-Shake Hookup Guide

March 13, 2015

A basic hookup guide for getting started with the SparkFun Wake-on-Shake.

BC118 BLE Mate 2 Hookup Guide

January 15, 2015

Hooking up and using the BLE Mate 2, which uses the BC118 BLE module from BlueCreations.

Programming the Intel® Edison: Beyond the Arduino IDE

January 7, 2015

Intel's Edison module goes beyond being just another Arduino clone. Check this tutorial for advice on how to get the most out of your Edison by writing code in C++!

Sunny Buddy Solar Charger V13 Hookup Guide

October 13, 2014

How to hookup the Sunny Buddy: a solar-powered, MPPT (peak-power tracking), LiPo battery charger.

FTDI SmartBasic Hookup Guide

October 3, 2014

How to use an FTDI SmartBasic Board to program an Arduino and access another serial device over the hardware serial port, without unplugging anything!

MiniGen Hookup Guide

May 22, 2014

Using the MiniGen, SparkFun's Arduino Pro Mini signal generator shield

Understanding the BC127 Bluetooth Module

January 31, 2014

SparkFun has two boards using the BC127; here's what you need to know to use them.

Digital Logic

October 3, 2013

A primer on digital logic concepts in hardware and software.

MiniMoto DRV8830 Hookup Guide

September 19, 2013

MiniMoto is an I2C-based low-voltage DC motor driver.

Using GitHub to Share with SparkFun

August 19, 2013

A simple step-by-step tutorial to help you download files from SparkFun's GitHub site, make changes, and share the changes with SparkFun.


July 8, 2013

An introduction to I2C, one of the main embedded communications protocols in use today.

Leap Motion Teardown

June 27, 2013

Let's see what's inside the amazing new Leap Motion input device!

Programming the pcDuino

March 12, 2013

With great power comes great complexity. This tutorial will teach you some of the basic concepts needed to get the most out of programming your pcDuino.

pcDuino Hookup Guide

March 8, 2013

pcDuino is SparkFun's single-board hardware-hacker based mini PC. It comes with Linux pre-installed, has all the hardware functionality of an Arduino Uno, and can be programmed almost as easily as an Arduino!


February 7, 2013

Light is a useful tool for the electrical engineer. Understanding how light relates to electronics is a fundamental skill for many projects.

Connector Basics

January 18, 2013

Connectors are a major source of confusion for people just beginning electronics. The number of different options, terms, and names of connectors can make selecting one, or finding the one you need, daunting. This article will help you get a jump on the world of connectors.
  • You should be okay to do that; I’d use either nylon screws and standoffs or non-conductive washers (at the very least) because you’ll probably expose copper doing that and you don’t want to accidentally chassis bond your ground plane.

  • Low fuse: 0xff High fuse: 0xd8 Extended fuse: 0xd8

    Those are what we use in the factory.

  • I really can’t say. At this point it’s so far into the specifics of dealing with one particular headset that I’m out of my experience range. It’s possible that that headset just won’t work with the BC127.

  • You should be able to; I’d expect it to operate through the HFP mode. If it’s not, then I’m afraid it may not work at all.

  • I’m sorry, without the actual hardware to play with I don’t think I can do much more.

    Guessing: maybe try using the AVRCP play command? It seems weird to me that it connects via AVRCP, as that’s a remote control protocol for media players, so maybe it needs to be “played”. Also, make sure your volume is turned up. Also, maybe make sure you’ve set it to SINK mode. Check out the Audio Bridge example in this tutorial. Maybe using the receiver example from that will work.

  • I’m just guessing here, since I’ve never played with the BC127 using a bluetooth mic, but it probably uses HFP, which is intended for just this sort of application (HFP stands for hands-free protocol, and it’s what most BT phones are using to talk to an earpiece).

  • I think it’s safe to assume that the USB bootloader that ships with the part has been clobbered by the Arduino bootloader.

    That said, it’s still relatively easy to program the part without going through Arduino using AVRDUDE, and you may be able to do it with FLIP. The bootloader is simply a somewhat stripped down implementation of the AVR109 (I think) compliant bootloader example.

  • In general, no, not really. You can use some of the standard solutions like the ones you linked to get an idea of what you’re dealing with, but they aren’t going to tell you in absolute terms whether the output level at a given frequency is actually a problem or not.

    In the past, I’ve had better luck taking something in to be tested and, if it fails, setting up a makeshift test facility (in a large room or, better yet, outside in a field), taking some baseline readings on the frequencies in question, then tinkering to try and lower those frequencies.

    To be honest, your best weapon here is a strong offense. Understanding what causes emissions and how to mitigate those issues during design goes a lot further than post-hoc testing and band-aid type solutions to high emissions ever will. That, however, is well outside of the scope of this tutorial and is best addressed either by attending a seminar on the topic or by reading a text on the matter. I don’t have a text recommendation, I’m afraid; I’ve attended a couple of seminars about it over the years.

  • The length of the strand isn’t important, as each LED has a repeater circuit built in that reshapes the output. It’s the distance to the first LED that matters more.

    You’re right, though: this is a poor choice for applications requiring high drive strength, say, because of a large fan-out into multiple input devices.

  • I believe that you can get away with the lower cost Declaration of Conformity in this case. It sounds like what you’re making likely falls under the computer peripheral standard, and so long as you’re using a module with an FCC-ID and label the outside of the device with “contains FCC-ID xxxxxx”, a DoC should suffice.

    Here is a good document on the matter.. On page 3, the first paragraph after the numbered list would seem to answer the question: when using a modular transmitter with FCC approval, your device must still conform as though it were an unintentional radiator of the type it otherwise is, in this case, a PC peripheral.

    I hope this makes sense.