Yeah, this is a much better way to do it.  Closes #1
Added lots of commentary to explain the AVR code.