Herramientas de usuario

Herramientas del sitio


Barra lateral

Logo ACEMU

acemu:articulos:articulos_tecnicos:software:arduino_ide

¡Esta es una revisión vieja del documento!


Adafruit Trinket ATTiny85 y el IDE de Arduino

Cómo manejar este bicho desde Linux

Referencias: Introducción al Trinket de Adafruit

Para poder programar este dispositivo, empleando el IDE de Arduino (versión 1.6 o superior), es necesario hacer unas cuantas cosas antes.

Registrar el dispositivo en el IDE de Arduino

Para eso seguir las instrucciones que se recomiendan en el sitio web de Adafruit y podemos resumir como sigue:

1) Primero debemos conseguir el firmware de Adafruit para que el IDE de Arduino sea capaz de manejarlo. Para eso ir a Unofficial-list-of-3rd-party-boards-support-urls y allí buscar el link que corresponde a Adafruit:

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

Copiar ese link en las preferencias del IDE de Arduino: Ir a

Archivo –> Preferencias

y en esa ventana, copiar el link donde dice Additional Boards Manager URLs

2) Instalar los board managers en el IDE de Arduino: para eso vamos a

Herramientas –> Placa: –> Board Managers

eso abre la ventana de Boards Manager y allí seleccionamos Type –> Contributed y del listado que aparezca en la ventana, seleccionar e instalar el marcado como Adafruits AVR Boards

De esa manera, de ahora en adelante aparecerán en las placas disponibles, las que correspondan a Adafruits, entre ellas seleccionar la Adafruit Trinket 8MHz cuando queramos programar el trinket

3) Como programador hay que usar el USBtinyISP

Habilitar la lectura/escritura al dispositivo en Linux

Ojo: el trinket sólo funciona en puertos USB 2.0. No lo podemos manejar con USB 3.0!

El problema es el siguiente: si cuando conectamos el trinket ejecutamos el comando dmesg, veremos algo por el estilo:

[10862.096128] usb 3-5: USB disconnect, device number 13
[10862.750972] usb 3-5: new low-speed USB device number 14 using xhci_hcd
[10862.777018] usb 3-5: New USB device found, idVendor=1781, idProduct=0c9f
[10862.777027] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10862.777032] usb 3-5: Product: Trinket
[10862.777036] usb 3-5: Manufacturer: Adafruit

Vemos que lo reconoce con IDs de Adafruit: idVendor=1781, idProduct=0c9f

Si ejecutamos el comando lsusb obtendremos una listado de dispositivos USB, entre los cuales encontramos el trinket como USBtiny

Bus 003 Device 014: ID 1781:0c9f Multiple Vendors USBtiny

En este caso el dispositivo quedó en el Bus 3, identificado como dispositivo 14 (vemos que coindice con los datos que declara dmesg.

Así que si miramos los permisos que tiene el dispositivo:

ls -la /dev/bus/usb/003/014

puede que veamos algo similar a lo siguiente:

crw-rw-r-- 1 root root 189, 269 sep 14 23:41 /dev/bus/usb/003/014

Eso quiere decir que sólo root tiene permiso de escritura. Los demás usuarios del sistema sólo pueden leer del dispositivo.

Para poder cambiar esta situación, tenemos que crear una regla de udev nueva.

Como root, podemos crear un archivo nuevo en /etc/udev/rules.d, llamémosle 99-USB-Adafruit-Trinket.rules y pongamos en su interior el siguiente texto:

# Set Group for Adafruit Trinket
SUBSYSTEM=="usb", ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", GROUP="plugdev"

En este caso vemos que estamos identificando el dispositivo a partir de sus idVendor e idProduct, y lo estamos asociando al grupo plugdev.

al salvar el archiv, el subsistema de udev detecta que apareció un archivo de reglas nuevo y las activa inmediatamente. Si ahora miramos los permisos en el filesystem, vemos que el dispositivo cambió de grupo:

crw-rw-r-- 1 root plugdev 189, 269 sep 14 23:41 /dev/bus/usb/003/014

(probablemente haya que reiniciar el trinket para que el cambio tega efecto…)

Ahora alcanza con asignar al o los usuarios de linux que queramos que tengan permisos de escritura, al grupo plugdev (puede ser cualquier grupo que ya exista en /etc/group o podemos crear un grupo nuevo, a gusto de consumidor).

Por ejemplo en mi caso el archivo /etc/group quedó con lso siguiente linuea modificada:

plugdev:x:46:ken

De esa manera me aseguro que tener los permisos adecuados para escribir (programar) el trinket.

acemu/articulos/articulos_tecnicos/software/arduino_ide.1473909169.txt.gz · Última modificación: 2016/09/14 20:12 por kenneth