
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…
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
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.
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.
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.
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..
https://www.thepublicrad.io/production-preorder/preorder-the-public-radio
