Ajouter un programmateur à l'IDE

Bonjour,
Je possède un programmateur MySmartUSB MkII, que j'utilise avec avrdude comme un AVR910 :

avrdude -P /dev/ttyUSB0 -c AVR910 -p m168 -U flash:w:mon_sketch.cpp.hex -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m

Je souhaitais l'ajouter à l'IDE de l'arduino 1.0 pour pouvoir programmer directement un atmega 168/328.
J'ai donc modifié le fichier arduino-1.0/hardware/arduino/programmers.txt comme suit :

mysmartusb.name=mySmartUSB
mysmartusb.communication=usb
mysmartusb.protocol=avr910

Mais lorsque je compile un sketche, l'avrdude de l'IDE me revoie l'erreur :

[color=red]avrdude: stk500_recv(): programmer is not responding[/color]

Donc visiblement il ne prend pas le protocole AVR910 mais le stk500... pourquoi ?

Salut,

Qu'indique la console Arduino lors de l'upload ? On peut déjà commencer par vérifier l'appel d'avrdude...

++

Salut,

De base l'ide n'utilise pas le programmateur choisi dans la liste "programmer" mais le programmateur/protocole désigné dans boards.txt.

Pour utiliser un programmateur externe il faut le choisir dans la liste tools > programmer puis utiliser file > "upload using programmer" au lieu du bouton upload.

Je n'ai pas de quoi tester, mais on dirait qu'une solution consiste à créer une nouvelle carte, associé au nouveau programmateur : http://arduino.cc/en/Hacking/Programmer

merci, je vais tenter ça demain, parce que ce soir je suis trop fatigué : dodo

Ça marche !

Merci à tous deux. Voici la démarche que j'ai adopté (peut-être que tout n'est pas utile) :

  1. boards

J'ai créé un dossier mysmartusb dans arduino-1.0/hardware dans lequel j'ai recopier le dossier variant contenu dans arduino-1.0/hardware/arduino.
J'ai créé le fichier arduino-1.0/hardware/mysmartusb/boards comme suit :

mysmart168.name=mySmartUSB avec ATmega168

mysmart168.upload.protocol=avr911
mysmart168.upload.maximum_size=16384

mysmart168.bootloader.low_fuses=0xe2
mysmart168.bootloader.high_fuses=0xdf
mysmart168.bootloader.extended_fuses=0x00

mysmart168.build.mcu=atmega168
mysmart168.build.f_cpu=8000000L
mysmart168.build.core=arduino:arduino
mysmart168.build.variant=standard
######################################################
mysmart328.name=mySmartUSB avec ATmega328

mysmart328.upload.protocol=avr911
mysmart328.upload.maximum_size=32768

mysmart328.bootloader.low_fuses=0xe2
mysmart328.bootloader.high_fuses=0xdf
mysmart328.bootloader.extended_fuses=0x00

mysmart328.build.mcu=atmega328p
mysmart328.build.f_cpu=8000000L
mysmart328.build.core=arduino:arduino
mysmart328.build.variant=standard

J'aurais également pu me contenter d'ajouter cela à arduino-1.0/hardware/arduino/boards, mais j'ai préféré faire comme ça pour ne pas que les modifications soient écrasées lors d'une prochaine mise à jour de l'IDE.

  1. programmers

Dans le fichier arduino-1.0/hardware/arduino/programmers.txt j'ai ajouté les lignes suivantes :

mysmartusb.name=mySmartUSB
mysmartusb.communication=serial
mysmartusb.protocol=avr911

Maintenant la procédure est simple. Le programmateur est branché sur un atmega328p tout nu.
Dans l'IDE je choisi Tools>Programmer>mySmartUSB et Tools>Board>mySmartUSB avec ATmega328.
Le sketch est simplement chargé par File>Upload Using Programmer. Et hop, voila un arduino à $6.