Yún – Sketch Uploader

luca 10/02/2014 7

Una delle caratteristiche più comode di Arduino Yun è la possibilità di caricare sketch via rete, direttamente dall’IDE (come vi ho mostrato in un precedente tutorial). L’IDE di Arduino utilizza il protocollo Bonjour (porta UDP 5353) per cercare le schede Yun presenti in rete: questa modalità di auto-discovery funziona bene in rete locale ma non su Internet.

Il progetto di oggi vi consente di fare l’upload di un nuovo sketch tramite una pagina web protetta, facilmente accessibile anche via Internet.

Descrizione

Il processo di upload di un nuovo sketch effettuato dall’IDE è il seguente (grazie alle spiegazioni di Federico Fissore sul forum):

  • copia (via SCP) la versione compilata (.hex) dello sketch su Arduino Yun
  • aggiunge il bootloader (comando merge-sketch-with-bootloader.lua)
  • programma il microcontrollore ATMega32u4 (comando run-avrdude)

Ho sviluppato una applicazione in PHP che effettua le operazioni sopra elencate; per questioni di sicurezza l’applicazione è protetta da password (la stessa utilizzata per accedere a Yun via SSH o per l’upload via IDE).

Ringraziamenti

Per prima cosa mi fa piacere ringraziare:

Prerequisiti

La parte server di Yun Sketch Uploader è sviluppata in PHP: perché possa essere eseguita da Linino è necessaria l’installazione di alcuni pacchetti; installazione che può essere fatta tramite la WebGUI o via terminale.

Per prima cosa ricordatevi di aggiornare l’elenco dei pacchetti disponibili:

opkg update

quindi installiamo php5 e il modulo CGI per l’utilizzo dal webserver uHttpd:

opkg install php5 php5-cgi

sono necessari anche alcuni moduli aggiuntivi:

opkg install php5-mod-json php5-mod-hash php5-mod-session

Infine configuriamo uHttpd come spiegato qui.

Installazione

I files che compongono il progetto sono disponibili nel mio repository Github.

Utilizziamo il pulsante Download ZIP per scaricarli in un unico archivio:

Estraiamo l’archivio in una cartella sul nostro disco fisso (es. sul disco C). Spostiamo quindi la cartella sulla scheda SD, nel percorso arduino\www e rinominiamola in sketchUploader:

Inseriamo la scheda SD nel nostro Yun e proviamo a collegarci all’indirizzo http://yun_ip/sd/sketchUploader/

Se l’installazione ha avuto successo, dovrebbe apparire la maschera di login di sketchUploader:

Nella prossima pagina vedremo come utilizzarlo…

Pagine: 1 2

7 Comments »

  1. Dario 13/02/2014 at 11:09 - Reply

    Bravo. Adesso torna su CBC ;)

  2. Dario 19/02/2014 at 16:46 - Reply

    “08 visitor(s) online”
    fai tornare su CBC anche gli altri 7

    ;)

  3. Michael 23/05/2014 at 18:56 - Reply

    This is so cool! Great work!
    Is it possible to copy/padte the .hex path into the uploaded (instead of navigating to file) since this path changes erverytime… and we have to get this path from IDE window anyway?

    • luca 23/05/2014 at 19:47 - Reply

      Hi Michael,

      thanks! it requires some changes in the javascript code to add a text box where you can paste the path of the hex file… but of course you can paste it in the “open file” dialog instead of navigating to file.

  4. Michael 07/06/2014 at 03:09 - Reply

    Hi Luca,
    I found a strange behavior… sketchUploader loads and reboots Yun… but the code is not actually changes. I get errors like this.. when uploading via ethernet or with sketchUploader. Wifi and usb work just fine. Have you seen this before?

    ====================
    vrdude: AVR device not responding
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    /usr/bin/run-avrdude: line 4: can’t open /tmp/efuse: no such file
    rm: can’t remove ‘/tmp/efuse’: No such file or directory
    sh: 203: unknown operand
    ====================

    • luca 07/06/2014 at 10:42 - Reply

      Hi Michael,

      that’s strange, it seems the “linux” part of the Yun can’t communicate with the atmega32u4… are you able to upload sketches using the Arduino IDE via wifi?

  5. Michael 09/06/2014 at 14:40 - Reply

    Hi Luca,
    I use 1.5.6-r2 IDE, and recently updated the firmware to the latest from Arduino.
    Wifi and usb upload work fine. I think sketchUploader worked fine at first (confusing now)… but sketchUploader and ethernet definitely don’t work now on multiple Yun modules.
    Still scratching my head. I really like your sketchUploader.. it should be a standard package that makes the Yun so much better!

Leave A Response »