Looking for an alternative to get my kkmulticopter blackboard v5.5 flashed with the latest firmware I stumbled upon this arduinoISP project. It's basically a sketch that turns you arduino board into an ISP programmer. The guide that holds most if the information is here. Some information on how I got this working.
digital10:ResetTarget Pull this low to reset the target and prepare for programming.
digital13:SCK Serial clock to target.
If you want to have some visual feedback from the programmer you can also add leds to the pins 7, 8 and 9. Check the sketch for info on what these leds do. Don't forget to add some resistor to these leds so you don't burn them out right away. You can use an online calculator to get the correct resistor value for your led. When in doubt a 1k Ohm will work in most cases.
Now for this arduino you need to disable the auto reset option. For this link the 5v pin with the reset pin using a 120 ohm resistor. Color code for this resistor is brown, red, brown.
That's about it for the physical connections. Go ahead and flash your arduino with the arduinoISP sketch from the examples section and you'll be able to see the heartbeat led when everything works.
I tried this first with the kkflashtool but that didn't work out of the box. No matter what programmer I selected. I got it working using avrdude directly. Since I'm on OS X I installed crosspack package. It's a simple disc image (dmg) that holds a package (pkg) to be installed by double clicking it.
Make sure to adapt the red parameters to match your configuration. By default the atmega168ap programmer doesn't exist in config. I created that myself by making a copy form atmega168 changing only the programmer name and the device signature. In order to know the device signature you can run the above command with any existing programmer id that isn't valid for your programmer connected to that port. You then will get a message that looks like this telling you what the ID is you need to put in the usr/local/CrossPack-AVR/etc/avrdude.conf file.
And you're done. This should let you program your kkmulticopter board with an Arduino (or any other programmer supported by AVR).
Very nice friend... Worked fine!