agosto 5, 2017 admin

Ponerle nombre a nuestro MIDI-USB con Arduino (y que nuestro sistema permita tener diferentes instancias (ID’s) de Arduino midi-usb)

 

Quizá a más de a uno le ha pasado, cuando llega el hermoso momento de creer que vamos a llenar nuestro estudio de controladores MIDI hechos con arduino (y no solo controladores, sintetizadores, máquinas e inventos locos (?) ) pero posiblemente les haya ocurrido que el sistema no reconoce más de un dispositivo correctamente.

Actualización: Los increíbles de Yaeltex han hecho una web app para que no tengas que hacer esto. Benditos sean.

https://moco-lufa-web-client.herokuapp.com/#/

 

 

 

Acompáñeme a ver esta triste historia

 

En mac el comportamiento es el siguiente: El primer arduino usb-midi que conectamos será el que persista en el nombre del sistema. (Podemos reiniciar el caché MIDI en el apartado MIDI de las preferencias de Audio de la mac, al menos nos dará el nombre del primero que conectemos siempre). Esto es por la sencilla razón que el product ID será siempre el mismo y el sistema operativo cree que se trata del mismo hardware. Resulta muy incómodo (sobre todo al hacer tareas específicas con Ableton remote scripts o MAX/MSP donde debe reconocer exacto nombre del controlador) o cuando conectamos varios, los reconoce como quiere (o puede)  y les asigna un número/nombre según considera correcto. Horrible cuando tienes un live act configurado y no reconoce lo que debería, entre otros males del apocalipsis.

 

Captura de pantalla 2017-07-13 a las 22.01.43

en Mac, en el informe del sistema, apartado USB siempre encontraremos que cualquier controlador MIDI-USB hecho con arduino  tendrá el ID del producto 0x2048 (como es el caso del Controlador Arcade 16x II que hemos fabricado en el Musicmakerspace de G Martell muchas veces).

 

Creo que se están imaginando que hay que hacer. Cambiar el Product ID para que la computadora crea que es otro producto. Podría eventualmente cambiar el ID del fabricante (Atmel), pero básicamente podemos hacer el nuestro con nuestro nombre y nuestra firma de fabricante.

 

Manos a la obra

 

( Antes de comenzar: Debiste haber hecho los pasos para instalar el dfu-programmer hasta acá y aprender a usarlo, de ahí vamos a seguir por si aún no lo has hecho.)

 

Instalando las herramientas necesarias

 

El toolkit de AVR instalaremos Crosspack (o winavr en el caso de W.)

https://www.obdev.at/products/crosspack/download.html

 

Archivos de la librería para MIDI-USB

 

-Descargamos el source de HIDUINO (necesitaremos el SRC)

https://github.com/ddiakopoulos/hiduino

 

(nota: fracasé compilando moco-lufa desde cero (#porquemac) si alguien lo logra, que me avise. Sería exactamente lo mismo, ya que los dos proyectos dependen de la librería LUFA).

 

-Luego la librería de LUFA (esta versión sé que funciona 🙂 )

http://www.github.com/abcminiuser/lufa/archive/LUFA-140928.zip

 

-Opcional: Un editor de textos: Atom (gratis)

https://atom.io/

 

Generando el espacio de trabajo

 

Vamos a descargar la carpeta de LUFA, y dentro de ella encontraremos una carpeta llamada Projects; copiamos ahí la carpeta arduino-usb (que se encuentra en la carpeta src).

 

Captura de pantalla 2017-08-04 a las 21.42.43

Usando un editor de textos para cambiar los parámetros necesarios

 


Abrimos el archivo descriptors.c, y vemos las siguientes líneas:

Captura de pantalla 2017-08-04 a las 21.44.53

en .ProductID ponemos 0x2049 o cualquier otro valor de producto.

 

En esta página podemos ver a qué corresponde cada ID USB.

Captura de pantalla 2017-08-04 a las 21.48.40

http://www.the-sz.com/products/usbid/index.php?v=&p=2048&n=
Consecuentemente, podemos ponerle el nombre a nuestro proyecto además de nuestro nombre de fabricantes, en la siguientes líneas:

Captura de pantalla 2017-08-04 a las 21.45.40

Guardamos los cambios y ahora vamos a usar la terminal para compilar el bootloader de HIDUINO desde cero.

 

Captura de pantalla 2017-08-04 a las 21.58.26

Accedemos a la carpeta de la librería lufa 140928Captura de pantalla 2017-08-04 a las 21.58.54

y Escribimos make clean ; make (Comenzará a compilar)
se demorará unos minutos y luego si todo salió bien nos dirá que el archivo está listo para usarse (Dentro de la carpeta de proyecto, arduino-midi)

Captura de pantalla 2017-08-04 a las 22.01.45

Luego es cosa de programar nuestro arduino a modo DFU como en nuestro tutorial anterior. Y a disfrutar de múltiples proyectos conectados a la vez funcionando como debe (asegúrate de cambiar el ID cada vez 😉 )

 

Captura de pantalla 2017-08-04 a las 22.12.38

Modifiqué el bootloader de tres controladores diferentes y ahora el software Midi monitor los reconoce como diferentes:

 

Captura de pantalla 2017-08-04 a las 22.29.24

De igual manera se puede ver en la mac que tienen un ID diferente.

 

Captura de pantalla 2017-08-04 a las 22.31.37

nótese cómo se cambió el ID del producto a un número que ni siquiera sale en el catálogo de atmel.


Sería todo por ahora, queda disfrutar de sus controladores MIDI bien reconocidos por el sistema 🙂