I spent over 12 hours wrestling with a microcontroller, assuming it was my software, or the linux VM, or the fact that I'm running it as a VM on windows 7, or, or, or... I looked at everything except the microcontroller itself.
Finally on a lark I swapped the microcontroller with a new one and Everything Just Works (TM).
Had I a shotgun and a back 40, it would be obliterated. As it is, I'm going to hang it up as a reminder to avoid assuming the hardware works.
The real kicker is that I can't, in good conscience, bill those hours to the client. I'll only be getting 6 hours for what took the better part of a week, for a project that should have been an easy afternoon task. It's also set me back on the other projects I have on my plate.
Still, it's good to have projects people are paying me for.