Slapped with a Routing Error

A project log for CoinOp Badge

Hardware badge inspired by my favorite Coin-Op video game

mike-szczysMike Szczys 07/06/2018 at 22:579 Comments

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).



Arduino Enigma wrote 07/08/2018 at 03:36 point

Of course they are always connected. But I can run a signal to the top right pin and  use it on the top left pin knowing that the button will bridge them.

  Are you sure? yes | no

Arduino Enigma wrote 07/07/2018 at 16:25 point

That's a hack!

  Are you sure? yes | no

Mike Szczys wrote 07/09/2018 at 20:18 point

Thanks! I'm waiting for a solder stencil to arrive mid-week and then will see about populating another 16 boards, including this switch hack. I figure i can just clean off the one pad before placing the component and then this will be a snap.

  Are you sure? yes | no

deʃhipu wrote 07/06/2018 at 23:30 point

That is a classic one! I hit it so often, that I actually started using footprints that only have two pads connectable, and the two other pads are only for mechanical mounting. Another thing that works is to always connect to diagonally opposite pads — you can't go wrong then.

That fix, while it adds a little bit more labor to the assembly, actually looks quite good and should work well. Good idea!

  Are you sure? yes | no

Jan wrote 07/07/2018 at 12:24 point

I switched to smaller, 2-pin buttons because of that. Why can't those button-footprints be square!
@Mike Szczys glad your design left 2 pads unconnected, so your workaround is possible without too much tinkering...

  Are you sure? yes | no

Arduino Enigma wrote 07/07/2018 at 16:27 point

I like to use the internal switch connections as free jumpers on the top side of the board...

  Are you sure? yes | no

deʃhipu wrote 07/07/2018 at 19:29 point

How does that work? You can't really choose whether to connect them or not...

  Are you sure? yes | no

Mike Szczys wrote 07/09/2018 at 20:19 point

My mistake was using someone else's schematic symbol, and editing someone else's button footprint to fit mine. The result is the wrong pads on the schematic map to the footprint.

  Are you sure? yes | no

deʃhipu wrote 07/09/2018 at 20:22 point

Ah, that's tricky, since the schematic looks correct then.

  Are you sure? yes | no