Cargar programa compilado a Arduino

Hola quería saber si es posible cargar un programa ya compilado a un Arduino, por tanto sin tener acceso al código fuente, sin utilizar el IDE de Arduino. Agradecería mucho si hubiera alguna documentación al respecto.

Muchas gracias
Saludos,
Antonio.

Hola Antonio,

si es posible. Si no quieres usar el entorno arduino para cargar un .hex, lo puedes hacer directamente con "avrdude", es el programador que utiliza por dentro el entorno de desarrollo Arduino.

Este es el enlace donde puedes encontrar la información del programador:
http://www.nongnu.org/avrdude/

La línea de comandos que deberías usar es algo similar a esta:

avrdude -C<path a avrdude.conf>/avrdude.conf -v -patmega328p -cstk500 -P<tu puerto serie> -b57600 -D -U <fichero.hex>

Donde
<path a avrdude.conf> es el path al directorio donde tengas instalado el ejecutable arvdude.exe en la distribución arduino.

atmega328p es el procesador, indícale el AVR que quieras programar si es diferente.

Esto solo te funcionará si el micro tiene el bootloader de arduino o adaboot.

Aquí te dejo otro tutorial: AVR Tutorial - AVRDUDE

Si no, vas a necesitar un ISP.

Antonio,

Saludos desde Chilches! Si es que los chipirones se crían y ellos solos se juntan :wink:

Saludos,

Paco

NADA, no hay manera.

tuve que hacerme un programa muy critico desde avr studio 5.

1º intente cargarlo desde el IDE del ardu, compile el blink esperando encontrar un blink.hex, en la esperanza de renombrar el mio para que lo tragase, pero imposible encontrar. desde el studio 5 ni lo intento.

2º me empapo bien de todos los hilos que mencionan el avrdude, que son muchisimos, todos con el mismo problema, que no encuentran las palabras magicas para que trage,
y es que debe influir: el programador fisico (stk500,v1,v2, dragon, tiny?,,, por ningun arduino),el puerto (facil de encontrar), los baudios y protocolo, el tiempo de espera del bootloader, etc,,,
y sin embargo la IDE lo hace, alguien por aqui intercepto la comunicacion con el dude, pero no, asegura que hay dos .conf , yo solo encuentro el del avr/etc, ¿?.

a mi en concreto me interesa para el nano, uno y mega, y uso el soft v 0023

alguien se sabe las palabras magicas?.

AÑADIDO: es increible, se supone que esto emite en abierto pa todos los publicos, sin embargo la unica indicacion de lo que hace el ide por dentro es lo que ocupa en memoria tras copilar, todo el dia explorando y ni una referencia de nivel medio a ni de que hay ni como obtener un .hex copilado , ni como descargarlo, ni na.

no es que critique la plataforma arduina, pero esto parece mas cerrao que un maqintos, un intento de protegernos del micro, y a el de nosotros.

una de las maximas de todo buen programador es "tener el control", ahora mismo yo no tengo el control, lo tiene el ide.

y por ultimo, me gustan los bocatas, no el pan. me gustan los pic, y el arduino mas, porque ya viene en plaquita, con bootloader, y con usb, pero quiero tener opcion a no comerme el ide.

Pues no has buscado suficientemente bien, por que no está para nada escondido

Para sacar la localización del .hex compilado y ver los parámetros del avrdude sólo tienes que apretar 'shift' mientras le das al botón de subir el código a la placa:
http://wiki.kungfulabs.com/arduino/simulacion (al final del todo)

Parámetros para llamar al avrdude

El ejecutable/binario del avrdude está en: arduino0023\hardware\tools\avr\bin

avrdude -C PATH_AL_IDE_ARDUINO/arduino0023/hardware/tools/avr/etc/avrdude.conf -p atmega328p -c stk500v1 -P\\.\NOMBRE_PUERTO_SERIE -b 115200 -D -U flash:w:PATH_AL_HEX/TU_HEX.hex:i

Cosa que se habló éste mismo lunes, asi que...

Y si no saliera en el IDE, todavía quedaría la opción de mirar el código fuente para ver la lógica que crea dicha línea para ejecutar:
https://github.com/arduino/Arduino/blob/new-extension/app/src/processing/app/debug/AvrdudeUploader.java

chiva, he de decirte que tienes razon en todo, adema de rapido.

tu conjuro para el avrdude funciono, aunque como no me aclaro bien con las direciones, meti todo en el mismo saco y funciono:

avrdude -C avrdude.conf -p atmega328p -c stk500v1 -PCOM5 -b 115200 -D -U flash:w:pulsos.hex:i

y ahora veo en el osciloscopio que el puerto ya hace lo que pretendo.

y tambien me recordaste que efectivamente al principio busque cosas nuevas tras copilar, pero lo habia olvidao.
OH, que verguenza, soy un mete patas, que pronto volvere a meterla.

No te preocupes, a todos nos pasa en mayor o menor frecuencia, pero habías dejado al pobre proyecto Arduino a la altura del betún, jejeje :smiley:
Y ahora que releo mi post, parece escrito un poco agresivamente :disappointed_relieved:

Un saludo