Member Since: January 28, 2009

Country: United States



I started at SparkFun in September of 2007 as an assembly technician. My experience in electronics had consisted of only running sound equipment for my band and fixing the occasional broken guitar cord. After only a few days on the production floor, my skills with a soldering iron improved dramatically, and I was building beautiful little widgets. It wasn’t too long before I started wondering how all these circuit boards actually worked. Whenever I had the chance, I would walk across the hallway to the engineers and ask for 5 minutes of their time. I learned words like micro controller, source code, op amp and many more. I was hooked.

My first project was an analog headphone amp. It was something I could use as a performing musician. This has since kept me busy on week nights (and most weekends) as I’ve grown my own business around audio products for musicians.

While perfecting my headphone amp design, I got into other DIY projects too. Before long, I was in my front lawn with my laptop and a few servos. I was hacking my sprinkler system. With some active pressure control, I was able to make my sprinkler shoot a perfect square. My neighbors thought I was a crazy :)

Little did I know that taking this position at SparkFun would open my eyes to a new favorite creative outlet, DIY Electronics. I get super stoked about a lot of things, but from the moment I felt that initial spark of interest, I knew this was something very special. I was learning tools that would allow me to truly harness my inner inventor.

In the last few years I have focused my energy at SparkFun to designing more efficient testing equipment and providing feedback to the engineers on how we can better design for manufacturing and testing. I can hardly call it a job, because I love it so much :)


QC Manager

Programming Languages

Arduino, Tera Term Scripts and Batch Files.


Rock On Audio


Incline High School (Lake Tahoe), Squaw Valley Academy, Cate High School, Golden West (Huntington Beach), Cal State Long Beach, CU Boulder, Sparkfun University




A nice fillet and clean layouts. DSP, particularly the Sigma Studio stuff from AD. Thermal updrafts and circling in them. Remote control Airplanes - Electric in the parking lot and Slope when the winds up.


http://www.rockonaudio.com, http://www.phillewisart.com (that’s my bro!)

While designing our new Simon Tilts Through Hole Soldering Kit, we ultimately found that the best solution for the tilt sensor involved creating a custom plastic part. Here is the story of this project - including a couple interviews with the people that helped us along the way.

Continue reading

Dunk Tank Hack

In addition to the ongoing robot competition at AVC 2013, we included some carnival-type entertainment for the attendees. We rented a dunk tank, triggered it with a swiveling mallet, and challenged people to play "Trampoline Simon Says".

Continue reading

Binary Blaster Assembly Guide

March 13, 2014

Learn how to assemble and play the Binary Blaster Game from SparkFun Electronics.

Constant Innovation in Quality Control

December 11, 2013

In this article, we share our recent advancements in quality control. Every new product we design and manufacture here at SparkFun gets a custom testing apparatus that is designed and built in house. Along with making our tests more thorough, we have also made them more efficient and robust.

Simon Tilts Assembly Guide

December 3, 2013

This tutorial will guide you through assembling your Simon Tilts PTH Kit.
  • Hi saccade,

    We do still use the locking footprints for some of our products that get headers populated in-house, like the ludus proto shield. Although it does make alignment easier, we prefer the aesthetics of straight headers (to keep a super clean looking layout), so most of our designs use the straight header footprints.

    Locking footprints are most useful when populating the parts in panel form before going into our selective soldering machine. It helps hold the parts in place without needing a huge jig to mate with the entire panel. Sometimes a panel may have over 100 parts go into SS, and so making a mating jig is quite the design project. For single board soldering, we recommend using a breadboard (as MicroLAN suggested).

    That being said, my team and I (in QC) use a lot of locking footprints on test jigs (to keep things perfectly straight). Although I’m always stoked on a nice looking test jig, we are not as concerned about the look cause they don’t hit storefront. We also get to use auto-router too - wahoo!

    Thanks for linking to my old tutorial. Wow, 2007, that was a fun trip down memory lane. We’ve come a long way :)

  • Sorry to hear you are having trouble with the buzzer. It might be worth watching the voltage on either side of the buzzer, however I’m not confident that your multi-meter would react fast enough to see anything. The “buzzes” are really quick, and they are actually a PWM signal, which multi-meters aren’t the best at seeing. If you have a scope, that would be a great way to verify the signal is working.

    Another approach: I would recommend checking the leg off of the IC that controls the buzzer for a good solder connection. It is the upper left most leg on the left side of the IC. If the leg is not soldered properly (or there is an accidental bridge to the adjacent leg), then this would prevent it from actually making noise. Hope this helps!

  • Hi there! We now call the top layer the “frame layer” cause that’s a little more clear when designing waffle-top testbeds. When we draw the frame layer, we follow these steps:

    1) copy the outline dimensions of the board-under-test into your testbed design(frame layer). 2) move the board-under-test outline to the reference layer. 3) draw the frame lines on the dimension layer directly on top of the board-under-test reference lines. At this point you can either draw in the “corner cutouts” as squares or circles. Or you can wait to do it later. 4) make sure all lines (both the reference and dimension) are 0.008 inch wide 5) set your alt to 0.016 inch 6) move the frame dimension lines out one alt click (0.016 inch). We have found with our fab house, this is the correct size gap between board-under-test dimension line and frame dimension line.

    Most fab houses don’t have a problem with strangely shaped cutouts. One tip though - if you want a space milled out, it’s a good idea to include a text object on the dimension layer with the words “ROUTE OUT” in the space you want removed. Otherwise, it can sometimes just come back as a line in the top copper.

    Yes, we use pointed for vias, and round for pads. This can help avoid scratching up the test point too much.

    Hope this helps, and good luck with your project!

  • Sure can! Use the 3.3V logic version, and supply power with batteries. Although, if you have a 5V version, you can change the logic level by changing the solder jumper on the bottom side of the board. Also, we wrote a tutorial on how to reprogram the Simon Says that may be helpful. The hardware is pretty similar, and it has the same bootloader. Good luck!

  • Let the countdown begin! I’m looking forward to setting up our simon says trampoline project! Although, it’s a little too chilly these days for a dunk tank, so I guess the reward for winning will only be more glorious blinking LEDs. Or maybe… candy!

  • Hi NatL, Sorry we do not carry that inductor alone on our website, but you can pick one up from digikey here

    Hope it goes well!

  • Also, because some of the ISP lines are used to control the screen, it made more sense to put “free to use” IO on the headers. Although it will be time consuming no matter what we do, we have already found one solution that makes reprogramming a little easier for us. We were able to modify our current programming pogopin adapter to contact the ISP lines while still keeping the PCB inside the bottom piece of the enclosure. This enables us to reprogram without entirely disassembling the product. Every little thing helps!

  • Thanks for the kind words Tim. We were planning to revise this design to include proper 0603 footprints for a while. When I read your comment I thought, “hmmm… There might not be space, but I’ll give it a try.” I’m always up for a challenging layout :) Hope your low-power projects are going well!

  • I added a randomSeed from A0 (during setup) and it seems to have solved the issue. I’ve played 5 rounds (each time with a power cycle) and it gave me a new unique order each time! Thanks again for catching this and commenting about it here.

    I just committed my revised code to the github repo, so if you have a 3.3V FTDI basic you can upload the latest sketch and try it yourself. We will be pre-programming all of our ICs for the kit to have the latest code, so all future kits should have the correction.

    I like your approach for the shuffle, but I have a few questions:

    1) Would you store all of this data in one long array? Or would each pairing be it’s own two-spot array?

    2) Once you’ve plugged in a new set of random sorterValues, How would you sort them?

    3) Does randomly choosing from 99 options (rather than 15) increase the randomness significantly?

  • Thanks for letting us know! This may have been overlooked during beta testing because there wasn’t much power cycling going on - just a whole lot of playing rounds! Either way, I wonder if a call to the randomSeed() function on an unused analog pin could help get the first game to be unique.

    The shuffle_sequence() function actually proved to be one of the more challenging parts of the code. When I first started writing that function, I looked around a bit to see if anyone else had some “shuffle code” in C++. I found this article, which proved to be quite helpful, but the solutions provided were still quite long and I wasn’t sure how well some of the lines would work within Arduino. I ended up using the built in Arduino random function to choose my index for each pull. I guess it turns out the first time you call the Arduino random(), it really isn’t that random. It’s still interesting to me that the first game sequence is exactly the same on each power cycle. Has anyone else experienced something similar when using the build in random() function?