Digispark ATtiny85 con Arduino IDE: instalación, controladores y primer blink

Digispark ATtiny85 con Arduino IDE: instalación, controladores y primer blink

0 comments

Introducción

¿Es posible programar un microcontrolador con el Arduino IDE sin usar un Arduino UNO, sin cables USB y en una placa más pequeña que una moneda grande?

En esta práctica utilizaremos la Digispark ATtiny85 con USB, una placa de desarrollo compatible con Arduino que se conecta directamente al puerto USB de la computadora.

Esta placa está basada en el microcontrolador ATtiny85 y cuenta con 6 pines (P0 a P5), aunque P3 y P4 comparten la comunicación USB y P5 funciona como reset de fábrica. También tiene un regulador de voltaje y un LED integrado, lo que la hace ideal para proyectos pequeños, económicos y portátiles.

Durante esta práctica aprenderemos a identificar sus pines, configurar el Arduino IDE para programarla, y cargar nuestro primer programa para hacer parpadear el LED que trae integrado.

¿Qué es la Digispark ATtiny85?

La Digispark es una placa de desarrollo diseñada originalmente por Digistump. Su característica más llamativa es que el conector USB está formado por las propias pistas de la placa: no necesita cable, se inserta directamente en el puerto USB.

A diferencia del Arduino UNO, que utiliza un chip adicional para comunicarse por USB, la Digispark implementa la comunicación USB por software dentro del mismo ATtiny85. Para ello utiliza un pequeño programa de arranque llamado bootloader (Micronucleus), que permite cargar programas desde el Arduino IDE.

Esto la hace muy compacta y económica, aunque con menos pines y memoria que un Arduino UNO.

Placa de desarrollo Digispark ATtiny85 con conector USB integrado

Placa de desarrollo Digispark ATtiny85 con conector USB integrado.

Características principales

Característica Valor
Microcontrolador ATtiny85
Frecuencia de trabajo 16.5 MHz (configuración para USB del paquete Digistump)
Memoria de programa 8 KB (aproximadamente 6 KB libres para tu programa; el resto lo ocupa el bootloader)
Pines de entrada y salida 6 (P0 a P5), aunque P3 y P4 comparten la comunicación USB y P5 funciona como reset de fábrica
Salidas PWM 3 (P0, P1 y P4)
Entradas analógicas 4 (P2, P3, P4 y P5)
Alimentación Por USB, por una fuente externa de 5 V o de 7 a 35 V por el pin VIN (selección automática)
Regulador integrado 5 V, 500 mA
LEDs integrados LED de encendido y LED de prueba conectado a P1
Conexión USB Conector USB tipo A integrado en la placa
Dimensiones 26.8 × 19.3 mm

Estos valores corresponden a la ficha de la Digispark ATtiny85 La frecuencia de 16.5 MHz es la que configura el paquete de placas para que funcione la comunicación USB. Aunque el pin VIN admite hasta 35 V, se recomienda no pasar de 12 V para que el regulador no se caliente.

Distribución de pines

Cada pin de la Digispark puede cumplir varias funciones. Esta tabla resume las más importantes:

Pin Funciones Observaciones
P0 Digital, PWM, SDA (I2C) Uso libre
P1 Digital, PWM Tiene conectado el LED integrado
P2 Digital, analógica (A1), SCL (I2C) Uso libre
P3 Digital, analógica (A3) Línea de datos USB
P4 Digital, PWM, analógica (A2) Línea de datos USB
P5 RESET (no usar como E/S de fábrica) Con la configuración de fábrica funciona como reset; en clones solo entrega unos 3 V
5V Salida o entrada de 5 V Alimentación regulada
GND Tierra Referencia común
VIN Entrada de alimentación externa De 7 a 35 V (se recomienda no pasar de 12 V); pasa por el regulador

Importante: los pines P3 y P4 están conectados a las líneas de datos del USB. Si conectas algún componente a ellos, es posible que la computadora no reconozca la placa al momento de programarla. Además, P5 funciona como reset de fábrica, por lo que no se puede usar como entrada o salida. Para las prácticas conviene utilizar P0, P1 y P2.

Material necesario

  • Placa Digispark ATtiny85 con USB.
  • Computadora con el Arduino IDE instalado.
  • Opcional: cable de extensión USB, para conectar y desconectar la placa con mayor comodidad.

Configuración del Arduino IDE

A diferencia del Arduino UNO, la Digispark no viene incluida en el Arduino IDE, por lo que primero hay que instalar su paquete de placas.

Paso 1. Agregar la dirección del paquete. Abre el Arduino IDE y ve a Archivo → Preferencias. En el campo Gestor de URLs Adicionales de Tarjetas, pega la siguiente dirección. Si ya tienes otras direcciones, presiona el ícono de la derecha del campo y agrégala en una fila nueva.

https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json

Después presiona Ok en las dos ventanas. Esta dirección corresponde a una versión mantenida por la comunidad del paquete original de Digistump, que ya no recibe actualizaciones.


Paso 1: dirección del paquete agregada en el Gestor de URLs Adicionales de Tarjetas.

Paso 2. Buscar el paquete. Ve a Herramientas → Placa → Gestor de tarjetas y escribe Digistump AVR Boards en el buscador. Coloca el cursor sobre el resultado y presiona Instalar.


Paso 2: paquete Digistump AVR Boards en el Gestor de tarjetas.

Paso 3. Esperar la instalación. El IDE descarga las herramientas del paquete; la barra inferior muestra el avance. Espera a que termine y presiona Cerrar.


Paso 3: descarga e instalación del paquete en curso.

Paso 4. Seleccionar la placa. Ve a Herramientas → Placa → Digistump AVR Boards y elige Digispark. No elijas Digispark Pro (16 MHz): es otra placa con un chip diferente (ATtiny167).

Al elegir la placa aparecen dos opciones nuevas en el menú Herramientas:

  • Clock: elige 16.5 MHz - For V-USB, que es la frecuencia con la que funciona la comunicación USB de la placa.
  • Micronucleus variant: deja la opción Default (6650 bytes avail.).

Para comprobar que la placa está bien seleccionada, compila cualquier programa: el mensaje debe indicar un máximo de 6650 bytes (o 6586 bytes si elegiste la variante Recommended o Entry on reset). Si aparece un máximo de 14970 bytes, está seleccionada la Digispark Pro.

Nota: la Digispark no utiliza un puerto COM, por lo que no es necesario seleccionar ningún puerto en el menú de Herramientas.

Alternativa: si el gestor de tarjetas marca un error al instalar el paquete, puedes instalar ATTinyCore y elegir la placa ATtiny85 (Micronucleus / Digispark).

Instalación de los controladores en Windows

En Windows es necesario instalar los controladores de Digistump. Sin ellos, la computadora no reconoce la placa y el programa no se puede cargar.

¿Usas otro sistema? En macOS no se necesita instalar ningún controlador. En Linux tampoco se instala un controlador, pero hay que dar permiso de uso a la placa; los pasos están en la sección Configuración en Linux, más abajo.

Si usas Windows, sigue estos pasos:

Paso 1. Descargar los controladores. En la página de versiones del repositorio de Digistump en GitHub (github.com/digistump/DigistumpArduino/releases), busca el archivo Digistump.Drivers.zip y presiónalo para descargarlo.


Paso 1: archivo Digistump.Drivers.zip para descargar.

Paso 2. Descomprimir y ejecutar el instalador. Descomprime el archivo (clic derecho → Extraer todo) y abre la carpeta Digistump Drivers. Haz doble clic en Install Drivers, que elige la versión correcta automáticamente. También puedes ejecutar directamente DPinst64 si tu Windows es de 64 bits, o DPinst si es de 32 bits.


Paso 2: carpeta descomprimida con el instalador de controladores.

Paso 3. Iniciar el asistente. Se abre el Asistente para la instalación de controladores de dispositivos. Presiona Siguiente.


Paso 3: asistente de instalación; presiona Siguiente.

Paso 4. Autorizar la instalación. Windows pregunta si deseas instalar el software de Digistump LLC. Presiona Instalar. Si marcas la casilla Confiar siempre en el software de "Digistump LLC", no volverá a preguntar por los demás controladores del paquete; si no la marcas, presiona Instalar cada vez que aparezca el aviso.


Paso 4: aviso de Seguridad de Windows; presiona Instalar.

Paso 5. Finalizar. Cuando el asistente termine, presiona Finalizar y reinicia el Arduino IDE.

Para comprobar que funcionó, abre el Administrador de dispositivos y conecta la Digispark. Durante unos 5 segundos debe aparecer como Digispark Bootloader o dentro de Dispositivos libusb-win32, y después desaparecer. Es normal: el bootloader termina y la placa comienza a ejecutar su programa.

Configuración en Linux

En Linux el sistema ya reconoce la placa, por lo que no se instala un controlador. Solo hay que darle permiso a tu usuario para usarla mediante una regla udev. Sin esa regla, el Arduino IDE no puede escribir en la placa y la carga falla aunque la conectes a tiempo.

Paso 1. Crear la regla udev. Abre una terminal y ejecuta el siguiente comando. Te pedirá tu contraseña.

echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"' | sudo tee /etc/udev/rules.d/49-micronucleus.rules

Este comando crea el archivo 49-micronucleus.rules, que da permiso de uso a cualquier dispositivo con el identificador de la Digispark (16d0:0753).

Paso 2. Recargar las reglas. Ejecuta:

sudo udevadm control --reload-rules
sudo udevadm trigger

Paso 3. Desconectar y volver a conectar la placa. La regla se aplica a partir de la siguiente vez que conectes la Digispark.

Paso 4. Cargar el programa. Es igual que en Windows: presiona Subir en el Arduino IDE y conecta la placa cuando aparezca "Please plug in the device".

Si algo falla:

  • Si el IDE muestra un error relacionado con libusb, instala la librería que usa el cargador. En Ubuntu, Debian o Linux Mint: sudo apt install libusb-0.1-4. En otras distribuciones el comando de instalación cambia (por ejemplo, dnf en Fedora).
  • Si el error es de permisos, revisa que el archivo exista con cat /etc/udev/rules.d/49-micronucleus.rules y reinicia la computadora.

Práctica: hacer parpadear el LED integrado

Comenzaremos con el programa más sencillo: hacer parpadear el LED que la placa trae conectado en el pin P1. Para esta práctica no se necesita ningún componente adicional: solo la placa y la computadora.

// ==========================================
// DIGISPARK ATTINY85
// PRACTICA: PARPADEO DEL LED INTEGRADO
// LED INTEGRADO EN P1
// ==========================================

const int pinLed = 1;   // LED integrado en P1

void setup() {

  // Configurar P1 como salida
  pinMode(pinLed, OUTPUT);
}

void loop() {

  digitalWrite(pinLed, HIGH);  // Encender el LED
  delay(500);                  // Esperar medio segundo

  digitalWrite(pinLed, LOW);   // Apagar el LED
  delay(500);                  // Esperar medio segundo
}

¿Qué hace el programa?

Primero definimos el pin donde está conectado el LED integrado:

const int pinLed = 1;

En la Digispark, los pines se indican solo con su número: el pin P1 se escribe como 1.

En el setup() configuramos ese pin como salida:

pinMode(pinLed, OUTPUT);

En el loop() encendemos el LED, esperamos medio segundo, lo apagamos y volvemos a esperar:

digitalWrite(pinLed, HIGH);
delay(500);

digitalWrite(pinLed, LOW);
delay(500);

Cargar el programa en la placa

La Digispark se programa de forma diferente a un Arduino UNO: primero se presiona Subir y después se conecta la placa.

  1. Con la Digispark desconectada, presiona Subir en el Arduino IDE.
  2. Cuando el IDE muestre "Please plug in the device (will time out in 60 seconds)", conecta la Digispark al puerto USB.
  3. Verás "Device is found!" y, al terminar la carga, "Micronucleus done. Thank you!".
  4. El LED de la placa empezará a parpadear unos segundos después, cuando termine el tiempo de espera del bootloader.

Hay que conectarla después de presionar Subir porque el bootloader solo acepta programas durante los primeros segundos después de recibir energía. Si el LED parpadea cada medio segundo, el programa se cargó correctamente.

¿Qué hacer si la computadora no reconoce la placa?

Es el problema más común al usar la Digispark por primera vez. Estas son las causas más frecuentes:

  • Los controladores de Digistump no están instalados (en Windows).
  • La placa se conectó antes de presionar Subir, y el bootloader ya terminó su tiempo de espera.
  • Hay componentes conectados a P3 o P4 que interfieren con la comunicación USB. Desconéctalos mientras cargas el programa.
  • El puerto USB no hace buen contacto con las pistas de la placa. Un cable de extensión USB suele ayudar.
  • Algunos puertos USB 3.0 presentan problemas; conviene probar en un puerto USB 2.0 o mediante un hub.

Si el IDE muestra el mensaje de espera y nunca detecta la placa, desconéctala, presiona Subir nuevamente y vuelve a conectarla cuando aparezca el mensaje.

Ventajas de la Digispark ATtiny85

  • Tamaño muy reducido: cabe en proyectos donde un Arduino UNO no entra.
  • USB integrado: se programa sin cables ni programadores externos.
  • Compatible con el Arduino IDE: se programa con las mismas funciones que un Arduino.
  • Bajo costo: ideal para proyectos que se quedarán instalados de forma permanente.
  • Puede funcionar como dispositivo USB: con las librerías adecuadas puede comportarse como teclado o mouse.
  • Regulador integrado: admite alimentación externa por VIN; se recomienda de 7 a 12 V.

Aplicaciones

Esta placa puede utilizarse en diferentes proyectos electrónicos:

  • Control de LEDs y tiras LED pequeñas.
  • Teclados y atajos USB personalizados.
  • Lectura de sensores sencillos.
  • Control de relevadores y pequeños automatismos.
  • Juguetes y objetos interactivos.
  • Proyectos portátiles alimentados por USB.
  • Proyectos educativos de introducción a microcontroladores.

Digispark ATtiny85 vs. Arduino UNO

Característica Digispark ATtiny85 Arduino UNO
Microcontrolador ATtiny85 ATmega328P
Pines de entrada y salida 6 (P3 y P4 comparten la comunicación USB y P5 es reset) 20 (14 digitales y 6 analógicos)
Memoria de programa libre Aproximadamente 6 KB Aproximadamente 31.5 KB
Conexión USB Integrada en la placa, sin cable Mediante cable USB
Monitor Serial No disponible de forma directa Disponible
Tamaño Muy pequeño Mediano

Conclusión

En esta práctica aprendimos a utilizar la Digispark ATtiny85 con USB, una placa de desarrollo compacta y compatible con el Arduino IDE.

Aprendimos que esta placa implementa la comunicación USB mediante su bootloader, por lo que se programa conectándola directamente al puerto USB después de presionar Subir.

También aprendimos a identificar sus pines, a instalar el paquete de placas y los controladores, y a cargar nuestro primer programa para hacer parpadear el LED integrado en el pin P1.

Este proyecto representa una base muy útil para desarrollar proyectos más avanzados. Por ejemplo, podemos leer un sensor en las entradas analógicas, controlar un relevador o configurar la placa para que funcione como un teclado USB que escribe textos o ejecuta atajos de forma automática.

El siguiente paso recomendado sería conectar un LED externo en el pin P0 y controlar su brillo con PWM, o leer un sensor analógico en el pin P2.

Productos relacionados

Estos son los productos utilizados en esta práctica y puedes consultarlos directamente en Tecneu:

Productos utilizados en esta práctica

Placa de desarrollo Digispark ATtiny85 con USB

Digispark ATtiny85 con USB

Placa de desarrollo compacta utilizada para cargar el programa de parpadeo del LED integrado.

Comprar Digispark en Tecneu

Comentarios 

No comments

Dejar un comentario
Tu correo no será publicado, los campos requeridos estan marcados con *
Artículos relacionados
Suscríbete
Suscríbete a nuestro boletín y recibe las últimas ofertas y novedades.