A universal programming key that uses pogo-pins and vias/pads on a driver instead of a clamp to program the MCU, in our cases usually an Attiny 13A/25/45/85 in a SOIC8 package.
This is a follow-up on my post in Lexel’s thread.
I made a key in 2 versions, that kept the via spacing of 1.3mm/1.5mm that Lexel uses. See second post for measurements.
The 2 versions are electrically identical. Only the markings are different: More neutral letters on the first one, Pin numbers in my for now preferred layout on the second key.
The key-pcb is 10mm x 27mm.
At the pogo-pins the pcb is only 5.6mm, that will fit about anywhere.
When you only use 3×3, you can file the key even narrower.
HQ ProgKey v.1.12
HQ ProgKey v.1.14
The following picture shows a pre-version almost identical to the now shared projects and works very well. The pcb is 0.8mm thick. Pogo-pins are 0.68mm diameter, 16mm long (P50-B1).
Via drills on the driver are 16mil (0.4064mm). Distances are 1.3mm between left and right vias and 1.5mm between up and down vias (via center to via center respectively).
I bought pogo-pins from Banggood and from Fasttech. Both are extremely similar, although not identical.
So what’s all this about?
The Attiny MCUs are hardly reachable while in the flashlight, as they are usually on the inner side of the driver. So you have to take out the driver, which often means prying out and/or desoldering from a pill or the LED.
This kind of key is supposed to end this. You need 6 contact points to reach the pins needed to program the Attiny (Pins 1,4,5,6,7 and 8). The advantage is that these contact points can be on the spring side of the driver and can be reached while built in. Finally, true ISP (In System Programming).
The idea is to implement contact points in future drivers. After my fist successful programming via a key, I’m now reworking drivers that weren’t even due. It opens so many possibilities, like, adapting ramping tables, updating firmware, correcting moon levels, testing new firmware, all in the light with a real beam…
Toykeeper is hoping for a universal key, like ‘one-for-all’. My key here is meant to push the idea further and to find at least some common ground.
Lexel uses a 3+3 key, but he already did not use the pinouts that are found in Wikipedia or other similar keys that are to be found online. So for now we’re not following any standards here. In addition he added pins to prevent wrong orientation, which I prefer, too.
I started testing these contact points in several of my drivers (small and large) and I second Lexel’s spacing (0.4mm vias, 1.3/1.5mm distance) as well. It allows for a relatively small key while giving space for traces which are sometimes imperative.
But I did not find the given pinouts very suitable and at first preferred a 4+2 with the lower 2 in the center. On other drivers I found a different 4+2 (lower 2 on the outside) much better to route. And on a certain 17mm driver only a 3+3 will work, but yet another pinout than any of the before… In the end I can’t (more: won’t) decide for a single pattern even for myself.
My 4+4 key is universal for all this, for now, as you you can use 8 pogo-pins and pin strip connectors to apply any combination you want within the 4+4. Or you can solder only 6 pogo-pins any way you like (4+2 / 3+3). This way it could be adapted for Lexel’s future drivers as well.
Let’s see where this will lead us, but I believe this will be a huge step up for those of us who like to flash our own drivers.