In the summer of 2011 I made a pledge to a kick starter project for an Open Source light. After a little under 2 years the programmable flashlight has started to ship. I just recived mine and the wait was worth it. The quality of the flashlight is amazing. It feels great in your hand. The only thing I would change in its design is where the on off switch is located. I would have prefer it to be located near the front of the flashlight instead of the bottom but that would cause other problems.
The core of the the HexBright can be removed completely from the flashlight. This will allow for updating and repairing as time goes on.
My biggest challenge was figuring out how to upload a new program on Linux. The process is really simple but finding the instructions on how to setup a development environment was a bit of a challenge.
Install arduino or sudo apt-get install arduino
Create the directory /home/
Put boards.txt in that directory
Under Tools->Board select Hexbright
Now you can open on of the samples and upload it to your flashlight.
The default firmware has 4 modes low, medium, high and blink. I have tried a few others. The process is very easy.
I would highly recommend this flashlight. Even if you are never going to change the program in it. It's build quality is impressive and on high I think you could blind someone. I am looking forward to using it on a camping trip this summer. You can get one here