Hi Benik3 and welcome to BLF.
What you want to do is both straight forward - and not!
You have to modify the file driver.c in Tido's package BLF-VLD-0.4.zip
The first thing to do is define the 4 modes and insert them in the setup:
line #39:
#define NUM_MODES 4 // how many modes should the flashlight have (1-5)
lines #155-159 (your levels are 0A,5C,AE,FF in hex):
#define MODE_LVL032 0x00, 0x0A, 0x00, 0x00 // .
#define MODE_LVL064 0x00, 0x5C, 0x00, 0x00 // .
#define MODE_LVL128 0x00, 0xAE, 0x00, 0x00 // .
#define MODE_LVL255 0x00, 0xFF, 0x00, 0x00 // highest possible level
line #192-193:
// initial mode programming, indices to modelines in the following array
0x05, 0x06, 0x07, 0x08, 0x00, // your levels are at index 5,6,7,8
line #108 (activate nomemory as you don't want to have memory):
#define NOMEMORY
The function should now be:
1. The light will allways start in 4% mode.
2. A short tap on the switch will switch to next mode, but if the light has been in a mode for more than 2 sec it is necessary to start the timing first by tapping once. (This can be avoided by using what is called pin-switch in the program, but this demands the mounting of 3 components on the driver).
The file should now be compiled from the SIMPLE directory (after unfolding BLF-VLD-0.4.zip).
It will be necessary to have AVC compiler installed, look for this elsewhere in the thread. Furthermore you must have the programming equipment which can be hard to get running (bad connections) and of course a driver with Atmel ATtiny13.
I can have overlooked something so I can give no guarantee that this will work, but good luck.