reaDIYboot: un bootloader Wi-Fi qui récupère les fichiers HEX sur Internet

C'est encore moi !

Dans ce post j'ai présenté la carte que j'utilise et j'ai mentionné un bootloader Wi-Fi qui exploite le module RN171.

Je viens de publier le code source (abondamment commenté) sur GitHub : voir ici.

Ce bootloader, baptisé reaDIYboot est capable de télécharger un fichier .hex, d'analyser son contenu et de l'écrire dans la mémoire Flash d'un ATmega1280.

Vu les ennuis rencontrés par certains bootloaders avec les programmes un peu lourds, j'ai fait attention à tester reaDIYboot avec des programmes de toutes tailles - y compris jusqu'à la taille maximale - et à vérifier le résultat en comparant un dump de la mémoire Flash avec le fichier hex d'origine.

Au niveau du débit, ça marche bien à 250 kbaud, à 500 kbaud ça ne marche plus - ça viendra peut-être un jour XD

Ah oui et le protocole STK500 de base est implémenté aussi dans reaDIYboot, donc on peut toujours programmer la carte en la branchant en USB et en cliquant sur Upload dans l'IDE Arduino.

Si vous avez des questions ou des remarques, je suis toute ouïe !

Génial, Bravo.

Benvenuto:
Ce bootloader, baptisé reaDIYboot est capable de télécharger un fichier .hex, d'analyser son contenu et de l'écrire dans la mémoire Flash d'un ATmega1280.

Désolé Benvenuto, t'as l'air (et t'es pas le seul ici je pense) de bien, voir très bien maitriser toute cette technologie, mais il faut penser aussi qu'il a des débutants (comme moi) et que du coups, il serait bon aussi d'expliquer aussi de manière "simple".
Donc, j'aimerais savoir par exemple à quoi ça sert ou à quoi ça peut servir de "télécharger un fichier .hex, d'analyser son contenu et de l'écrire dans la mémoire Flash d'un ATmega1280." ?
Merci.

Bonjour jplaville
on pourrait peut être dire les choses comme ça :
équippée de ce bootloader une carte peut recevoir son programme comme d'habitude par le port USB mais également aller chercher son programme sur un site distant (internet par WiFi)
ça ouvre tout un tas de possibilités comme la mise à jour automatique d'une application à chaque mise sous tension

al1fch:
Bonjour jplaville
on pourrait peut être dire les choses comme ça :
équippée de ce bootloader une carte peut recevoir son programme comme d'habitude par le port USB mais également aller chercher son programme sur un site distant (internet par WiFi)
ça ouvre tout un tas de possibilités comme la mise à jour automatique d'une application à chaque mise sous tension

Ok, pas mal en effet.
Et c'est possible aussi de de faire la mise à jour sans remettre la carte sous tension, car cela serait le top en matière de maintenance.
Je vais même pousser le bouchon plus loin (Maurice), le top serait de pouvoir publier sur un serveur le .ino et que la carte ce reprogramme automatiquement à chaque changements du fichier.
Mais c'est vrai que c'est déjà pas mal du tout.
Bravo.
Benvenuto, tu parles de ATmega1280, mais dans ton lien GitHub, ca parle de WiFly, tu peux faire la manip sur une Mega qui a aussi un ATmega1280 ou bien il faut la fameuse super nouvelle carte avec Wi-Fi/MP3/SD intégrés du post dont tu mets le lien ?

La fameuse carte que je mentionne n'est pas indispensable - un Arduino Mega connecté à un module Wi-Fi équivalent (Wifly RN131 ou Wifly RN171) fonctionnerait aussi bien.

D'ailleurs quand j'ai commencé à développer ce bootloader, je n'avais pas encore la carte avec tous les composants intégrés, j'utilisais un Seeeduino Mega et un shield avec un RN171.

Ok, super merci Benvenuto pour toutes ces précisions.
Et avec une carte ethernet à la place du wifi, ça le fait pas du coups si j'ai bien compris !?