Member Since: May 20, 2010

Country: United States



Rocket Scientist

Spoken Languages

English, Klingon

Programming Languages

Whatever best gets the job done, usually C. My favorite language was Modula-2 (look it up).


WPI, CU Boulder. Degrees in aerospace engineering and computer science.


Spacecraft systems engineering, embedded systems engineering, low-level firmware, 3D graphics and animation, and troubleshooting (but real trouble shoots back).


Hacking (the good kind), scuba diving, dumpster-diving for obsolete hardware, anything that flies (from bees to the Space Shuttle), birdwatching, sending stuff into orbit and beyond.



Sweeping legal changes are afoot that could change the hobbyist airspace for years to come. Your input can make a difference.

Continue reading

CubeSats will soon be traveling beyond LEO, and are available in a new compact size. We check in with the people pushing the limits.

Continue reading

On April 5th, teams from around Colorado will try out their miniature Mars rovers in the Great Sand Dunes.

Continue reading

How to handle the child for whom disassembling their toys is more fun than actually playing with them.

Continue reading

SparkFun returns to the AIAA Small Satellite Conference with more people, more stuff, and export-controlled sombreros.

Continue reading

What did you do on your summer vacation? These students are launching experiments on government sounding rockets.

Continue reading

You've just finished your new project. Before you apply power, here are a few tips to keep the smoke in.

Continue reading

Mike and Pete take a road trip to an innovative aerospace conference to find out more about the final frontier for amateur spacecraft makers

Continue reading

Rock-climbing researchers use clever dataloggers to solve a migration mystery and help save a species.

Continue reading

Your Personal Black Box

Inexpensive sensors and storage are giving us the ability to record our lives, revisit the past, and sometimes solve mysteries.

Continue reading

Sam Berrada dropped by to show off the sign language to speech system he designed. Did we mention he's in the 8th grade?

Continue reading

Cackling Apple Head Witch

October 30, 2014

Make your own cackling apple head witch to scare all of the trick or treaters this Halloween!

LTC4150 Coulomb Counter Hookup Guide

September 18, 2014

A "Coulomb Counter" is like a gas gauge for your battery. Here's how to use it.

BMP180 Barometric Pressure Sensor Hookup

January 9, 2014

The BMP180 is a barometric pressure sensor, this tutorial tells you how to use it.

TSL2561 Luminosity Sensor Hookup Guide

December 27, 2013

The TSL2561 is an light sensor that's very inexpensive for the accuracy it provides. Here's how to use it.

Getting Started with the LilyPad MP3 Player

May 8, 2013

The LilyPad MP3 Player is an amazing little board that contains almost everything you need to play audio files. You can use it to create all kinds of noisy projects, from MP3 hoodies to talking teddy bears. Your imagination is the only limit! This tutorial will help you get started.

What is a Circuit?

February 6, 2013

Every electrical project starts with a circuit. Don't know what a circuit is? We're here to help.

Serial Peripheral Interface (SPI)

January 14, 2013

SPI is commonly used to connect microcontrollers to peripherals such as sensors, shift registers, and SD cards.
  • That’s cold, man.

  • Steganography. But I’ve said too much.

  • It sounds like your TX link (from the GPS) is working correctly, but your RX link (to the GPS) is not. You should be able to run a simple serial passthrough sketch like the following, then quit the Arduino IDE and run the SkyTraq software. Connect the GPS TX to Arduino pin 2 and RX to pin 3:

    #include <SoftwareSerial.h>
    SoftwareSerial gps(2,3); // RX, TX
    void setup()
    void loop()
      char data;
      while (gps.available())
        data = gps.read();
      while (Serial.available())
        data = Serial.read();
  • Unfortunately that part was discontinued by the manufacturer. However you achieve the same result by connecting any 3.3V-capable supercap between VBAT (cap +) and GND (cap -).

  • It’s turned off by default but you should be able to turn on the GLL message (and any others you want) using the “GPS Viewer / Configuration Software” linked above. It’s in the “Binary / Configure NMEA Output” menu. The Venus will remember the change through reboots.

  • You’ll have to retrieve the time via the serial port (TX pin). If you want a pin that pulses once per second after lock, the PPS pin does exactly that.

    1. This GPS receiver will use about 100mA while it’s acquiring a lock after it’s turned on, and about 50mA after that. You can switch to a lower power mode by changing the “PSE” solder jumper from H to L; this turns off some of the channels. The trade is that it will take longer to acquire lock. There aren’t many other things you can do to lower power consumption besides keeping the update rate as low as possible. (You can set this in the “GPS viewer / configuration software” linked above.)

    2. For example code take a look at the TinyGPS++ library. It’s the most popular and easy-to-use GPS library and like most Arduino libraries it comes with examples that explain how to use it.

  • It’s a reasonable idea; unfortunately the maximum voltage the MCP73831 Lipo charger can take is 7.0V, which could be exceeded by the large solar panel. There are various tricks you could try to get it to work (use the smaller panel, use a zener shunt on the large panel), or you could use a Sunny Buddy solar charger instead.

  • The BMP180 is a popular sensor to use in weather balloons, but note that its accurate range is only up to 30,000' (9000m). It can’t do anything on its own, but if you hook it up to a microcontroller and a radio, it can give you live measurements.

    As an air pressure sensor, the BMP180 does notice gusts of air as higher pressure. This usually isn’t a problem on balloons as they travel with the wind, so it should normally be dead calm around them (at least until they burst). The BMP180 does need to be exposed to ambient temperature to get an accurate reading; I would personally put it on the exterior of the payload, but shelter it from direct sunlight. Happy flying!

  • Sorry for the late reply, this sounds similar to an issue we ran into with the SHT15. As it’s not a true I2C device, it wasn’t playing well with other devices on the bus, and locking everything up as you describe. Take a look at the older USB_Weather_Board code. In particular, we added a “connectionReset()” function to the SHT1x library, and in the main Weaher_Board_3.ino code we turn the I2C peripheral off when accessing the humidity sensor and back on when we’re done with it. This solved our bus lockup issues. Note that this code is for the SHT15 not the HTU21D, but they appear quite similar to each other so it may help here as well. Good luck!