Objetivos
Material requerido.
Arduino Uno o similar dañado | |
Un Shield ISP AVR | |
Un ATMEGA 328 de repuesto |
Arduino UNO averiado y como resolverlo
Suelo visitar centros educativos para hablar con profesores y responsables de tecnología de nuestra zona (Hay que vender ya sabes) y con mucha frecuencia me suelo encontrar con cajones que tiene unos cuantos Arduinos averiados , típicamente UNOs, que están ahí a la espera de ir a la basura pero sin acabar de decidirse.
Las razones para esta mortandad de Arduinos son fáciles. Los alumnos no se caracterizan por su cuidado en el manejo del material y aunque el UNO es robusto hay perrerías que no son capaces de soportar y acaban muriendo en acto de servicio.
Me ha parecido que hay un cierto desconocimiento de las principales causas de mortandad de los UNOs y que hay en general poca idea de que hacer en estos casos, y como son baratos podemos reemplazarlos y listo. Pero a mí eso de tirar no sé qué tiene que hace que me pique algo por dentro, y tras ver muchos cadáveres de Arduinos me parece que el tema de esta semana tiene un cierto interés, ya que nos va a permitir recuperar parte de estas placas siniestradas.
Vamos a ver como reemplazar el chip ATMEGA 328 de un Arduino UNO y reprogramarlo con el Bootloader para que extendamos su vida útil.
Típicas averías de un Arduino UNO
En realidad suelen ser 2. La primera es que se ha quemado el chip de comunicaciones lo que no tiene remedio.
El chip que controla el USB es un integrado de superficie (SMD) que no resulta viable de sustituir en condiciones normales, por la dificultad de despegarlo sin herramientas especiales, y porque soldar sus patillas darían dolor de cabeza al más pintado.
Esta avería se caracteriza porque nuestro IDE no detecta el Arduino cuando lo conectamos, o bien porque aun cuando lo detecta no es capaz de comunicarse con él.
Como os decía este chip no se puede reemplazar con las habilidades habituales y buena voluntad. No hay más remedio que organizar el entierro.
Pero hay otro problema muy típico que consiste en que se daña el ATMEGA328 que es el corazón pensante de nuestro venerado Arduino UNO y este es mucho más fácil de reemplazar.
Pero claro, para que no sea fácil, había que complicar todo un poco y es que tu ATMEGA funcione como Arduino hay que instalarle un cierto programa que es quien nos escucha cuando hablamos con él por el USB (Entre otras cosas). Este programa es lo que se llama el Bootloader o gestor de arranque de Arduino y tiene que estar instalado en el MCU (MIcro controlador) antes de poder usarlo como Arduino.
Normalmente los chips ATMEGA328 no vienen con ese Bootloader Arduino porque el fabricante los vende en blanco por decirlo así y salvo que el vendedor os avise de que incluye el Bootloader tendréis que hacerlo vosotros a mano. La vida es dura.
Bien ¿Y cómo programamos ese dichoso Bootloader?
Pues en realidad es relativamente fácil. Se puede hacer un montaje con una protoboard, un cristal y unos condensadores, pero a mí siempre me ha parecido una lata y como siempre algunos fabricantes nos lo han puesto a huevo para que los vagos podamos hacer este tipo de cosas. Hay un Shield llamado ISP AVR (Es largo de explicar lo de estas siglas) que nos resuelve el asunto:
Básicamente lo conectamos a un Arduino que funcione y trae todo lo necesario para programar el MCU sin complicarnos la vida y además trae un socket ZIF (Zero Insertion Force) que evita que dañemos los pines del chip por muy manazas que seamos (Que os conozco)
Conectáis el shield a vuestro Arduino y una vez montado hay que instalar el chip vacío al que le vamos a meter el Bootloader. Para ello ponéis la palanquita del zócalo vertical y ahora buscáis el notch o marca en el atmega.
Tienes que poner el chip de forma que el notch o marca del pin 1, queden junto a la palanca del zócalo y una vez colocado gira con suavidad la palanca y chip quedara aprisionado
Todo listo y ahora viene la parte de programar. Lo primero es instar el programa con:
Archivo\Ejemplos\ArduinoISP
Este programa es el que va a gestionar la grabación de nuevo chip. Súbelo a tu Arduino y seguimos. Tenemos que seleccionar ahora que el programador que vamos a usar es Arduino as ISP
Herramientas\Programador\Arduino as ISP
Y una vez hecho esto basta con asegurarnos de que tenemos nuestro Arduino con el shield ISP conectado y le das a
Herramientas\Quemar Bootloader y listo.
Puedes repetir la operación tantas veces como desees (Con varios chips diferentes) y luego simplemente puedes reemplazar el ATmega de tu Arduino UNO con estos nuevos chips ya con Bootloader. Con un poco de suerte recuperaras más de un Arduino dado por muerto.
Aquí os dejo un link a un mini video con todo esto: