Astrolux MF01 Mini - Re-Flash Firmware to FET+1 Only?

Hi,

Has anyone re-flashed their MF01 Mini to use just one 7135 linear regulator, with the remaining dimming done in PWM on the FET?

LEXEL suggested it could be done in this thread (top of page): MF01 Mini / MT07- Mod/Upgrade - Copper Heatsink Cover Plate

Background:

The MF01 Mini is listed as a 5500 lumen flashlight, but in stock form it can only manage about 400 lumens of regulated (long term) light after stepping down from 5500.

It’s been suggested that the x7 7135 regulators on the driver board generate too much heat, with the MCU sited just behind them on the opposite side of the PCB.
A copper heatsink was made available for the 7135s (above thread) to try and correct this problem, but no one is making it any more so….I’m thinking of a firmware fix.

Anyone have any experience with this mod?
Where do you get the firmware from?
Any improvement?

Thanks.

Sounds like a good idea to me. No use in having 7x7135 if the thermal regulation prevents using all of them at once.

Firmware files: ~toykeeper/flashlight-firmware/fsm : changes

There are two main files that are specific to the MF01 Mini (aka Mateminco MT07):
Hardware Definition
Configuration File

WARNING: this is untested… but this should pretty much be the changes that have to happen

Existing PWM hardware def

#ifndef PWM1_PIN
#define PWM1_PIN PB0        // pin 5, 1x7135 PWM
#define PWM1_LVL OCR0A      // OCR0A is the output compare register for PB0
#endif
#ifndef PWM2_PIN
#define PWM2_PIN PB1        // pin 6, 7x7135 PWM
#define PWM2_LVL OCR0B      // OCR0B is the output compare register for PB1
#endif
#ifndef PWM3_PIN
#define PWM3_PIN PB4        // pin 3, FET PWM
#define PWM3_LVL OCR1B      // OCR1B is the output compare register for PB4
#endif

New PWM hardware def

#ifndef PWM1_PIN
#define PWM1_PIN PB0        // pin 5, 1x7135 PWM
#define PWM1_LVL OCR0A      // OCR0A is the output compare register for PB0
#endif
#ifndef PWM2_PIN
#define PWM2_PIN PB4        // pin 3, FET PWM
#define PWM2_LVL OCR1B      // OCR1B is the output compare register for PB4
#endif

Old PWM config

#define RAMP_LENGTH 150
#define PWM1_LEVELS 1,1,2,2,3,3,4,5,5,6,7,8,9,9,10,14,15,16,17,18,19,20,21,22,24,26,28,30,32,34,37,39,42,45,48,51,54,58,62,65,69,74,78,83,88,93,98,104,110,116,123,130,137,145,153,161,170,179,188,198,208,219,231,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,13,16,18,20,23,25,28,31,34,37,40,43,47,50,54,58,62,66,70,75,80,85,90,95,100,106,112,118,125,131,138,145,153,161,169,177,185,194,204,213,223,233,244,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM3_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,10,13,17,21,24,28,33,37,41,46,50,55,60,66,71,76,82,88,94,101,107,114,121,128,135,143,151,159,167,176,185,194,203,213,223,233,244,255
#define MAX_1x7135 65  // ~113 lm
#define MAX_Nx7135 110

New PWM config

#define RAMP_LENGTH 150
#define PWM1_LEVELS 1,1,2,2,3,3,4,5,5,6,7,8,9,9,10,12,13,14,15,16,18,19,21,22,24,26,28,30,32,34,37,39,42,45,48,51,54,58,62,65,69,74,78,83,88,93,98,104,110,116,123,130,137,145,153,161,170,179,188,198,208,219,231,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,6,6,7,8,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,27,28,30,31,33,35,37,38,40,42,45,47,49,51,54,56,59,61,64,67,70,73,76,79,83,86,90,93,97,101,105,110,114,118,123,128,133,138,143,149,155,160,166,173,179,186,192,199,207,214,222,230,238,246,255
#define MAX_1x7135 65  // ~113 lm
//#define MAX_Nx7135 110

Thanks.

can someone please refer me to a guide on how to reflash an MF01 mini?
i could not find anything here or elsewhere.
thanks you very much!