the Arduino's built-in shiftOut function only works for 8 bit shift registers. I rewrote it (with the help of Mikolaj's C-fu) to work for 12 bit shifting outing. The current function probably wouldn't work quite as expected if not using LSBFIRST, but we are so who cares...

Writing ints as B010101... only works for bytes. So, we could write a conversion function (i.e. myInt = (B00001100 * 256) + B10101010; // B11001100 is the high byte) if it's too confusing, but I changed the TurnMotorOn function's switch statement into a bunch of ints.

WHOA. Our FTDI pinout is totally not the same as on our BUB boards! So, I built a very ghetto little adaptor.

Update: It's actually the same but backwards - adaptor not needed, it suffices to flip the BUB board over. The biggest confusion was the silk screening of TX and RX, whether this should match the pins on the ATMega or the pins on the BUB board which are inverse of each other. I feel matching the BUB board is less confusing.

First attempt to program board: "avrdude: stk500_recv(): programmer is not responding"

It occured to me that the power switch does nothing when powered from the FTDI pins. While not a serious problem, we should try to fix this for consistency if it doesn't overly complicate to board.