I've been collecting flashlight firmwares into one place and I hope it can become a central place for everyone to keep their code.
The repository is linked in my signature, or you can click here:
- Project: https://launchpad.net/flashlight-firmware
- Main code branch: https://code.launchpad.net/~toykeeper/flashlight-firmware/trunk
Anyone can create an account, branch the code, upload modified versions, file or fix bugs, submit merge proposals, and so on.
A quickstart is in the README (also included below), including links about how to flash drivers. To get an idea what is included in the repository, or to find a project relevant to your needs, look through the auto-generated INDEX file for projects matching your criteria.
If you have created any firmwares you don't mind sharing, please create a new branch and merge proposal with your code, or send me the files and I'll add them.
I'm using bzr and Launchpad to track and host the code, but if there is sufficient interest I am open to the idea of moving to git and a git-based project platform.
This thread is intended to provide a central place to discuss firmware in general, announce updates, and to avoid cluttering other project-specific threads with off-topic chatter.
Here's what it says in the README file:
ToyKeeper's flashlight firmware repository ==========================================
This is a collection of firmware for flashlights or torches, mostly
collected from BLF (http://budgetlightforum.com/). It's collected
here mostly for convenience, and to provide bug tracking and revision
control services for the code.See the INDEX file to find out which projects might be relevant to
your needs.Getting Started
The central firmware thread on BLF is here:
A general overview of what you need to get going is here:
http://flashlightwiki.com/AVR_Drivers
Some useful hardware for flashing firmware:
http://www.fasttech.com/product/1002900-atmega-attiny-51-avr-isp-usbasp-usb-programmer
http://www.fasttech.com/product/1011800-40-pin-splittable-ribbon-cable-20cm
http://www.digikey.com/product-detail/en/5250/501-1311-ND/745102For Windows users, these links may be useful:
Hoop's guide:
Comfychair's guide:
WarHawk-AVG's guide:
Getting a USBasp to work in Windows:
http://rayshobby.net/dead-simple-driver-installation-for-usbasp-and-usbtiny-on-windows/
To set up an attiny dev environment on Ubuntu (13.10):
sudo apt-get install flex byacc bison gcc libusb-dev libc6-dev
sudo apt-get install gcc-avr avr-libc binutils-avr
sudo apt-get install avrdude avrdude-docOptional: (make avrdude usable by non-root users, is a security risk)
sudo chmod u+s $(which avrdude)Building/installing attiny dev tools on other UNIX systems (in general):
http://www.ladyada.net/learn/avr/setup-unix.html
After wiring everything up, this tests the connection to the ATTINY13A chip:
avrdude -p t13 -c usbasp -n
(you may need to put 'sudo' in front, on UNIX systemsā¦
or set the suid bit on the avrdude binary, which is convenient but a
potential security risk)To test if you can flash firmware correctly, or to restore a light to something
like a default state, try flashing the NLITE driver from DrJones. It's similar
to the default nanjg / qlite firmware, but better../bin/flash.sh DrJones/NLITE/nlite.hex
For a quick test to make sure your tool chain works and your flashing tools
are working, try the 'hello world' program:cd hello_world
make
make flash
If that works, you should be ready to start making changes to the code, or
flashing any of the pre-built firmwares.