redid based on sparkfun design