Changing the firmware on a HobbyKing KK board

This guide is made for the Hobbyking KK board V1 but will work just the same for the Hobbyking KK board V2, the only difference is that you have to select the correct board in the flash tool (The V2 uses a different processor). The V2 board is capable of running more advanced firmwares like the XX, where as the V1 is limited to the ”standard” firmwares.

The HK KK boards comes pre-flashed with the ”+” Quad KK firmware. In this guide we will change it to the Tricopter V1.6 firmware.

You need two things to change the firmware of the HK KK board:

First thing is an AVR programmer. I use this AVR programmer from Flytron. But you can get one really cheap from Hobbyking or ebay. Search for ”usbasp” or ”AVR Programmer” and you’ll find loads.

Second thing you need is an adaptor. Normally the AVR programmers comes with the standard 10 pin output, but the HK KK is 6 pins. Luckily the adapter is so easy to make that anyone can do it.

6106728233_aa7d12c230_b
(Picture by arch001)

On the left you see the output from the 10 pin AVR programmer and on the left the 6 pin port of the HK KK board. All you need to do is connect the correct pins to each other. 1 to 9, 2 to 2, 3 to 7, 4 to 1, 5 to 5 and 6 to 10.

6106759561_795bfc1a8a_b
(Picture by arch001)

HKKK2
I soldered my own adapter but there is a simpler way that doesn’t require any soldering

HKKK3
That way is to use two servo extensions. Simply remove the protective plastic and pull the pins out.

HKKK4
Plug the pins into the connector in the right order and you’re done. Just make sure that the pins doesn’t touch each other. If you like to make the adapter reusable you can add some hotglue on the pins so that you don’t have to plug each pin in separately next time.
(Pin position in the picture is only for illustrative purposes)

Now that you have you’re KK board hooked up to the AVR programmer you need an AVR flashing software. There are a number of different options to choose from but I higly recommend using the KKmulticopter Flash tool. This software is specifically made to flash KK boards and is extremely simple to use. You don’t have to know about fuses or anything. The software even fetches the firmware file for you. And one of the best things, it works on both PC and MAC.

Download and install the software from this page.

Install the proper drivers for your AVR programmer. If your on a mac and use a usbasp you don’t need to install any drivers.

Launch the software
Flash1
This is how it looks when you start it up. First thing you’re going to do is change the ”controller”

Flash2
Choose the ”HobbyKing Quadcontroller” board from the list.

Flash3
Choose the firmware you wish to use from the firmware drop-down list. The software automatically only shows softwares compatible with the controller you chose.

Flash4
Change the port to ”usb” and make sure that the correct programmer is chosen in the top drop-down list. ”usbasp” is the default one.

Push the green ”go” symbol and sit back and relax while the software does the work for you. It takes about a minute to flash the board. Once it’s done the software will tell you: ”avrdude done. Thank you”

Thats it! You’re done. Unplug the programmer and go out and fly. Good luck!

23 thoughts on “Changing the firmware on a HobbyKing KK board

  1. Hello David, I know you got the hoobyking as a sponsor. Congratz on that.
    Just bought one original kk board new version(black one), and many are saying that the components on the original kk board are better and more sensitive that that one from hobby king, any regards about that topic? Im really interested in that, if mine went bad, I’ll know the right one to be buying next, as a spare…

    • Actually I only had Hobbyking sponsor one video I made a long time ago. I’m not sponsored by anyone, I just keep buying stuff from hobbyking because it’s cheap :)
      The original black board uses the exact same sensors as the HK kk boards so that might be a placebo affect. I would recommend getting the KK2 board (the one with the LCD), it has even better sensors and much better features :)

  2. Hey David, saw your proximity sunset video, just notice that you still using your good old kk board, but you changed the roll sensor on that board?
    Im really curious about it!
    Other thing, which firmware are you using on the kk board? Wich version? Mine first kk board just arrived(v5.5) and I kinda lost what is the best firmware for my tricopter.

    Regards,

    Rafael Torres

  3. Hi David Welcome to the US …

    As a point of clarification it appears that v1.6 of the firmware went to PI definitions of th pots rather than individual roll, pitch and yaw gains. Can you elaborate how to set these up on the non-display KK boards? Is the center pot used anymore for stick trim zeroing?

    • Is this correct

      P roll/pitch ROLL POT
      I roll/pitch PITCH POT
      P yaw YAW POT

      Would it be possible to update your Tricopter setup manual with v1.6 changes … great tutorial however lots of local folks flying Tri~s are confused because of different version pot definitions.

      Just a suggestion … Might point folks to KapteinKuk’s string jig PI video … lots of folk’s struggling to get their copter’s tuned correctly

  4. Hi David, first I want to thank you for your great job, maybe you could give me some tips about a problem I been having with my boards, I have 2 kk boards from HK and 2 blackboards 5.5 and I have the same problem with all the boards I can’t reverse the yaw gyro, in my tricopter i had to open up the servo and reverse the pot and the motor to get the correct direction move, and in my x-copter, I fixed the problem by changing the direction of the all props. both fly well, but I still do not know how to resolve it from the board. thanks.

  5. hi david,
    first I would like to congratulate you for your awesome job… and have a couple of problems with my kk 2.1 hard case from HK I tried to update it but I haven’t found the way to do it I follow your instructions but nothing… and the thing is how the pins are placed in this new board??? because all the treads (even this one) talk about the one without case so I am really lost and desperate…. could you please help me….

  6. Thanks David, I’ve already noticed the name on the board case but my question is what is the order of them because if I plug them with following the arrow that indicates front nothing happened and if I flip it upside down the usbasp is turned of so that is my main concern…..

  7. Actually I already flashed my turnigy 9x with that programmer now I’m running open tx and every time I want to change I used without any problem… but to flash the board… it has been impossible

  8. Hello has all I have this problem how can it be done?

    Flash the firmware from repository.

    C:\Users\N\Downloads\kkmulticopterflashtool_0.77\lib\avrdude\windows\avrdude.exe -C C:\Users\N\Downloads\kkmulticopterflashtool_0.77\lib\avrdude\windows\avrdude.conf -p m168p -P usb -c usbasp -e -U lfuse:w:0xe2:m -U hfuse:w:0xdd:m

    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: error: programm enable: target doesn’t answer. 1
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude.exe done. Thank you.

    Error during setting the fuses.
    Flashing of firmware aborted.

    HELP

    thank you !

  9. Hi David

    I know this is an old thread, but just got my hands on a board compatible with this system shall we say (KK5.5 Blackboard with 168PA chipset) which is one a friend got, never used and gave to me, I thought it a waste of a board to just leave it there because it’s old, so I decided to mount it on a small LOS X-quad.

    The issue I am having is that when I flash it with the V2.9 firmware which is said to be more stable and easier to use, I get this message keep popping up:

    “avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update”

    I’ve looked online but can’t seem to find much more than contradictory information that is confusing, as it is programmer specific. The programmer is the one that comes with the Blackboard. Do you have any information or suggestions? Do I REALLY need to fix this or can I even do without?

    Thanks ever do much

    Andrea

    • This programmer is using the Atmel ATMega48 chipset… and as far as I can tell on the internet, I need a programmer to update the programmer… ummmmm :S

      Is there any way around this?

      • Yes, I chose the Atmel ATMega168P/PA, as my chipset is the PA variety. I tried with both the 4.7 and 2.9 firmwares, and as far as I can see they flash, in spite of this message I’m getting.

      • Hi again David.

        Sorry, I was not at home and answered from my phone so I couldn’t offer much information. I’ll leave here a link to a screenshot so you can see the USBasp I chose as well as the board I chose from the list. http://i151.photobucket.com/albums/s123/HororoKawaii/Screen_zps3xqzusqa.jpg

        And below I have left the complete log of what is says whilst flashing… and there is no end as you discribe no matter how long I leave it.

        ————————————————————–

        Flash the firmware from repository.

        D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\lib\avrdude\windows\avrdude.exe -C D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\lib\avrdude\windows\avrdude.conf -p m168p -P usb -c usbasp -e -U lfuse:w:0xe2:m -U hfuse:w:0xdd:m

        avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
        avrdude.exe: AVR device initialized and ready to accept instructions

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: Device signature = 0x1e940b
        avrdude.exe: erasing chip
        avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
        avrdude.exe: reading input file “0xe2”
        avrdude.exe: writing lfuse (1 bytes):

        Writing | ################################################## | 100% 0.00s

        avrdude.exe: 1 bytes of lfuse written
        avrdude.exe: verifying lfuse memory against 0xe2:
        avrdude.exe: load data lfuse data from input file 0xe2:
        avrdude.exe: input file 0xe2 contains 1 bytes
        avrdude.exe: reading on-chip lfuse data:

        Reading | ################################################## | 100% 0.00s

        avrdude.exe: verifying …
        avrdude.exe: 1 bytes of lfuse verified
        avrdude.exe: reading input file “0xdd”
        avrdude.exe: writing hfuse (1 bytes):

        Writing | ################################################## | 100% 0.02s

        avrdude.exe: 1 bytes of hfuse written
        avrdude.exe: verifying hfuse memory against 0xdd:
        avrdude.exe: load data hfuse data from input file 0xdd:
        avrdude.exe: input file 0xdd contains 1 bytes
        avrdude.exe: reading on-chip hfuse data:

        Reading | ################################################## | 100% 0.00s

        avrdude.exe: verifying …
        avrdude.exe: 1 bytes of hfuse verified

        avrdude.exe done. Thank you.

        Flashing firmware from file.: D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex

        D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\lib\avrdude\windows\avrdude.exe -C D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\lib\avrdude\windows\avrdude.conf -p m168p -P usb -c usbasp -e -U flash:w:D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex:i

        avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
        avrdude.exe: AVR device initialized and ready to accept instructions

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: Device signature = 0x1e940b
        avrdude.exe: erasing chip
        avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
        avrdude.exe: reading input file “D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex”
        avrdude.exe: writing flash (6676 bytes):

        Writing | ################################################## | 100% 4.03s

        avrdude.exe: 6676 bytes of flash written
        avrdude.exe: verifying flash memory against D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex:
        avrdude.exe: load data flash data from input file D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex:
        avrdude.exe: input file D:\Multirotors\KK5.5\kkmulticopterflashtool_0.80beta6\tmp\XXcontrol_KR_XCopter_v2_9.hex contains 6676 bytes
        avrdude.exe: reading on-chip flash data:

        Reading | ################################################## | 100% 3.83s

        avrdude.exe: verifying …
        avrdude.exe: 6676 bytes of flash verified

        • Sorry, clicked POST before finishing…

          Anyway, as you can see I flashed it twice because the first time it just seemed weird that there were no bytes and no seconds.

          I’d appreciate any input on this, and if you think it’s flashed OK in spite of that SCK thing.

          Thank you

            • Thanks for that David… strange about that error, but if it’s OK let’s see what happens. Trying this out as it’s just a spare unused board I have lying around and my other board is dead, so trying it out on a small quad weighing in about 260g AUW… I hate to see things go to waste, and just because it’s old, doesn’t make it obsolete, especially for a small close range LOS for learning to perfect multirotor flying… prehaps even better, if I can fly one with no accelerometers well, then I can fly anything!! hehehehehe

  10. I have been having the WORST time with this. Mostly because I can’t tell if the red marked wire on my USABASP is pin 1 or pin 10. I’m thinking it’s pin 10, but if that is so, then why do I keep getting the “Cannot set sck period” error? I’m only reprogramming it because I’m intending to use my KK as a fixed wing stabilizer, but I am having a dickens of a time wrapping my head around this. I know this is old, but can you make any suggestions?

    • Ok, after spending some time bashing my head in I finally realized that maybe I should try it the other way around, using the red wire as pin 1 instead of pin 10. A bit of soldering later and VOILA! I am flashed with open Aero 2! So for anyone else who gets a USBASP with the 10 pin ribbon cable and you choose to solder on your connectors, the red wire is pin ONE. (MOSI) NOT pin 10 (GND).

Leave a Reply