====== Manual ======
===== Purpose =====
KKmulticopter Flash Tool is a tool that will easily upload selected firmware to your KKmulticopter board, ATmega8 based ESC or Smart LCD pro. It is designed to support users that never have flashed firmware to a micro-controller board. All that is needed is for the user to select the programmer you're using to flash the board, select board or controller type, and desired firmware version. You will then have the ability to flash a firmware file from your PC or directly from the Internet by selecting from a list of latest available firmware versions. This repository is maintained by me, so if I miss a new version please contact me.
Also, this the tool can be used to save some of the possible settings you normally do by using the pots within the PC.
The tool will save the settings upon exiting the KKmulticopter Flash Tool. You will not need to set everything back up upon re-launching the KKMulticopter Flash Tool. This is because the KKMulticopter Flash Tool saves the settings you selected upon sucessfully flashing your controller board.
To get more informations on how to flash BL-ESC see also the [[en:modellbau:kkmulticopterflashtool:escflashingmanual]] manual.
===== General requirements =====
To run the tool you need a normal Windows PC, Mac or Linux PC. When using your computer it is required to have the latest version of Java installed (at least in version 6). You have to be careful when you download it, because the Oracle homepage offers you automatically a download according to the version of the browser that you use. So if you have a 64 bit OS you should also use a 64 bit browser to download Java. Firefox and Chrome are no 64 bit browsers, but IE 8 and IE9 are 64 bit.
An ISP programmer with correct installed driver.
An Internet connection is required if you want to use the repository. Upon launching the KKMulticoper Flash Toll the descriptive file of the repository with all informations will be downloaded.
===== Installation =====
==== On Windows or Linux ====
You just have to un-zip the archive you downloaded to any folder you like.
==== Mac OS X ====
Just open the dmg-image and move the kkMulticopter Flash Tool to the Applications folder.
===== Run the flash tool =====
To start the tool use the run script dedicated for your OS.
* kkMulticopterFlashTool.cmd Windows command script **or**
* kkMulticopterFlashTool_SERIAL.cmd Windows command script. Only necessary if you use a avrisp mkII or other programmer that uses serial or parallel interface, bacause this script will scan for the serial ports available on the system.
* kkMulticopterFlashTool_32.sh Linux bash script for 32-bit systems **or**
* kkMulticopterFlashTool_64.sh Linux bash script for 64-bit systems
* The kkMulticopter Flash Tool Mac OS App
* Boot 32 bit mode
* or run application in 32 bit mode
**Do not run the Java executable as the tool will not work properly.**
After starting the tool you may get a dialog that there is a new version. Press the download button to leave the tool and it will open the download page of the tool in your default browser. Or you can select cancel to get to the tool.
===== The Menu =====
==== Settings ====
The setting menu has three functions:
- select if you like to **work offline**. No Internet connection will be needed. This will speed up the start of the KKMulticopter Flash Tool because it will not need to wait until the network times-out. A drawback is that you may only flash the firmwares already downloaded from the repository.
- you can **cache firmware** to your local hard drive. This downloads the firmware you don't already have on your hard drive. You can filter configure the download by checking the firmware types you are interested in obtaining.
- you can set the user **language**.
==== Contribute ====
In this menu you can send me a **bug report** or **commit firmware** you found on the Internet or you wrote to be added to the repository.
The **send bug report** menu item will open your default email program and paste the content of kklogging.txt and a dump of the status area to the mail body.
You can also **commit firmware** to me. This menu item will open a form where you can enter information about the firmware you would like to be added to the repository.
==== Help ====
In this part of the menu I obtained some Internet links of helpful resources to set-up the firmware available in the repository plus, a link to this manual.
==== Info ====
Contains the **About** screen and the full text of the GPL 3 **license**.
===== Flashing new firmware =====
==== Overview of functions ====
{{ :modellbau:kkmulticopterflashtool:manual:kkflashtoolv0.60.png?nolink&640|}}
- Select your ISP programmer.
- This is the port your programmer uses. A lot of programmers have a USB plug, but they are serial programmers. In this case select the correct serial port. Only avrisp mkII, USBasp and USBtiny are real USB programmers.
- For serial programmers you can change the default baud rate. Therefore you have to enable the checkbox and change the value of the baud rate field. Before changing the baud rate it is recommended to first try the default rate.
- Select the board from the list of available boards. If it is not listed you can also select only a µController from the end of the list.
- In this area you can either select a firmware file in hex format from your file system or one from the repository managed by me.
- Press this button to select a firmware file from your PC.
- After selecting a firmware the button will become enabled. Pressing the button will write the firmware to the kk-board.
- As an option you can filter the the available firmware versions through the repository by selecting the type of firmware you want to flash, e.g. XCopter.
- Pressing this button will reload the repository.
- Here you can select the firmware you like to flash from the repository.
- This button is enabled if there is a link to a webpage with more informations to the selected firmware.
- Pressing the button will write the firmware to the kk-board.
- This area will print status messages. If you have problems flashing your board, you can send me a dump of the content of this area.
==== Preparing the hardware ====
==== Flash a firmware ====
Flashing new firmware is very easy. First, select the programmer (1) you are using. Adjust the port to your needs, if you have a serial programmer you can also try to change the baud rate (2) for the programmer, but it's recommended to leave this parameter on default value (3). There are only a few programmers that use real USB interface, most models have a USB serial converter build-in the programmer. For serial programmers select the port it allocated on your system (e.g. COM1 on Windows based systems). If you are not sure about the port you can look up this in the device manager of your system. The programmer settings will be stored when software is closed.
Only USBasp (incl. clones), Atmel AVRisp mkII, USBtiny uses real USB interface.
Next select the kkboard (4) you want to flash with the new firmware. If you have an older board or a homemade board you can select the processor type installed on your board from the end of the list. Any selections made are saved after you exit the KKmulticopter Flash Tool program.
You have the choice to flash your own compiled firmware (6) or from the repository I am maintaining (10) in the firmware panel (5).
If you flash your own firmware or a firmware that is not in the repository. It is required that the file is in Intel hex format. To select your hex file open the file chooser pressing (6). If it is a file with file extension hex the flash button (7) will be enabled. Press the flash button to start the flashing process. The actions during the flashing will be printed in the large text area at the bottom of the window. When the flashing process is completed you should read something similar to:
avrdude: verifying ...
avrdude: n bytes of flash verified
avrdude done. Thank you.
For the firmware variants that are developed by kapteinKuk (KK), Mike Barton (XX), David alias HappySundays (NeXtcopterPlus, OpenAero) or Minsoo Kim(XX_KR). Are more or less completely available by the repository. Big advantage of the repository is that you don't have to search the Internet to obtain an older firmware versions. Also, I'll try to keep the repository as up-to-date as possible. If I miss a new version you can contact me by the Contact form on the download page.
As there are now a lot of firmwares in the repository there is a selection of firmware types (8) to reduce the list below (10). Select the version and origin you like to flash from the list (10). The list is sorted by origin and version number. Meaning, the most recent Quadrocopter firmware of a particular type __will not__ be on the top of the list.
To reload the list you can press the reload button (9). Then the local repository file will be updated from the Internet and the selection combo boxes are reset. This only needs to be done if you want to reset your selections or if there is a problem with the repository.
If there is a link to a manual for the selected firmware the info button (11) becomes enabled. Select the button to open the Internet site in your browser or a pdf if available.
For flashing the selected firmware press the flash button (12). Now the fuses will be set with the firmware downloaded and flashed to your board. Upon successful flashing you will receive a output in the text area as listed above.