J'ai commandé quelques Moteinos et j'espère pouvoir essayer les mises à niveau dans les prochains jours.
Johannes Ernst
Réponses:
6
La solution la meilleure et la plus simple que j'ai trouvée consiste à utiliser le Bluefruit EZ-Link d'Adafruit. Ils ont un module que vous branchez sur les broches Serial / Power / reset ( lien ici ) ou un blindage pour l'uno ( lien ici ). Ils ont également une excellente description et un guide pratique ( lien ici ) qui est assez bon. Il apparaît essentiellement comme un lien Bluetooth série dans l'IDE Arduino et vous le programmez comme d'habitude. Il a l'avantage supplémentaire d'être utile non seulement pour la programmation, mais aussi pour l'envoi et la réception de données.
Nous avons implémenté des mises à jour à distance sur un Arduino Pro Mini (ATMega328P) en mettant une commande "boot" dans le firmware normal. Comment cela fonctionne:
L'hôte envoie la commande "boot" à l'Arduino distant.
L'Arduino passe au chargeur de démarrage (adresse de programme 0x3C00 pour le Pro Mini)
L'hôte envoie le nouveau micrologiciel via la liaison à l'aide d'avrdude (protocole AVR109)
Cela ne nécessite pas de nouveau chargeur de démarrage ou matériel. Ce n'est pas une bonne solution pour les appareils commerciaux, car si le firmware téléchargé est corrompu, la carte ne pourra pas être mise en mode chargeur de démarrage sans réinitialisation matérielle.
Certains appareils de communication sans fil, tels que les XBees, ont un GPIO qui peut être basculé à distance. La connexion à la broche de réinitialisation Arduino permettra à la carte d'être réinitialisée dans le chargeur de démarrage à la place.
L' Arduino Yun peut être reflasher à distance (via wifi ou câble réseau): vous devrez sélectionner son adresse IP dans le menu "Outils> Cartes" de l'IDE Arduino puis appuyer sur le bouton de téléchargement comme d'habitude.
Il est possible d'écrire un chargeur de démarrage fonctionnant en RAM (ou même en Flash, peut-être dans un bloc de démarrage spécial - dépend du microcontrôleur).
Ce chargeur de démarrage doit pouvoir établir la communication sans fil, comprendre le protocole et effacer / écrire la mémoire Flash.
Il existe essentiellement deux approches pour la mise à niveau logicielle:
Le chargeur de démarrage recherche au démarrage une commande de "mise à niveau logicielle". S'il est reçu, il attend la séquence de programmation. S'il n'est pas reçu, il démarre l'application.
L'application est capable de recevoir une telle commande et donne alors le contrôle au chargeur de démarrage.
Le protocole que vous choisissez est presque hors de propos. Assurez-vous simplement qu'il y a suffisamment de ressources pour le garder en RAM / Flash. Sur un Arduino Due - par exemple - il y a plus que suffisamment de ressources pour une telle implémentation.
Les cartes Spark.io sont également très agréables pour les appareils de type Arduino programmables OTA. J'en ai un et je l'ai trouvé assez facile à travailler.
Réponses:
La solution la meilleure et la plus simple que j'ai trouvée consiste à utiliser le Bluefruit EZ-Link d'Adafruit. Ils ont un module que vous branchez sur les broches Serial / Power / reset ( lien ici ) ou un blindage pour l'uno ( lien ici ). Ils ont également une excellente description et un guide pratique ( lien ici ) qui est assez bon. Il apparaît essentiellement comme un lien Bluetooth série dans l'IDE Arduino et vous le programmez comme d'habitude. Il a l'avantage supplémentaire d'être utile non seulement pour la programmation, mais aussi pour l'envoi et la réception de données.
la source
Nous avons implémenté des mises à jour à distance sur un Arduino Pro Mini (ATMega328P) en mettant une commande "boot" dans le firmware normal. Comment cela fonctionne:
Cela ne nécessite pas de nouveau chargeur de démarrage ou matériel. Ce n'est pas une bonne solution pour les appareils commerciaux, car si le firmware téléchargé est corrompu, la carte ne pourra pas être mise en mode chargeur de démarrage sans réinitialisation matérielle.
Certains appareils de communication sans fil, tels que les XBees, ont un GPIO qui peut être basculé à distance. La connexion à la broche de réinitialisation Arduino permettra à la carte d'être réinitialisée dans le chargeur de démarrage à la place.
la source
L' Arduino Yun peut être reflasher à distance (via wifi ou câble réseau): vous devrez sélectionner son adresse IP dans le menu "Outils> Cartes" de l'IDE Arduino puis appuyer sur le bouton de téléchargement comme d'habitude.
la source
Il est possible d'écrire un chargeur de démarrage fonctionnant en RAM (ou même en Flash, peut-être dans un bloc de démarrage spécial - dépend du microcontrôleur).
Ce chargeur de démarrage doit pouvoir établir la communication sans fil, comprendre le protocole et effacer / écrire la mémoire Flash.
Il existe essentiellement deux approches pour la mise à niveau logicielle:
Le protocole que vous choisissez est presque hors de propos. Assurez-vous simplement qu'il y a suffisamment de ressources pour le garder en RAM / Flash. Sur un Arduino Due - par exemple - il y a plus que suffisamment de ressources pour une telle implémentation.
la source
Oui, ça peut se faire. Lowpowerlab.com a Moteino qui peut être programmé OTA.
la source
Les cartes Spark.io sont également très agréables pour les appareils de type Arduino programmables OTA. J'en ai un et je l'ai trouvé assez facile à travailler.
https://www.spark.io/
la source