A Dilemma, A Hedge & A Hack

A project log for Beeping, Blinking Business-card Badge (B4)

Second generation of the NFC business card adding audible feedback

greggreg 03/25/2021 at 03:040 Comments

To improve performance while operating from harvested power, the LPC8N04/NHS3152 suggest adding decoupling capacitors to a couple of the high drive GPIO pins.  There are four high drive GPIO pins that also happen to be the timer/PWM pins.  This allows us to use two for decoupling and two for the piezo buzzer.  The dilemma is that the SWD signals are also on two of these high drive GPIO, so I have to choose:  do I want to give up decoupling or buzzer when I am programming/debugging? 

I can provide power externally when programming/debugging, so I could easily give up the decoupling, but SWD may not work with the capacitors installed, so I may need to add and remove them often.  On the other hand, I only need to remove a single resistor to eliminate the load of the piezo buzzer, and if I use a large enough series resistor, SWD may even work with the resistor present.  But, if I share the buzzer with SWD, I can't use them at the same time.  To hedge my bets, I will put decoupling caps and a buzzer on both pairs so I can extend my indecision until I assemble the boards.

The buzzer is one of the largest parts on the board, so adding a second one adds bloat, but there is really no point installing them at the same time so they can share some space.  I placed them so they overlap on the board.  You might think the hack is ignoring all the placement errors in KiCad, but the real hack is that the silkscreen for the buzzers goes right over the pads for the other buzzer.  I know that OSH Park clears silkscreen off pads so I left it there.  I can clean it up in the next pass when I figure out which stuffing option to keep.