Help me choose the correct firmware

Hello everyone,
I bought a cheap headlamp from ebay and after some testing I noticed that the mosfet it used got really hot (>100 degrees C).
I decided to build my own driver from stuff I’ve seen around this forum.
I went with 3 modes:
Full output: - NXP PSMN0R9-25YLC Mosfet
Half output: 4xAMC7135 (actually QX7135 - 380mA) = 1,52A
Moonlight or Low or whatever it’s called: 1xQX7135 = 380mA

Each of the output modes are controlled by a different pin.
I don’t want to go with PWM as I organised the outputs separately as I wish.
What firmware should I use?
I’m also using a pin for battery sense (still need to get 19.1K 1% resistor).

On the pcb I made some provisions to link all 5 7135 together just in case I change my mind.
The key trace also has some possible links to ground and in series for different reasons (debouncing, pull-up, pull-down etc).

So, what do you think I could use? I have a momentary switch. So shouldn’t be that complicated.
I’d like to start on medium, go to high and then low and then off.

Here’s the board:

So anyone?
Basically I need to cycle through the three output pins. No PWM. Also I need the bat check function and that’s it.
All this for a momentary switch.
I like the low idle current of the JonnyC firmware, about 190uA (as far as my dmm can measure).
I tested some other firmware but they were all about 1mA.

So, any baseline firmware I can start modding? Something without PWM, and more output pins (>1).

I don’t know if there is any shared firmware that works like that. My drivers are all like that, using pins for constant on without PWM.

Is this a one button headlight only? Which pins are used for what? Is the MCU an ATtiny13A?

Only a momentary switch, pins 3,5 and 6, and pin 2 is the switch (momentary button).
MCU is indeed Attiny13A.
After some testing I noticed that the mosfet needs only a high/low impulse, while the 7135 need constant high signal from the MCU to output, or else it turns off.

I’ll see what ATtiny13A code I have left lying around, maybe something will work for you.

Thank you,
At least some snippets so I could work out how to make that happen.
Sadly I only have a little background with the Arduino IDE.
I can understand the code in the firmware to some extent but I’m bad at trying to adapt it without an example of some sort.
Also most firmwares have PWM intertwined in it and it’s harder to take it out.

None of my 13A projects will work as they are, so here are some code snippets that should help.

When initializing the light you have to set which pins are output. Pins 3, 5 and 6 are called PB4, PB0 and PB1. This is how you configure them to be output pins:

DDRB = (1 << PB0) | (1 << PB1) | (1 << PB4);

When you want to turn one of them on (output high), enter the pin name of choice:
PORTB |= (1 << PB0);

When you want to turn it off (output low):
PORTB &= ~(1 << PB0);

I don’t have any momentary switch firmware for the 13A as I switched to other MCUs before I got into that. There are a few options, I hope someone else can help you there. Post a question here: Flashlight Firmware Repository