BLF driver programming key v3.2 launched on Oshpark

I like the idea, but which drivers can we flash with it?

Lexel has said that as he moves forward with new driver designs, they will be made to work with this programming key. Also, anyone who wants to may create compatible drivers.

Mostly, I just want this to be a thing… like, yesterday. And I hope we can get someone to manufacture keys and sell a flashing kit. It looks like a huge upgrade to how we’ve been doing things, and it could enable the use of smaller and fancier MCUs.

Lexel, this is huge and awesome. Great work!!

Please don’t make it fiddly, having to play with croc clips and stuff. Make it fit one way and easy to connect.

Lexel, I must apologise. Somehow I had got the wrong impression that you were duplicating the 0.1 inch pitch connection that has been around for ages.

I now realise that you have chosen the 0.05” (1.27mm) pitch micro key, which is the correct decision.

The “standard” pad layout is the same, just 1/4 the area.

The tindie micro key (others may be available) shows a reasonable looking pad layout, with a square pad to indicate correct alignment. I’m not sure how more “foolproof” it needs to be.

See https://www.tindie.com/products/madworm/tiny-avr-isp-pogo-pin-programming-adapter/ and look through the photos.

My suggestion would be to include the USBasp circuit on the key, make it an integrated solution, micro USB connector.

See e.g. USBasp - USB programmer for Atmel AVR controllers - fischl.de for some ideas. Perhaps there are more recent developments ? I just have the FastTech USBasps which seem to still do the job, but connecting them up is a pain. An integrated pogopin key that you just have to press against the back of the driver would be marvellous.

PS: If it could also do fuse restore using HVSP that would be icing on the cake.

That would typically fry the rest of the driver. HVSP usually involves unsoldering the chip first.

I just found this thread, and I really like the idea.
I have one suggestion, redo the layout so it is skinny, especially the tip with the pins. That way it’s as maneuverable as possible. It should feel like a probe when handled, not like a car key That fat handle was designed for twisting an ignition switch.

Yes but no. The pogopin adapter connects to the necessary pins I think. But they may, or may not need to be isolated from the rest of the driver during HVSP. The obvious one being the reset pin that gets 12V up it.

As for the other pins, it depends what’s attached to them, and whether they might give some interesting flashy effects during the process, or stuff the attached circuity if normally configured as an input. If so, maybe a series resistor would prevent that. That’s also if the LED was still connected.

To disconnect at least the reset pin would be traditionally done with a zero-ohm resistor. But can also be done at zero cost with a suitably designed track-cut area on the driver. Skills and a scalpel required. Then the track cut reversed with a solder splash over the top.

Or be radical, and add a seventh pin and maybe a small diode or FET to do this automatically.

Or reverse this idea, make the connect/disconnect points part of the layout, solder bridges connect them by default, remove it with skills, a sucker or braid if you need to reset the fuses.

Anyway it’s just another bonkers idea that would cost nothing to implement on drivers, if area permits. And for anyone into bespoke firmware (the whole point of this) it takes away the risk of bricking a driver. With all the nausea that would follow if already built up into a torch. Or simply the cost of the driver and sheer inconvenience of bricking one.

A quick google: https://www.instructables.com/id/AVR-HVSP-Fuse-Resetter/

Interesting that a tiny remote control 12V cell is enough to do the re-set.

Now, my idea is to combine the USBasp functionality with the AVR re-setter into one MCU and build the whole thing into the key. One MCU, already connected through the six pins. An exercise for someone to combine the code.

Driver designers might have to step up to the mark regarding circuit design, but it doesn’t look particularly difficult. Nor should it add to the cost, except for maybe one transistor and a few Rs. Even if very few ever use it, it could prevent many problems for developers, who may not have the skill, equipment, time or enthusiasm to de-solder, somehow connect (forget clips, decent MCUs are going/already leadless), flash, re-solder, try again. Better than tossing the driver.

Just throwing out these ideas in the hopes that a few might get some traction. This doesn’t have to all be done at once, just the 6 pin plain ISP 50/1000” connection will be a great start.

Integrating everything including HVSP is doable but far too much development work for the limited field of application in my eyes.

I think it’s easier to keep the board with the pogo pins separated and use a connector with the same pinout as the USB ASP programmers, so they can easily get connected without problems. With some (small) drivers a different pogo pin layout might be necessary due to space restrictions, a separate pogo pin board would here be better as well.

so is HVSP is just 12V to the reset pin thats easy accessable on the key using the R pin, just on your USB stick you got to disconnect 5V

Basically all BLF driver designs have reset pin of the MCU insulated anyways
Most drivers have a shottky diode on Vcc so you do not have to bother powering up the rest of the driver

Last 7 days in Hospital I worked on Lantern driver

Feedback put in the latest version, I made it a bit shorter, but added one additional aligning pogo pin pad

the USBasp header is optional, of course a 90° version might be also a good idea, depends what you equip

The USBasp header looks like a nice finger pad.

Would it be possible to add a solder pad for pin one in case someone wants to use it for something one day?

There is a device for arduino users that should make fuse resetting easy. I haven’t looked at it too closely but it includes the source code.

What is the reason for the programming key? Is the programming clip unreliable or using up too much board space?

IIRC, the ‘reason’ for this is to design future drivers to make use of this for convenience. No more fussy clips (maybe not all are fussy, but some are) and sometimes the MCU is legless, so a clip would be useless. Then there’s the access. Using a design like this makes it easier to flash while the driver is still installed in the device. That’s another point for convenience. There are already some drivers that feature vias for pogo pins so that the driver can be re-flashed. So, the idea was already there before this key was made. But, the key will make it easier for drivers that are designed to make use of it.

Sorry, but it’s a bit more complicated than that. AFAIK 12V has to be applied to reset, the MCU powered up from e.g. 3.3V, then some complicated talking (serial protocol) with the attached device. Several other pins involved.

Bigger chips can use a parallel programming solution, but you really don’t want to go there.

This is no different from attaching an USBasp or any other sort of asp e.g Arduino. Except for the high voltage and the different chattering that has to go on to re-set the fuses.

I am well out of my depth here, but the entire substance of this idea is to eliminate the clip and make/copy a standard pad layout for a pogo pin adapter/key. Preferably on the backside (accessible) of the driver without disassembly. But if that is not possible, the other side. Six pads including couple of location vias cost nothing, provided there is room. The fuse re-setter is just my mad idea, would be nice to have but not important (unless it can be done at minimal cost, I think so, but it would take effort to develop and I think we are over-stretching our firmware specialists already).

Basically, please forget I ever mentioned it.

PS: why we call it an asp:

https://en.wikipedia.org/wiki/Asp\_(reptile)

With thy sharp teeth this knot intrinsicate
Of life at once untie: poor venomous fool
Be angry, and dispatch.

—Cleopatra, Act V, scene II
Antony and Cleopatra

My dog knows an asp when he sees one, they are the only venomous snake in the UK (Adder) and gloriously bountiful where I live, but his instinct kicks in and he walks, or usually runs, away. As do the snakes.

I really welcome the idea of a programming key, as it would allow to program drivers that are soldered in or have short leads to the led. Or just not to have to pry out the SRK driver every time.
After looking at several drivers I got some additional thoughts.

  • The 1.30mm spacing will not be a problem.
    This is a slight increase to the 1.27mm footprint of the Attiny, while still well in line of the pads.
    With recent Oshpark design rules this allows a 10mil (0.254mm) trace between 16mil (0.4064mm) vias. The resulting distance is still >6mil (>0.1524mm).
    Oshpark’s resolution seems to be fine enough to allow for a 0.03mm shift.
  • I’d use as much unmasked vias as possible (instead of pads) on the driver, to allow for self aligning of the pogo pins.
  • A (pin-strip-) connector on the key is good.
    With pin strip connectors you are not bound to a certain layout and can change from driver to driver if necessary.
    You could solder for example 4+3 pogo pins to it and can then use it for drivers with different pad layouts.
  • If you stick with orientation pins, I’d not connect them to GND. Depending on components on a small driver you might short something to gnd while programming.
    Even better: connect the orientation pins to unused pins on the pin strip connectors, making them available for other pin layouts.

I would also love to see something like this, help simplify a lot of things for new people like myself getting into the wonderful hobby. Hope to see this make it from concept to finished product!!!

boards are ordered but will take a while

Same here.

I just couldn’t help trying this out on some drivers of different sizes. TomTom has a point that a narrower key is better. So I tried 3+3 first. But I agree with Lexel as well, that some orientation guide is needed, I would not want to brick the MCU.

My favourite right now is a 4+2 design.

Especially as it fits quite easily inside the SOIC8 MCUs.
You need 6 pins anyway, plus orientation pin would make it at least 7 (4+3). Just leave it at 6, it wouldn’t be wider, and makes it inherently foolproof.

Like these.

.

.

.

.

.

Can hardly wait to get this going.
I like the 2nd one with all vias best, but I’m sure the others with 4 vias will align well.

Well, I think lexel's connector works pretty well.

I for myself would'nt really suggest anything better.