Catégories
Liens
Ceci est une ancienne révision du document !
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 :
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
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%).
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.