[Oshpark] BLF SRK FET v3 (46mm / LFPAK56 / Dual+Triple Channel / ATtiny13A+85)

BLF SRK FET v3
.

A very versatile dual/triple channel driver for Sky-Ray-King style flashlights.

An adaptation of the BLF SRK FET v2 by RMM, which evolved from the original BLF SRK FET driver by Mattaus, Comfychair, WarHawk-AVG and many others.

.

Latest Version: v3.6
with Vias for a Programming Key

.

.

.

Signature part is still the QuadPad, that allows to freely use Pin6 and Pin 3 of the Attiny for dual or triple channel with the FET and/or the bank of 7135s.

(picture)

.

Version History

v3(.0)
First version, introduced in this post.
Triple Channel and LFPAK56

v3.1
Narsil support, became outdated quickly after DEL’s testing of FET drivers

v3.2
Support for ATtiny 25/45/85 (Narsil) and DEL’s R5
This version kept most features of the BLF SRK FET v2,
as well as several redundant component places for testing purposes

v3.3
Updated version featuring

- Triple Channel with 11x AMC7135

- LFPAK56 MOSFET

- Supporting 13A and 25/45/85 (Narsil)

- R5 for ringing protection

- Indicator LED at MCU pin#3 or pin#7

- Dedicated bleeder resistor from Bat+ to GND

  • Wider path from GND to FET source

v3.4
Optimized for High Current

v3.5A
C3 and C4 added

v3.6
Vias for Programming Key
Performance optimizations

.

.

.

BLF SRK FET v3(.0)
.

First notable change is the use of an

  • LFPAK56 MOSFET

Then there are

  • 9 additional AMC7135 (Q2-10) for a high mode without PWM

And you can use

  • Pin3 as third channel and connect either the FET or Q2-10 to it

Pin5 is hardwired to the single 7135 (Q1) for the low modes.
Pin6 and Pin3 can (using a fancy 4-pad-connector) alternatively be connected to Q2-10 or the FET. Use Pin6 for the channel you want to PWM, be it the FET or Q2-10. Use Pin3 for the channel you want to just switch On/Off.

.

.

.

You can still use it as a dual channel SRK FET driver with LFPAK56: Connect Pin6 to FET using a zero-Ohm-resistor and you have all the functions of the v2 driver but can use the NXP MOSFETs.

.

But the additional 7135s are where the fun begins:


The OTC was just for testing.

.

This particular driver has the FET connected to Pin3 and Q2-10 to Pin6. It has 6 modes:

Off - [0mA] - (Pin5, Pin6 and Pin3 OFF)
Moon - [~1mA] - (PWM-2 on Pin5, Pin6 and Pin3 OFF)
Low - [35mA] - (PWM-34 on Pin5, Pin6 and Pin3 OFF)
Medium - [350mA] - (Pin5 ON, Pin6 and Pin3 OFF)
High - [3500mA] - (Pin5 and Pin6 ON, Pin3 OFF)
Turbo - [All-In] - (Pin3 ON, Pin5 and Pin6 OFF)

Moon and Low use PWM at 19kHz (9.6MHz, Fuse7A, PhaseCorrectPWM, Divider1).
Medium switches Q1, High switches Q1 and Q2-10, Turbo switches the FET.
I could now PWM Q2-10, but I don’t need to: the mode spacing of 35-350-3500 is still my favourite.

.

Oshpark links, eagle pics and changelog later. This driver lies on my workbench and begs for attention… :laughing:

.

EDIT:

Oshpark Link

.

.

Eagle Layout

.

A closer look to the main section

Changelog

The basic circuit follows the one BLF SRK FET v2 by RMM is using. I deliberately designed v3 to only add functions and kept all that was already there, including 2S support with LDO, OTC, Temperature Probing, Switch Pads for Pin 2 and 3, Gate and Pulldown Resistors, Star Solderpads, 5 LED Wire Pads.

You find a detailed partlist when you follow the link to v2, so in the following I stick to the changes and additions.

FET
LFPAK56 instead of D2PAK package

Channels
There are now 3 channels for current regulation

  1. The single AMC7135 (Q1)
  2. The FET
  3. Up to 9 AMC7135 (Q2-10)
    Pin5 of the MCU is hardwired to Q1.
    Pin6 can be connected to the FET or to Q2-10
    Pin3 can be connected to the FET or to Q2-10 as well
    The selection is done with the 4-pad-connector:
    Bridge the pads vertically to connect the FET to Pin3 and Q2-10 to Pin6 (like I did above)
    Bridge the pads horizontally to connect the FET to Pin6 and Q2-10 to Pin3

Capacitors C1/C2 (for MCU, LDO)
I redubbed CLDO as C2
In 2S configuration with LDO you need both capacitors

Momentary Switch
Connect one cable of the switch to SW- (=GND) and the other cable either to SW(2) or SW(3), depending on whether the firmware uses Pin2 or Pin3 of the MCU (Pin2 is commonly used)

Nice work HQ. Its a shame I dont understand most of it. Thats my fault. No one elses.

Thx MRsDNF. If I had a fraction of your skills with a lathe I’d be a happy man. :slight_smile:

You crack me up. :laughing:

Well this looks very nice.
I am with MRsDNF that most is not directly understood by me (and that this is my fault)
I think it looks nice enough to be used for that special BLF watch Kronological was working on, besides just put it away from sight in a SRK :wink:

Oshpark links, eagle pics and changelog added

Nice work. Basically it is like the tripledown driver in big? Can you please share your firmware?

seems like similar functionality but with bonus goodies in the design.

Kudos Harley

Very nice driver, and I love the x10 mode spacing!

Incredible!

Great job!

To be fair my inspiration for triple channel stems from @wight and his long retired A17-Hybrid driver. We owe him a lot.

But, having said this…

Same to you, PD. If it wasn’t for you, triple channel might never have come out of its niche. So thanks for taking the time to develop and publish your drivers, I know how much work it takes.
:beer:

Admittedly I stopped following TripleDown when it went to Bistro / Narsil, so I can’t say at one glance whether this v3 driver is compatible to TripleDown or not. I still stick to the good ol’ 13A. It was so time-consuming for me to understand its functions and to adapt the firmware, that I don’t muster the time to add another MCU to my portfolio, yet.

.

@WarHawk-AVG
Thx for stopping by, been a while :slight_smile:

I haven’t left the the 13a either. There are very different versions of the TripleDown with different purposes, your “quad pad” thing accomplishes most of the differences. The firmwares should be mostly compatible, just without the other goodies you added

Well, errr, it’s nothing but an adapted version of JohnnyC’s Star Momentary, made for ATtiny13A, and very clumsily set up (simple if mode_idx==…, then…), embarassingly without good commentary, as I always change the code and don’t adapt the… commentary.

- sigh -

I’ll see what I can do.

.

Good to know. I’ll need to take a closer look.
Oh, and the “goodies” are not mine. It was RMM who added all the fancy stuff in BLF SRK FET v2, I just left it in the design.

I thought I had this github thing figured, but I can’t get it to work atm.
ok, plan B:

This is the main part of the code. Triple channel for ATtiny13A. Very simple, very straighforward, very memory consuming.
But… it works

.

Here’s my aide-mémoire:

Thanks, if you get github up and running I would like to download the whole .c if this is possible. I try to get a tripledown driver to work in a dual switch light. But the e-switch does not change modes so I’m a little stuck at the moment and thought maybe your firmware would work with the tripledown driver and e-switch.

Here you are:

https://github.com/HarleyQuin/Flashlight-Firmware/blob/master/STAR_momentary_BLF_SRK_16.c

Please remember it’s for ATtiny13a and only supports momentary switch.

Changelog to the original STAR Momentary v.1.6, from the top of my head:

- Renamed definitions for Port B

- Included a variable called highest_mode for mode change

- Removed wrap-around at mode change

- Included a 3rd timeframe (very_long_press_dur) for turnoff and straight-to-turbo

- Changed output routine (set_output())

- Each mode has (and needs) its own if…then routine (change the variable highest_mode if you add or remove modes!)

- Pins 5/6/3 can be turned ON or OFF (no PWM-0 or PWM-255 needed)

- Pin_3 set to output

- Added blinking 3 times in Low-Voltage-Protection

  • Removed what I deemded not necessary for my build, but don’t remember all of it…

I hope that works for you. If not, give me a note and I will help out the best I can.
HQ

Nice Job on this! There's sooo many pad/options, trying to trace them is mak'n my head spin! But I see how a lot of it is working.

I also see you are using a FET gate pulldown, 33K, but not using an Rgate resistor - did you find it necessary? I've used anywhere from 12K to 47K for the pulldown, but we assume can go up to 60K or so. I've settled for 47K for now on the BLF Q8 driver, but haven't scoped it. For the Rgate, we are using a 100 ohm, and I see Richard recommends a 10-50 ohm.

Yes, RMM recommends 20-50 Ohm for the gate resistor, but he kept quiet about the pulldown resistor. I don’t have a scope so I just kept reading what these R are for and how their value should be. This is not as easy as it looks, as both are often referred to as “gate resistor”. And the funniest calculation was this, which the author deemed as minimum knowledge needed about gate circuit resistance in MOSFETs. Well, he lost me at point 1…

So this was my train of thought:

Although frequency does not really matter in my design (no PWM), spikes will in all probability occur at switching. Now I’m not sure which of the two R prevent that, so my intention is to use both.

The pulldown resistor is said to be necessary to keep the gate from floating. Values between 1k, 10k and 100k ought to work. BLFers had good testing and scope results in the tens of kOhm, so I used the nearest I had which was 33kOhm.

The (series) gate resistor shall protect the output pin of the MCU by preventing overcurrent. There’s talk of values between 10 and 150 Ohm. I have no such value at hand… Well, the Attinys are said to have overcurrent protection although I couldn’t confirm it. But a lot of BLF FET driver were built without a gate resistor, so I dared to build it with a 0-Ohm-resistor for now. But I plan to use a gate resistor after my next parts order, because it might help preventing spikes, might protect the MCU and will not hurt the output. I thought of 50 Ohm, but I’m open to suggestions.

.

Err, another thing, while we’re talking resistors… R1 and R2 (LVP).
How high can we go to

- keep parasitic drain as low as possible

  • while still get reliable voltage measuring from the MCU?
    With my values of 33k/8k2 (I still prefer behind D1) I measure a parasitic drain at sleep_mode of 0.25mA. Now you use (before D1) 220k/47k for ages and probably with good measuring. One might think of even higher values, like 2M2/470k, 22M/4M7. Is there a limit where the MCU will not be able to measure the voltage anymore? Could that be calculated?

Can't recall, maybe Mike C tried higher values for R1 and R2 - he said what those were, can't recall - hgiher than my 10X though and pretty sure proven to work fine. I used 10X factor because I had them, common sizes. But I also bought limited qty of values bout 3X higher than that, effective cutting the R1/R2 drain by another factor of 3 -- didn't try this yet. Dunno if there is a theoretical limit on the values, but 1M or 2M for R1 sounds familiar think it was tried and worked.

The 13A is well proven to tolerate spikes better than the 25/45/85, so, these gate resistors are probably not needed at all on a 13A, but on the scope, things look much better with them.

More important for reducing parasitic drain than tweaking higher R1/R2 is making a correction in the firmware to shut down the AtoD when goin in sleep mode - forgot the difference but it's big. First recommended by Halo in the 24/45/85 thread - dunno, others might have done this in custom firmware but as far as I know, none of the standard open source versions do it.

I'm seeing 0.007 - 0.009 mA drain in a few stock better lights, so it's done and out there. For me, I just think no one should have a concern about draining the battery simply because it's left in an e-switch flashlight vs. a power switch light.