Mettre un bootloader sur un atmega168 avec un Mac

Bonjour,

Est-ce possible de mettre une bootloader sur un atmega168 avec la plaque Arduino Diecimila depuis un Mac ?

Oui avec un programmeur externe (du hardware a acheter) ou avec un programmeur parrallele (a bricoler).
Tu as un résumé ici
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1217113409/4

Une autre technique est d'utiliser la fonction bit bang de la puce FTDI
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1217113409/4
et plus précisement la http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Sur ce site ils disent que ca marche pas pour Mac mais je pense qu'en bricolant un peu ça doit le faire (je vois pas pour quelle raison ça le ferait pas pour un mac et linux).

Bref rien d'utilisable directement pour ta config désolé.

Nicolas

Aïe, je sens que je vais de nouveau devoir bricoler...

Est-ce que ça peut convenir pour bootloader mon atmega168 depuis mon Mac :

MysmartUSB

La procédure décrite pour l'arduino mini conviendrait-elle ?

J'ai pas tout lu...
Mais apparement la sortie du cable ISP est sur 10 et celle de l'arduino sur 6 (je ne sais pas si c'est compatible).
En comparaison tu as celui de adafruit USBtinyISP AVR Programmer Kit (USB SpokePOV Dongle) [v2.0] : ID 46 : $22.00 : Adafruit Industries, Unique & fun DIY electronics and kits (moins cher sauf les frais de port mais je sais pas s'ils livrent en europe) qui propose a la fois la sortie ISP sur 6 et 10.

Par contre j'ai pas compris exactement ce que tu veux faire :

  • flasher occasionnellement un bootloader sur un m168 qd tu veux garder un projet et du coup racheter un m168 vierge
  • ou flasher + régulierement des avr et/ou toujours te passer du bootloader pour flasher tes sketches arduino.

qu'as tu sous la main ? j'imagine

  • un arduino avec un m8 ou un m168 avec déja un bootloader dessus
  • un m168 sans bootloader
  • un mac
  • un linux
  • un peu de matos electronique

Si c'est en effet :

  • occasionnel
  • et que tu as un linux
  • et que tu es pret a souder 4 fils sur ton arduino
    je te conseille la procédure bit bang (je peux t'aider pour ca)

Nicolas

Alors :

  • je suis pas sous linux
  • j'ai du matos pour bidouiller en électronique
  • j'ai une diecimila avec des m168 déjà bootloadés
  • j'ai des m168 vierges que j'aimerais utiliser pour des circuits que je fabrique
  • a part l'environnement Arduino, je ne connais pas grand chose aux microcontrôleur (mais j'aime bien prospecter et apprendre)

Dans le PDF de mysmartusb j'ai trouvé ça :

Apparemment il n'y a que 6 pins qui sont utilisées.

En cherchant dans le playground, j'ai pu lire des infos sur la méthode "bitbang".

Est-ce que cela se fait en ligne de commande par le biais d'un terminal ?

Autrement, avec cette méthode on peut bootloader un atmega168 ?

Oui il faut passer par la ligne de commande mais finalement le plus embettant c'est de souder des fils sur la plaque arduino sur les connecteurs X1 a X4
Pour le bootcloner
J'ai jamais essayé personnellement.
Ca vaut peut etre le coup vu que le fer a souder n'est pas obligatoire :).

Nicolas

Merci Nrolland, les deux méthodes m'intéresse, mais je vais commencer par essayer le bootcloner.

Bien entendu je ferai un petit retour d'expérience.

tu as cette piste aussi Arduino AVR In System Programmer (ISP) – uCHobby
Il précise pas si ca marche avec un atmega168.
Mais c'est pas difficile a mettre en oeuvre.
Tu pourras utiliser la ligne de commande de ton avrdude fournit avec ta distribution de l'IDE arduino

Nicolas

Merci pour ce lien.

Qu'appelles tu l'Avrdude de l'ide Arduino ?

Pour l'instant je suis en train de faire un "socket" pour brancher un M168 en TQFP... c'est petit, il me faut une loupe pour travailler :wink:

si tu veux essayer de souder des smd tu as un tutorial chez sparkfun SMD How To - 2 - SparkFun Electronics
Mais bon perso j'ai jamais osé... :slight_smile:

Sinon pour avrdude c'est le logiciel qui est intégré dans l'arduino et utilisé pour faire un "burn" de l'atmega168.
Au début ils utilisaient uisp mais comme ce logiciel n'est plus maintenu par la communauté open source ils sont passé a avrdude.
En fait l'IDE arduino utilise un programme externe (avrdude) qui s'utilise normalement a la ligne de commande.

Nicolas

Merci pour ces explications, je pense que j'aurais besoin d'un coup de pouce si j'utilise ça...

pas de pb pour le coup de pouce sauf que je n'aurai pas de mac pour tester :'(.

Nicolas

J'essayerai de transposer tes indications pour un Mac :slight_smile:

J'ai fait mon adaptateur pour l'atmega168 en CMS :

Une broche en retrait :

Branchée sur l'Arduino :

J'ai essayé la méthode boot-cloner, mais ça ne fonctionne pas :-?

j'ai remarqué que l'on pouvait utiliser le serial monitor pendant le boot-clonage, lors de l'échec, le moniteur me renvoi :

Program Enable ERROR (result 1)

J'ai un peu cherché dans le sketch "arduino_boot_cloner.pde", mais pour l'instant je ne trouve pas ce qui cloche.

je n'ai pas d'expérience sur le bootcloner...
En tous les cas belle réalisation.

Nicolas

J'ai enfin réussi à faire tourner le sketch jusqu'au bout, mais apparemment le boot loader n'a pas atteint la cible.

J'aimerais essayer la méthode bit bang, j'ai déjà préparer mes prises, par contre je ne sais pas comment faire avec ma console.

La je maitrise plus :slight_smile:
Perso j'étais parti de cet article tuxgraphics.org: 07052, AvrUsb500v2 -- an open source Atmel AVR Programmer, stk500 V2 compatible, with USB interface

En résumé guido socher propose de faire un programmeur d'avr mais pour résoudre le pb de la poule et de l'oeuf (= comment programmer l'avr qui va servir de programmateur sans programmateur) il utilise le bitbang de la puce ftdi (très lent mais un fois que le bootloader est dessus = OK).

Pour cela il modifie uisp (un équivalent de avrdude qui permet de flasher un avr) pour qu'il puisse utiliser les pins bit bang du FTDI 232R. Il faut faire qq modif de ce code la http://tuxgraphics.org/common/src2/article07052/uisp-20050207-with-usb-bbpg-patch.tar.gz
puis le compiler.

Essaye de compiler ce code ci dessus sous mac et après je t'indiquerai la suite si OK (je sais pas si c'est compilable sous mac).

Ok, je vais essayer de faire ça... :slight_smile: