BLF driver programming key v3.2 launched on Oshpark

Yeah, the 1+2+5 is planned for my Emisar D4 mod with Nichia Optisolis LEDs where I don't need a FET.

Also, I'm still thinking about changing the anduril ramping code a bit so that there is a maximum number of "non-pwm" levels.

Currently, non-pwm levels are just 1x7135, 3x7135 and full 8x7135.

If I find enough time, my goal would be to have stepped ramping with the non-pwm 7135 levels 1, 2, 3, 5, 6, 7, 8.

Maybe I'll leave out 6 and 7 as those maybe have too little change in brightness.

Also: Thanks, i usually spend a big part of the time making my layout look nice and "flowing" instead of crossing traces everywhere.

Even tho the Moonlight channel is not regulated as it is just a series resistor to a MCU Pad, it should work just fine.

Yeah, I noticed that after ordering my PCBs. Typical error where I didn't check good enough

If you do that, instead of 1+2+5, I’d suggest doing 1+1+2+4 — with PWM only on the first 1x7135 channel. It lets you do a no-PWM level every 350mA. As an added bonus, instead of using 24 bits per ramp level, the ramp data can be condensed to about 11 bits per level, or 8 bits per level (plus 8 bytes and a couple extra lines of code).

      1   1   2   4
0-1  PWM  0   0   0
1-2  PWM  1   0   0
2-3  PWM  0   1   0
3-4  PWM  1   1   0
4-5  PWM  0   0   1
5-6  PWM  1   0   1
6-7  PWM  0   1   1
7-8  PWM  1   1   1

That sounds like a good idea, but the boards are already ordered and shipped.

1+2+5+M was a compromise as I could reuse the existing triple-channel ramping code and just add a extra switch for the moon mode where one pin is set to low if the level is 0 and else is set to High-Impedance.

1+1+2+4 looks good if you have enough pins, but light and human eyes don’t really work in a simplistic linear fashion, so I think it is a bit of a waste obsessing about the lowest levels and ultra-fine precision (i.e. the 1+1 end.

I suspect you will be fine with 1+2+5, and a bit of PWMing on two of the lower channels. Which might fit with smaller MCUs that have limited timer-counters.

With the moon pin you can actually set two levels of moon. One high level using the pin pulled up hard (20 mA or more) via an external resistor to set a reasonable current, the other value using the internal MCU pullup resistor, plus anything external. This has been demonstrated and worked.

Except it seems better to pull the pins down, rather than up, to match the way that the main current to the LED is usually arranged. Never tried it myself.

Then there is the FET to deal with, which still seems to be expected.

The linear fashion was sorta the reason why I went with 1+2+5+M. This way I can have 1x7135 after connecting power, 2x7135 as the ramp ceiling and 5x 7135 as a turbo mode.

Regarding the two levels, I think you mixed up aux leds and the main LED. Aux LEDs (connected to GND and the MCU) can have high (pin set to high) and "low" (pin set to pullup)

But the main LED is constantly connected to VBat and the GND side is switched/regulated. In that case, I can only have one moon mode set by the series resistor.

I agree about the 1+1+2+4+8+16 (etc) approach being overkill, and not incredibly useful. I think it’s a pretty slick method though, and wanted to mention it since what you have is so close.

I’m generally happy with FET+1 or FET+N+1, or more generally, putting power channels about an order of magnitude apart. I haven’t found it very useful to maximize the number of no-PWM levels. And on ramping designs, swapping channels around has a tendency to create mismatched joints in the ramp, so I try to avoid that.

yeah just see I made the mistake not taking into account that the design program has vottom side mirrored
so the 10 pin connectors does not work 1:1, reverse 4 soldered leads should be no problem

atm in customs with C8F 21700, MF04S, prototype D1S, D4, D4S, MF01 aux LED boards

And yesterday is… today :smiley:

It’s really that good.

The picture shows a 4+4 key and the driver I was working on at the time I ordered the key. The DD+1 driver is 17mm and just there for size comparison.
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 3x3, you can file the key even narrower.
Pcb width is 0.8mm. Pogo-pins are 0.68mm diameter, 16mm long. 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.

Just programmed a driver and it’s a hoot.

.

The size of the key is perfectly fine, can be put between thumb and middle finger with the index finger on top, gently pushing the springs of the pogo pins down. With 6 vias, aligning is of course a breeze.

Refined the key a bit, not much really. I’ll make at least two versions:

- A neutral one marked from A to H, where up to 4+4 can be used. With connectors any combination can be plugged on the fly

  • A key marked with the pin numbers of the Attinys in my preferred layout

.

EDIT: I shared them here

I also got my final revision 3.2 also launched now,

too bad I got made 120 boards here where the 10 pin header wont work and solder connection markings do not fit if want flash driver from bottom side
the pins are mirrored because I made an mistake looking in my program on drivers bottom which auto mirrors

Order in 2OZ for 0.8mm board thickness from Oshpark!

https://oshpark.com/shared_projects/o1pUPNqt

I got some that cant use the header as they were produced mirrored

applying solder paste one side
soldering pins to it and applying thermal glue for 2. side reflow

Both sides soldered, fine alignment of the pind with soldering iron carefully after that picture

Are you selling the assembled keys?

Yes, I have one.
But not jet soldered the cable on it.
Pogo-Pins are ready applied by lexel.

I see, how much for an assembled key shipped to the US?

for the mirrored key its 3.5$ shipped

I got ones that now also fit the socket 1:1 but need to assemble a few then running out of pogo pins

So the new ones can just plug right into the usbasp correct? I will wait for those then I will most likely buy 2 to play with.

HarleyQuin and Lexel, do you have pinout and pcb layout recommendation for the programming pin connector? I think it make sense to standardize something for easy use on many drivers types.

the only one for pinout and pad pattern I see so far is loneoceans pogoprog here: pogoProg - Small AVR microcontroller pogo-pin Header but it look like everyone using slightly different spacing and pinout?

Yes, a standard pinout and via pattern would be good.

Lexel, do you have a diptrace pattern for the via pattern you use? Thinking about adding this to the GT4 driver.

Diptrace Libary with different variants of them

http://www.metronixlaser.de/bilder/flashlight/programming.lib

Eh, 6 pads is so overrated… 3 is more my style :wink:

I’ll give 6 pads a shot, though. Lexel, are all v3.2 fixed (not mirrored)? Or was the mirroring only on the 10-pin connector? I had trouble flashing this board (my first attempt at using your pgm key), but I think it was probably my driver design at fault.

Quoting this to say I’m still hoping somebody does a complete flashing kit that includes all the cables, plugs, clamps, etc. and this key. Convenience is a strong selling point for me. I haven’t started flashing yet for various reasons. Having a complete kit to buy from one place would knock out a couple of those reasons. :wink:

EDIT: I’d still want the kit to include the usual programming clip because I already own some drivers that don’t have pogo pin programming on-board.

If I want the key to be used on the bottom of the driver, do I apply the via pattern to the bottom of the driver or to the top of the driver? I want to get the mirror issues right the first time lol.

I assume it should be applied to the bottom of the driver since not all the patterns use vias?