Hoy os vamos a contar como actualizar el DVMega sin necesidad de utilizar un programador externo, con nuestra Raspberry.
El siguiente tutorial está basado en la información proporcionada por G0WFV, que podéis encontrar aquí.
Lo primero que tenemos que realizar será un puente. Este puente activará que el micro entre en modo de programación. Debemos avisar que la realización de este puente «anula» la garantía del DVMega. El puente hay que realizarlo entre el GPIO04/Pin7 de la Raspberry y el condensador que vemos a la derecha del SMA sobre el cristal de cuarzo. Vamos a verlo en una imagen, que seguro que queda mas claro:
Una vez tengamos preparada la modificación en el hardware vamos a ver que software necesitamos. Entramos a nuestra Raspberry con el usuario pi, una vez en la consola ejecutamos los siguientes comandos:
sudo apt-get update
sudo apt-get install git avrdude python-dev python-rpi.gpio
git clone https://github.com/openenergymonitor/avrdude-rpi.git
cd avrdude-rpi
Bien, una vez llegados aquí no continuamos con las instrucciones que nos da G0WFV ya que, a nosotros por lo menos, no nos funcionó y tuvimos que realizar unas modificaciones al código….
Tenemos que editar el fichero autoreset, nano autoreset (nano, vi, vim… el editor que mas os guste…) Localizamos la siguiente parte:
def reset():
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.HIGH)
time.sleep(0.32)
GPIO.output(pin, GPIO.LOW)
y lo modificamos dejándolo de la siguiente forma:
def reset():
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.HIGH)
time.sleep(0.30)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.5)
Grabamos las modificaciones que hemos realizado y continuamos con los pasos que nos da G0WFV:
sudo cp autoreset /usr/bin
sudo cp avrdude-autoreset /usr/bin
sudo mv /usr/bin/avrdude /usr/bin/avrdude-original
sudo ln -s /usr/bin/avrdude-autoreset /usr/bin/avrdude
Ya lo tenemos listo. Ahora tenemos que ir a la página web del fabricante para bajarnos el firmware.
Descargamos el firmware, lo descomprimimos, y lo dejamos en el directorio /home/pi. Vamos a dicho directorio:
cd /home/pi
y ahí ejecutamos lo siguiente:
avrdude -p m328p -c arduino -P /dev/ttyAMA0 -b 115200 -F -U flash:w:<FICHERO> -v
cambiamos el texto <FICHERO> por el nombre de nuestro fichero, y ya tenemos nuestro DVMega actualizado.