service udev restart will also do the same...no problems.
Ok, instead of changing permissions through udev rules, try changing the permission of device file of the controller, that is, change the permissions of the appropriate file in
/dev. For that , you need to know the device file name of your AVR. That can be obtained as follows:
After connecting your programmer , run the command
dmesg. dmesg will output recent kernel activities. Among all other info, you can find the device file name of the controller. For example, when I connect my pendrive to my system and it get's detected, I run dmesg and get the following output:
[ 720.369917] scsi 6:0:0:0: Direct-Access Kingston DT 101 G2 PMAP PQ: 0 ANSI: 0 CCS
[ 720.375200] sd 6:0:0:0: Attached scsi generic sg3 type 0
[ 720.963854] sd 6:0:0:0: [sdc] 7774208 512-byte logical blocks: (3.98 GB/3.70 GiB)
[ 720.966880] sd 6:0:0:0: [sdc] Write Protect is off
[ 720.966888] sd 6:0:0:0: [sdc] Mode Sense: 03 41 00 00
[ 720.966892] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[ 720.983843] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[ 720.983856] sdc: sdc1 // sdc1 is the device file name of my pendrive. It is in the /dev directory. Do the same for your controller. After getting the file name, change it's permission in the /dev directory. You need to be root to do this.
:---
cd /dev
chgrp <the group or user who wants to use the file> <your device filename>
Eg.
If your device filename is sdb1 and your username anant, then the command will look like this:
chgrp anant sdb1
or
chgrp anant /dev/sdb1 , /*if you are in some other directory */
But the problem is, this change has to be made on every reboot. A more permanent solution would be to write udev rules, but as it is not working for some reason in your case, you can try this.
Hope this works.... :)