Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

logiciels:arduino-midi:accueil

Ceci est une ancienne révision du document !


Arduino et MIDI

Faire apparaître la carte Arduino comme un appareil midi via USB. Très utile pour éviter d'installer les drivers sur les ordinateurs. Fonctionne avec les cartes UNO, MEGA et Leonardo.

L'idée est de reprogrammer le micro-contrôleur (atmega8u2 ou atmega16u2) dédié à la communication entre le port USB et le micro-contrôleur principal. Par défaut le programme permet une communication série, mais nous pouvons faire apparaître une Arduino en tant qu'appareil Midi, Joystick ou clavier.

Ressources : https://www.arduino.cc/en/Hacking/MidiWith8U2Firmware

ATMEGA16U2

DFU-PROGRAMMER

Sur une Carte Arduino UNO rev.3, il s'agit du ATMEGA16U2. Pour reprogrammer cette puce, il faut installer un programmeur, le dfu-programmer (voir DFUProgramming8U2). DFU pour Device Update Firmware.

Sur UBUNTU/Linux, cela semble très facile :

sudo apt-get install dfu-programmer

Mais la version semble ancienne (0.6.2) et ne pas prendre en compte la cible recherchée “atmega16u2”.

dfu-programmer --version
dfu-programmer --targets

Pour mettre à jour, télécharger la dernière version : https://sourceforge.net/projects/dfu-programmer/files/latest/download?source=files

sudo apt-get install build-essential libusb-1.0-0-dev
cd dfu-programmer-0.7.2/
./bootstrap.sh
./configure
make
sudo make install

La bonne version (0.7.2) et enfin dans la liste des cibles (targets), nous avons bien “atmega16u2”

dfu-programmer --version
dfu-programmer --targets

FLASHER

Pour reprogrammer la puce (flash) :

1-Reset
Il faut d'abord faire un reset de la puce. Pour cela il faut connecter la carte Arduino en USB à l'ordinateur et connecter le GND et RESET des pins mâles au dessus de la puce atmega16u2 ici avec un jumper (pins ISP). Voir une vidéo.

À partir de ce moment-là, la carte Arduino n'est plus reconnue en tant que périphérique USB/Série.

2-Erase
Après avoir enlever le jumper. Vous pouvez entrer cette commande pour effacer le programme de la puce

sudo dfu-programmer atmega16u2 erase 
Checking memory from 0x0 to 0x2FFF...  Not blank at 0x1.
Erasing flash...  Success

3-Remettre le programme par défaut
Aller dans le répertoire de votre logiciel Arduino

cd ~/Softs/Arduino/hardware/arduino/avr/firmwares/atmega

Vous trouverez un fichier “Arduino-usbserial-uno.hex”, c'est lui que nous allons flasher pour retrouver le comportement par défaut de la carte.

 sudo dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
Checking memory from 0x0 to 0xFFF...  Empty.
0%                            100%  Programming 0x1000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
0%                            100%  Reading 0x3000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
Validating...  Success
0x1000 bytes written into 0x3000 bytes memory (33.33%).

MIDI FIRMWARE

Flash

  1. Télécharger MOCOLufa : https://github.com/kuwatay/mocolufa
  2. Reset de l'atmega16u2
  3. Erase
  4. Flash du firmware Midi : sudo dfu-programmer atmega16u2 flash mocolufa/HEX/dualMoco.hex

Ce firmware permet de basculer en mode MIDI (par défaut) ou en mode serial en connectant les pins 4 et 6 avec un jumper, comme sur cette photo.

Vous pouvez ainsi assez facilement programmer l'Arduino normalement et ensuite utiliser l'Arduino comme appareil MIDI. Pour basculer il faut débrancher/rebrancher le câble USB.

Programme Midi

  1. Installer la librairie dans votre dossier Arduino/libraries
  2. Passer l'Arduino en mode serial (pins 4 et 6). Vous verrez apparaître la carte dans le sélecteur de Ports du logiciel Arduino.
  3. Téléverser un exemple de MIDI
  4. Passer l'Arduino en MIDI en enlever le jumper
  5. Visualiser le résultat sur un logiciel Midi
/home/resonancg/www/wiki/data/attic/logiciels/arduino-midi/accueil.1466120754.txt.gz · Dernière modification: 2016/06/17 01:45 de resonance