I was sooooo over confident. I did assembly of the first board at about 11pm last night and when I went to bed about 12:45 I was fairly certain that things were all working:
The six red LEDs at the bottom are a Charlieplex and I had two that lit up which indicates that I put one on backwards. A quick rework and everything cycled. I congratulated myself for rolling a design without testing the footprints and not making any mistakes... but I was wrong.
At lunch I ordered a solder stencil because the old syringe method last night was painful (hence the 1:45 assembly process). I want to do at least 30 of these boards so making the paste application easy is a must. I went to each lunch and suddenly realized I hadn't tested any of the buttons.
When I flashed code with the button handling enabled, the LEDs didn't come on at all. I tried a simple, non-debounced button read and it also didn't work. A check with the multimeter showed 3.3V across the pull-down resistor and that shouldn't be happening.
I quickly ate lunch while scratching my head and came up with this:
I used an existing schematic symbol and then altered a footprint myself to match the button's datasheet. Can you spot my mistake above? Look at the silk screen; pins 1 and 2 are electrically connected inside the switch. I needed to route to pins 1 and 3 or pins 2 and 4 for the switch to work.
The footprint is not square so I can't rotate the buttons. I need to reroute. The similest thing I could think of for the 15 boards I have on hand is to slip the lead on one side of the switch, and jumper the pad to the one below it:
Not bad, huh? This will work for now. I was going to order more boards anyway so I'll fix the routing for rev2. I may still use these boards and just rework the switches by hand like this, we'll see. At any rate, it's not nearly as painful as it could be since I will still be able to use the stencil I ordered.
Everything else worked great. I accidentally ordered 0201 decoupling caps instead of 0603 but I had some 0805s lying around and they just barely fit the footprint. I need to put in another parts order anyway since I only picked up enough red LEDs for 9 boards (and already dropped one so we're down to 8).