The usual way to control the intensity of these things is via PWM. One option is to search Ebay for "PWM motor controller" and pick one that you like. Beware that many of the cheapest ship from China. The only thing bad about that is the likely 2-3 week wait. Often you can pay a bit more and find one (also made in China) that is shipping from someplace in the US that you will have in a few days. Or just wait.
You can order these with a power supply or order a unit that provides a knob (on a potentiometer) along with a PCB and supply your own power supply.
The common driver is a "7135" and sometimes when you order you get to choose how many of these are installed in the light. One of these gives you 350 mA. I often order a Convoy flashlight with 3 of these, giving a maximum of 1.0 Amps of current which then gets regulated by PWM. You can get as many as 8, which would give you 2800 mA -- I am more enthused about long run time at usable brightness levels than maximum brightness, so 3 of them does me fine.
At one time I got fascinated by hacking on these and have some notes here:
I have a couple of Convoy 405 Nm flashlights. I just took one apart and find that it has a series protection diode and two 7135 chips. No microcontroller and hence no PWM. I simply runs with 700 mA of current all the time.I also took apart a Convoy S3 flashlight. Inside I find four 7135 chips (so we can get 1400 mA with 100 percent PWM -- in theory anyway). Also a series protection diode, two resistors, and an AT-Tiny 13A chip. No Fet. The PWM drives the Vdd pin of the 7135 chips (which is a surprise). This 7135 will sink current to ground (from "OUT" to "GND") when Vdd is pulled high. No FET is needed. The tab on the chip seems to be electrically isolated and is just supposed to be soldered to a heat sink
So, what is the PWM frequency? I see 34 or 36 kHz often cited -- but lights change not just the PWM duty cycle, but also the frequency for different brightness levels. One source says that the Convoy S2+ varies from 2.27 kHz (at 0.1 percent brightness) to 36.4 kHz (at 35 percent). This would make sense if they held the pulse on time constant and just changed the clock to get different brightness. Source code is available -- search for ToyKeeper: One note. The question arises what the pros and cons are of PWM versus some sort of linear regulator. A linear regulator will waste energy as heat, especially at mid brightness levels. Also an LED is less efficient at lower current levels, yielding less lumens per milliwatt. There are also questions about changes in spectral characteristics.Tom's Mineralogy Info / tom@mmto.org