RC India
Welcome Guest, please login or register.
 
Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools Topic Tools 
Read
« on: January 12, 2013, 09:49:53 PM »
jaspreet.guitar
Heli Lover
Senior Member
***

Reputation Power: 4 
jaspreet.guitar has no influence.
Offline Offline

City: Noida
State: Uttar Pradesh
RC Skills: Beginner
Posts: 177
Join Date: Feb, 2012




Here's a small tutorial on how you can use an Arduino board to program a KK2.0 board or your ESCs.

All you need is an Arduino board and a few connecting wires.

Step 1: Burn the ArduinoISP code onto your Arduino board. The instructions for the same are given at: http://arduino.cc/en/Tutorial/ArduinoISP

Step 2: Connect your Arduino board to your KK2.0 board/ESC. Basically you have to connect the MOSI of Arduino to MOSI of board, MISO of Arduino to MISO of board, and so on for SCK, RST, VCC, GND.

Diagrams for the pinouts are attached.

Step 3: Download the latest version of avrdude from: http://download.savannah.gnu.org/releases/avrdude/

A short tutorial on avrdude is given here: http://www.ladyada.net/learn/avr/avrdude.html

Once you have downloaded avrdude. Open command prompt by typing 'cmd' at RUN. Go to the directory of the downloaded avrdude by using 'cd' command and then type 'avrdude' to open the program.

Step 4: Once your avrdude is ready to burn the code, check whether the connection between the boards is alright by typing the command:

avrdude -P COM4 -b 19200 -c avrisp -p m324pa -v -F

COM4 represents the serial port at which your Arduino board is connected to your computer. You would have to change it according to your computer. If all goes well, you would get a similar output:

avrdude: Version 5.11svn, compiled on Jan 18 2012 at 22:40:34
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch


         Using Port                    : COM4
         Using Programmer              : avrisp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega324PA
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
           eeprom        65    10   128    0 no       1024    4      0  9000  90
00 0xff 0xff
           flash         33     6   256    0 yes     32768  128    256  4500  45
00 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0
 0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0
 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel AVR ISP
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1e9511
avrdude: safemode: lfuse reads as D7
avrdude: safemode: hfuse reads as D1
avrdude: safemode: efuse reads as FC

avrdude: safemode: lfuse reads as D7
avrdude: safemode: hfuse reads as D1
avrdude: safemode: efuse reads as FC
avrdude: safemode: Fuses OK

avrdude done.  Thank you.


Having done this, you can go ahead and finally burn the KK2.0 code onto your KK board. The latest firmware can be found at: http://www.rcgroups.com/forums/showpost.php?p=23209042&postcount=6371

You would have to copy the HEX file and paste it into your avrdude folder.

The command to burn the code is:

avrdude -P COM4 -b 19200 -c avrisp -p m324pa -v -e -U flash:w:kk2.hex:i

You would get this output:

avrdude: Version 5.11svn, compiled on Jan 18 2012 at 22:40:34
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch


         Using Port                    : COM4
         Using Programmer              : avrisp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega324PA
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
           eeprom        65    10   128    0 no       1024    4      0  9000  90
00 0xff 0xff
           flash         33     6   256    0 yes     32768  128    256  4500  45
00 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  90
00 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0
 0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0
 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel AVR ISP
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1e9511
avrdude: safemode: lfuse reads as D7
avrdude: safemode: hfuse reads as D1
avrdude: safemode: efuse reads as FC
avrdude: erasing chip
avrdude: reading input file "kk2.hex"
avrdude: writing flash (32112 bytes):

Writing | ################################################## | 100% 31.86s

avrdude: 32112 bytes of flash written
avrdude: verifying flash memory against kk2.hex:
avrdude: load data flash data from input file kk2.hex:
avrdude: input file kk2.hex contains 32112 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 25.80s

avrdude: verifying ...
avrdude: 32112 bytes of flash verified

avrdude: safemode: lfuse reads as D7
avrdude: safemode: hfuse reads as D1
avrdude: safemode: efuse reads as FC
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

You would notice that the display on your KK2.0 board changes during the code is being burnt. Once the procedure is completed, the board will automatically restart and you would notice that the new firmware has been installed.  Thumbs Up

I used the procedure to update my KK2.0 board, but I'm pretty sure you can use it change the firmware for your ESCs too.  Grin

Warning – It is possible to ruin your board while attempting this process.  Tongue

KK2-ISP.jpg
Tutorial - How to flash a firmware to a FC/ESC using ARDUINO
* KK2-ISP.jpg (50.62 KB, 551x414 - viewed 3525 times.)
This post has 2 more images(s)/attachment(s). Please login or register to view them.
Logged
 

Read
« Reply #1 on: January 12, 2013, 10:08:18 PM »
deepakkshr
Embedded Engineer
Plane Lover
Senior Member
***

Reputation Power: 2 
deepakkshr has no influence.
Offline Offline

City: Bangalore
State: Karnataka
RC Skills: Advanced
Posts: 120
Join Date: Dec, 2012



Great work buddy   Thumbs Up
Logged
 

Read
« Reply #2 on: February 11, 2013, 12:26:30 PM »
RonnieBear
Heli Lover
Active Member
**

Reputation Power: 1 
RonnieBear has no influence.
Offline Offline

City: San Francisco, CA, United States
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 3
Join Date: Feb, 2013



Hello jaspreet.guitar,

I am brand new to AVR programming. I found your post very informative, but I am confused on 1 point. When you download the file "avrdude-5.11svn-20111019.tar.gz" from http://download.savannah.gnu.org/releases/avrdude/ where is the executable? I see that there is an avrdude.conf.in file that contains the 324pa configuration, but I do not know what is supposed to run from the command line. Any help would be appreciated!

note: I am on a Windows machine
Logged
 

Read
« Reply #3 on: February 11, 2013, 12:35:54 PM »
anwar
Administrator
Forum Hero

*****

Reputation Power: 141 
anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!
Offline Offline

City: Doha (Qatar) & Thrissur
State: Kerala
RC Skills: Advanced
Posts: 11619
Join Date: Mar, 2009

RC India - Flying and racing with open minds !



That .tar.gz is just the source code, which you have to compile with some kind of compiler (like Visual C++ in Microsoft Visual Studio) to make the executable.

Seems like you have to use the precompiled version, like WinAVR from here :

http://sourceforge.net/projects/winavr/
http://sourceforge.net/projects/winavr/files/WinAVR/20100110/  (this seems to be the latest).
« Last Edit: February 11, 2013, 12:46:38 PM by anwar » Logged

Hangar : Please see my introduction.
RC India forum and me : About this forum.
 

Read
« Reply #4 on: February 11, 2013, 12:40:57 PM »
girishsarwal
Plane Lover
Forum Hero

*****

Reputation Power: 17 
girishsarwal has no influence.
Offline Offline

City: Gurgaon
State: Haryana
RC Skills: Beginner
Posts: 1420
Join Date: May, 2012

DIYer



To get avrdude for Windows, either get hold of WinAVR or build from source. Since you're beginning, I'd suggest use WinAVR. Once setup, edit you path variables so it points to the WinAVR installation directory. More information here:

http://www.nongnu.org/avrdude/user-manual/avrdude_19.html
Logged

gs
 

Read
« Reply #5 on: February 11, 2013, 12:43:45 PM »
anwar
Administrator
Forum Hero

*****

Reputation Power: 141 
anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!anwar is awe-inspiring!
Offline Offline

City: Doha (Qatar) & Thrissur
State: Kerala
RC Skills: Advanced
Posts: 11619
Join Date: Mar, 2009

RC India - Flying and racing with open minds !



May be we should edit the first post to clear this confusion.  Something like "If you are Windows, get WinAVR from .....".
Logged

Hangar : Please see my introduction.
RC India forum and me : About this forum.
 

Read
« Reply #6 on: February 11, 2013, 12:50:29 PM »
RonnieBear
Heli Lover
Active Member
**

Reputation Power: 1 
RonnieBear has no influence.
Offline Offline

City: San Francisco, CA, United States
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 3
Join Date: Feb, 2013



Thank you for the suggestions. As far as I can tell, WinAVR has an older version of avrdude that does not have the configuration for the 324pa board on the KK2.0. I will try compiling from source and see how it goes
Logged
 

Read
« Reply #7 on: February 12, 2013, 05:08:14 AM »
RonnieBear
Heli Lover
Active Member
**

Reputation Power: 1 
RonnieBear has no influence.
Offline Offline

City: San Francisco, CA, United States
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 3
Join Date: Feb, 2013



Success!

In case there are other beginners trying to do this, I will share the tricks I used.

If you try using an Arduino Leonardo like I did, please follow the suggestions by PeterVH: http://petervanhoyweghen.wordpress.com/2012/09/16/arduinoisp-on-the-leonardo/

Instead of trying to compile the source code myself in Windows, I ended up using WinAVR, even though the version available on SourceForge does not use the newest version of avrdude (5.10 instead of 5.11svn). To get around this, I simply downloaded the uncompiled code for version 5.11svn from savannah.gnu, opened the file "avrdude.conf.in" and searched for the part definition for the ATmega324PA. I then copied and pasted this section into the "avrdude.conf" found in the \bin directory where WinAVR was installed.

Thanks to everyone for your help!!!

Logged
 

Read
« Reply #8 on: February 12, 2013, 05:59:06 AM »
girishsarwal
Plane Lover
Forum Hero

*****

Reputation Power: 17 
girishsarwal has no influence.
Offline Offline

City: Gurgaon
State: Haryana
RC Skills: Beginner
Posts: 1420
Join Date: May, 2012

DIYer



congratulations
Logged

gs
 

Read
« Reply #9 on: August 16, 2013, 06:29:53 PM »
justadude^-1
Plane Lover
Active Member
**

Reputation Power: 1 
justadude^-1 has no influence.
Offline Offline

City: Cologne, Germany
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 2
Join Date: Aug, 2013



Hi there,
this workaround doesnt work for me. I have an arduino uno with a 328P on it so i have to change the command to avrdude -P COM4 -c arduino -p m328p -v -e -U flash:w:kk2.hex:i

The answer of the command window is:

C:\kkflashtool\lib\avrdude\windows>avrdude -P COM4 -c arduino -p m328p -v -e -U
flash:w:kk2.hex:i

avrdude: Version 5.11svn, compiled on Jan 18 2012 at 22:40:34
         Copyright (c) 2000-2005 Brian Dean
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\kkflashtool\lib\avrdude\windows\a
vrdude.conf"

         Using Port                    : COM4
         Using Programmer              : arduino
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  36
00 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  45
00 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0
 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0
 0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: erasing chip
avrdude: reading input file "kk2.hex"
avrdude: writing flash (32172 bytes):

Writing | ################################################## | 100% 5.31s

avrdude: 32172 bytes of flash written
avrdude: verifying flash memory against kk2.hex:
avrdude: load data flash data from input file kk2.hex:
avrdude: input file kk2.hex contains 32172 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.49s

avrdude: verifying ...
avrdude: 32172 bytes of flash verified

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

And you see, the transfer of the data takes 5.31 s and not 31.86 s. I think my arduino isnt transfering the data to the KK board...

Could anyone help me out with that?
« Last Edit: August 18, 2013, 06:37:29 PM by anwar » Logged
 

Read
« Reply #10 on: August 21, 2013, 06:16:04 PM »
justadude^-1
Plane Lover
Active Member
**

Reputation Power: 1 
justadude^-1 has no influence.
Offline Offline

City: Cologne, Germany
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 2
Join Date: Aug, 2013



I found the fault - i used a 10 µF Capacitor instead of a 22 µF Capacitor between RST and GND. Now it works flawlessly.
Logged
 

Read
« Reply #11 on: July 04, 2019, 06:06:04 PM »
SHIBLEEALAM73@GMAIL.COM
Plane Lover
Active Member
**

Reputation Power: 1 
SHIBLEEALAM73@GMAIL.COM has no influence.
Offline Offline

City: dhaka, bangladesh
State: OUTSIDE INDIA
RC Skills: Beginner
Posts: 1
Join Date: Jul, 2016



Dear Japreet
after the command

 avrdude -P COM4 -b 19200 -c avrisp -p m324pa -v -F

 I am getting

avrdude: Version 5.11svn, compiled on Jan 18 2012 at 22:40:34
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch


         Using Port                    : COM4
         Using Programmer              : avrisp
         Overriding Baud Rate          : 19200

only it is not showing the other lines as you have given?
Logged
 

Pages: [1]   Go Up
Jump to: