Estas son algunas notas sobre la programación del Attiny85 usando el Leonardo; no pretende ser un tutorial detallado, sino solo remarcar los puntos más importantes. Las notas están basadas en los tutoriales de highlowtech y de PeterVH, vale la pena revisarlos a detalle para enterarse un poco más de las peculiaridades de Leonardo con el Attiny. Se asume que se esta familiarizado o haber revisado ya algún tutorial de programación de Attiny con Arduino.

Ya es muy bien conocido cómo pasar de la placa Arduino al Attiny85 para reducir aún más los proyectos. Casi todos los tutoriales asumen que se esta utilizando el Arduino UNO aunque algunos no los digan explícitamente. Pero hay detalles que simplemente no aplican si se esta utilizando el Leonardo.

Detalle preliminar sobre la versión del Arduino IDE

Si se sigue algún tutorial de programar el Attiny con el Leonardo, hay que tener en cuenta la version de Arduino IDE  que utilizan. En mi caso, al seguir paso a paso tutoriales, no me resultaba nada como lo mostraban, y al final fue que el IDE usado en tutorial era muy viejo y nuevas versiones se comportaban diferente.

Estas notas son para el  Arduino IDE 1.6.7. de Windows. Para el caso del Leonardo, la diferencia de pasos con los tutoriales viejos o que utilizan versiones muy antiguas del IDE son:

  •  Ya no hay que hacer el cambio de puertos a la hora de definirlos en el ArduinoISP script. Este era un paso que prácticamente todos los tutoriales indicaban.
  • Forma de modificar el «programmers.txt». Parece que  existe un problema en Windows  con el protocolo para quemar en bootloader. Se tiene que modificar el protocolo. Se hace de forma similar a lo que dicen los tutoriales, pero en vez de crear un archivo nuevo «programmers.txt» en el folder de sketchs, se modifica el archivo original de la carpeta de «Hardware» del sitio donde se instaló el Arduino IDE en C:\. Esto se hizo porque siguiendo los pasos de los tutoriales no se veía que se añadiera la nueva opción en «tools->programmers» como lo señalaban.

Además, hay que tener en cuenta que se deben de tener las librerías necesarias para el Attiny. Se puede seguir el tutorial de highlowtech donde lo muestra de forma muy detallada cómo instalarlas de forma sencilla.

Crear nueva opción en la lista de «programmers» para Leonardo

Como se comentó en el punto anterior, al utilizar el Leonardo en Windows hay que crearle un nuevo perfil en «programmers». Esto se hace modificando el «programmers.txt» (en la  carpeta «Hardware» de instalación de Arduino). Se añaden las siguientes lineas la final de «programmers.txt» (obtenido del foro de github sobre este tema, link aquí):

arduinoispleo.name=Arduino as ISP (Leonardo)
arduinoispleo.communication=serial
arduinoispleo.protocol=arduino
arduinoispleo.speed=19200
arduinoispleo.program.protocol=arduino
arduinoispleo.program.speed=19200
arduinoispleo.program.tool=avrdude
arduinoispleo.program.extra_params=-P{serial.port} -b{program.speed}

Con esto ya aparecerá en «tools->programmers» la opción de «Arduino as ISP (Leonardo)», que se utilizará para conectarse con el Attiny85. Nota: Arduino as ISP (Leonardo) es el nombre que utilicé en este caso, se le puede cambiar a gusto personal en del parametro arduinoispleo.name de lo que se añadió en el «programmers.txt».

Pasos para programar el Attiny85 con el Leonardo

Asumiendo que ya se tienen las librarías del Attiny instaladas y de que ya se han hecho las modificaciones en «programmers.txt», los pasos para programar el Attiny85 con el Leonardo en Windows serían:

  1. En el IDE, carga el ArduinoISP script en el leonardo como cualquier otro programa.
  2. Conectar el Attiny al Leonardo por el bloque de ICISP. Nota: para los primerizos y los que no se leen todas las especificaciones antes de jugar con la placa (como yo), este fue el primer error, ya que los puertos del bloque de ICISP en el Leonardo no están mapeados como lo están en el UNO. La conexión sería así:

    Conexión Attiny85 con Leonardo (Imagen de PeterVH )
  3. En el IDE, seleccionar el Attiny : «Tools->Board->ATtiny»
  4. Seleccionar el programador modificado para el Leonardo: «Tools->Programmer->Arduino as ISP (Leonardo)».
  5. Hacer click en «Tools->Burn Bootloader». Se debe de hacer rápido y sin errores.
  6. Cargar el script que se quiera. Nota: hay que verificar que el script que se carga considera los puertos del Attiny85. El mapeo de los puertos puede verse en la pagina de highlowtech o en la de sparkfun.

Con esto, y basándose en los demás tutoriales que hay sobre el tema, debería de ser suficiente para programar el Attiny sin muchas dificultades y al primer intento.