Capacitive Coupling Casestudy: Programming The Public Radio without removing it from its sealed shipping box

2017-03-18 13_12_32-the public radio

You’ve probably heard about the refreshingly simple Public Radio (TPR). There is no tuning knob needed since your TPR magically knows your favorite station straight out of the box.

Like most magic, this illusion of simplicity involves a lot of work behind the scenes. Each TPR has to be custom programmed by hand, assembled, and then lovingly packed before being shipped to your door. If only there was a way to program an assembled TPR without opening the sealed box…

tldr; This is a real-world example where captive coupling turned out to be a cheaper/simpler/better choice than inductive coupling for wireless power and data transfer.

The Challenge

We want to be able to remotely program the ATTINY micro-controller on the TPR’s board with user-selected station data without removing the board from the assembled unit, and without removing the unit from the sealed shipping box.

The TPR ships without batteries, so we also need a way of providing the board power during the programming operation.

Since this remote programming function will only be used once in the lifetime of the product, it has to be extremely cheap to to implement with minimal additional parts.

Finally, we don’t want to do anything that messes with the TPR’s beautiful minimalist design.

Is RFID right for in-box downloads?


Inductively coupled RFID tags are super cheap, self powered, and some are even self programming. We even have a speaker already in the design that we could use as our pick-up coil. Problem solved! (?)

Inductive Coupling Fail

2017-03-18 15_51_24-Edit Post ‹ —

It turns out that a flat steel jar lid makes an excellent magnetic shield. The field strength needed to punch though turns out to be enough to fry an Arduino almost a foot away!  On to plan C…

Capacitive Coupling to the rescue!

I’ve long been a big fan of capacitive coupling in the right situations, and this would seem to be exactly the right situation. We already have two existing big conductive planes (the lid and the circuit board ground plane) ready and waiting to become our capacitor plates, and their geometry just happens to line up perfectly with the long axis of the shipping box!

A quick mock-up proved that we were at least in the ball park of practicality.

2017-03-18 15_43_12-Get Screenshots from YouTube Videos.png

A mock TPR inside a mock shipping box – TX & RX plates close together

Going the distance

The transmit and receive plates in the mock-up were very close to each other. In the actual gift box things are much farther apart.

2017-03-18 15_36_35-2017-03-18 15.24.49.jpg - Photo Gallery

An actual TPR inside an actual shipping box- TX & RX plates far apart

With capacitive coupling, bigger distances demand bigger voltages. We needed a transmit signal with hundreds of volts of swing.

This seemed like a perfect excuse to use a resonant LC tank with the transmit plates as the C(apacitor)- at least in in theory. In practice, things get complicated fast when you are trying to drive 1,000 volt oscillations with real-world transistors. Nothing was working even after hours of effort.

Two Plus Two Equals More

Sometimes when you get stuck on a problem, a fresh perspective can get things moving again. When it comes from someone who has has years of experience designing massive power supplies that cost more than house, the fresh perspective is likely to be a very helpful one.

The suggestion: use a simple step-up transformer to generate the high voltage signal from a low voltage one. Brilliant, and a solution I never would have thought of on my own because of my deep resonance obsessions.

After about 5 minutes of hacking (with a hacksaw!) on an old wall-wort, I had a suitable 10x step up transformer.

2017-03-18 16_17_08-2017-03-18 16.11.22.jpg - Photo Gallery.png

Wall-wort hacked (literally) into 10x step-up transformer

Only a few minutes more of fine tuning produced 375 volts of swing on the transmitter plates!


375 volt swings the easy way – yellow input, purple output

It works!

Even this super simple prototype works well enough to blink a pair of LEDs inside the TPR while it is inside of the shipping box.


A battery-less TPR blinking an LED from inside its shipping box

Demo video

Needs more work

We still need to actually build out the circuitry & software to boot up the ATTINY on capacitive power, listen for the programming data, and write the configuration into flash or EEPROM. I expect all this can be done with a couple of $0.01 diode arrays, the existing decoupling cap, and an extra IO pin. If we really wanted to push it, I bet we could even use the built-in protection diodes for rectification for true a zero-parts, zero-cost solution.

Opening up a reverse-channel so the board can communicate back to the programmer would additionally allow the operator to verify that programming went ok before shipment. I’m not sure how to do that with the current configuration, but it will probably involve having the TPR short its plates together and then having the programming fixture detect that change. LMK if you have any ideas!

Own one

Like the idea of owning an object that was specifically tuned to your personal tastes?  Sign up for info info the next batch, coming soon..

2017-03-18 20_11_26-The Public Radio — the public radio.png




    • bigjosh2

      Ah yes! I have successfully prototyped this (originally by accident) and this would be the technique I would use if The Public Radio wanted to move forward on non-contact programming! Turns out that if you dial back the CPU startup speed and sleep immediately on power up, you can build up enough power in the decoupling caps to run a full programming cycle, using long “on” pulses between steps to top off. It does take careful design and software and timing to make sure you do not run out of juice part way through.

      Note that you must use EEPROM rather than flash since a flash programming cycle takes a huge amount of power. This limits the amount of config you can program, but for TPR it is no problem.

      Have you ever done this in a production system?

      • keithfromcanada

        While I’ve experimented with a number of other things, I’ve never even tried an LED light sensor prototype, as I don’t have a use for it. I’m more of a ‘metaguru’ than a guru, as in “I don’t know how to do it myself, but I know someone who does.” 😁

Leave a Reply