AVRISPmkII in Kubuntu 12.04
AVRISPmkII is not working in Precise Pangolin (64bit)
Trying to find the programmer:
jarkko@i7kubuntu:~$ avrdude -c avrispmkii -p x128a3 -P usb -v avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:37:28 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/home/jarkko/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : usb Using Programmer : avrispmkii avrdude: usb_open(): cannot read serial number "error sending control message: Operation not permitted" avrdude: usb_open(): cannot read product name "error sending control message: Operation not permitted" avrdude: usbdev_open(): Found [unnamed product], serno: [unknown] avrdude: usbdev_open(): error setting configuration 1: could not set config 1: Operation not permitted avrdude: usbdev_open(): did not find any USB device "usb"
But as a root everything works fine:
root@i7kubuntu:~# avrdude -c avrispmkii -p x128a3 -P usb -v avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:37:28 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/root/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : usb Using Programmer : avrispmkii avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200038672 AVR Part : ATXMEGA128A3 Chip Erase delay : 0 us PAGEL : P00 BS2 : P00 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 0 StabDelay : 0 CmdexeDelay : 0 SyncLoops : 0 ByteDelay : 0 PollIndex : 0 PollValue : 0x00 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 0 0 0 0 no 2048 32 0 0 0 0x00 0x00 application 0 0 0 0 no 131072 256 0 0 0 0x00 0x00 apptable 0 0 0 0 no 8192 256 0 0 0 0x00 0x00 boot 0 0 0 0 no 8192 256 0 0 0 0x00 0x00 flash 0 0 0 0 no 139264 256 0 0 0 0x00 0x00 prodsig 0 0 0 0 no 512 256 0 0 0 0x00 0x00 usersig 0 0 0 0 no 512 256 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00 fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00 fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00 fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00 fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Programmer Type : STK500V2 Description : Atmel avrispmkII Programmer Model: AVRISP mkII Hardware Version: 1 Firmware Version Master : 1.13 Vtarget : 3.4 V SCK period : 154.37 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9742 avrdude done. Thank you.
There are many threads on various forums how to fix this, but seems that I'm not the only one who does not understand the inner workings of udev. Luckily I found one thread here that has the solution.
One must create a udev rule for the programmer, to allow users to use it.
Create a udev rule file /etc/udev/rules.d/60-avrisp.rules and put the following text in it.
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end" # Atmel AVR ISP mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout" LABEL="avrisp_end"
Then create a link to it in folder /etc/udev, restart udev service and add your user to the dialout group. Or maybe the plugdev would be a better group?
root@i7kubuntu:~#ln /etc/udev/rules.d/60-avrisp.rules /etc/udev/avrisp.rules root@i7kubuntu:~#usermod -a -G dialout jarkko root@i7kubuntu:~#service udev restart
Now you may haveto unplug and plug in the programmer again to make it work. I think I allso had to logout to see the new group in that users konsole.
jarkko@i7kubuntu:~$ groups jarkko adm tty disk dialout cdrom sudo audio dip plugdev users lpadmin sambashare
If you know how to make this work easier, please share it in the comment section or email me so I can share it here.
Hi, Jarkko!
ReplyDeleteI tried the above ones, but this happened (in terminal):
sudo ln avrisp.rules 60-avrisp.rules
ln: accessing `avrisp.rules': No such file or directory
Why? I'm confused, please help me!
(I use Kubuntu 12.04)
Thank You!
Zoltán Kalotai
Sorry, the correct use of ln is "ln target linkname".
Deleteln /etc/udev/rules.d/60-avrisp.rules /etc/udev/avrisp.rules
Thanks for the quick reply! The command is work now without error. I'll try the programmer tomorrow...
ReplyDeleteHi, Jarkko!
ReplyDeleteIt's work in terminal. But, with a gui (Avrdudess or AvrFuse1.0.2) the Avrdude's response:
avrdude: stk500v2_ReceiveMessage(): timeout
Do you use a gui for the programming?
I dont't use GUI, but looks like Avrdudess has no option to choose USB, only serial port.
Delete