8.7 KiB
Installer le logiciel Arduino IDE sous Linux
Cet article a été testé avec les distributions suivantes :
- Linux Mint 21 / 22 (64 bits)
Je privilégie une installation « manuelle » de l'application Arduino IDE afin d'utiliser une des dernières versions. Certaines options et paramètres n'apparaissent pas dans les versions packagées des distributions (et la version disponible dans les dépôts officiels est souvent l'ancienne 1.8.x).
Date de relecture : 16 mai 2026
Depuis septembre 2022, Arduino IDE 2.x est la version officielle activement développée. Au moment de cette mise à jour, la dernière version stable est Arduino IDE 2.3.8. L'ancienne version 1.8.19 (parfois appelée « Legacy IDE » ou « Java IDE ») n'est plus maintenue que pour les correctifs de sécurité critiques ; il est recommandé de migrer vers la 2.x.
Vous pouvez vérifier la dernière version disponible sur le site officiel : https://www.arduino.cc/en/software. Adaptez les informations ci-dessous suivant les numéros de version trouvés sur le site arduino.cc.
- Méthode recommandée : Arduino IDE 2.x (AppImage)
Arduino IDE 2.x est distribué sous Linux au format AppImage, un format autonome qui ne nécessite aucune installation système. Cette méthode remplace l'ancienne procédure d'extraction d'archive .tar.xz utilisée pour la 1.8.x.
- Télécharger l'AppImage
Depuis votre dossier home ou un autre dossier personnel, téléchargez l'AppImage Arduino IDE depuis une ligne de commande :
wget -O arduino-ide.AppImage https://downloads.arduino.cc/arduino-ide/arduino-ide_2.3.8_Linux_64bit.AppImage
Remarque : le numéro de version dans l'URL évolue. Vérifiez la dernière version sur https://www.arduino.cc/en/software ou via la page GitHub des releases : https://github.com/arduino/arduino-ide/releases.
- Prérequis système
L'AppImage nécessite FUSE pour s'exécuter. Sur certaines distributions récentes (Ubuntu 22.04+, Debian 12), il faut installer libfuse2 :
sudo apt update
sudo apt install libfuse2
- Rendre l'AppImage exécutable et la déployer
ligne 1 : rendre le fichier exécutable.
ligne 2 : déplacer l'AppImage dans un dossier accessible à tous : /opt/.
ligne 3 : créer un lien symbolique dans /usr/local/bin/ pour pouvoir lancer l'application depuis n'importe où en tapant simplement arduino-ide.
chmod +x arduino-ide.AppImage
sudo mv arduino-ide.AppImage /opt/arduino-ide
sudo ln -sf /opt/arduino-ide /usr/local/bin/arduino-ide
- Créer un raccourci sur le bureau
Contrairement à la 1.8.x, l'AppImage ne fournit pas de script install.sh. Pour créer un raccourci dans le menu des applications, créez le fichier ~/.local/share/applications/arduino-ide.desktop avec le contenu suivant :
[Desktop Entry]
Name=Arduino IDE
Comment=Arduino IDE 2.x
Exec=/opt/arduino-ide
Icon=arduino-ide
Terminal=false
Type=Application
Categories=Development;IDE;Electronics;
StartupWMClass=arduino-ide
Puis actualiser le cache des icônes :
update-desktop-database ~/.local/share/applications/
- Méthode alternative : Arduino IDE 1.8.19 (Legacy)
Si vous avez besoin de l'ancienne version (matériel ancien, plugins non portés, etc.), la procédure historique reste fonctionnelle.
- Télécharger Arduino IDE 1.8.19
wget -O arduino.tar.xz https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz
- Déployer Arduino IDE Software
ligne 1 : déployer Arduino IDE dans un dossier accessible à tous : /opt/. L'archive tar va extraire les fichiers dans un dossier comportant le numéro de version.
ligne 2 : ajuster les droits du dossier extrait.
ligne 3 : si un lien /opt/arduino existait, le détruire avec unlink.
ligne 4 : réaliser un alias vers le dossier /opt/arduino. De cette manière, on s'affranchit du numéro de version. Nous pouvons également déployer de nouvelles versions sans perturber la précédente.
ligne 5 : exécuter le script install.sh qui permet de créer un raccourci sur le bureau graphique.
sudo tar -xvf arduino.tar.xz -C /opt
sudo chown -R root:root /opt/arduino-1.8.19
sudo unlink /opt/arduino 2>/dev/null
sudo ln -s /opt/arduino-1.8.19/ /opt/arduino
sudo /opt/arduino/install.sh
- Problèmes rencontrés après le déploiement
- Droits sur tty et dialout
Pour pouvoir accéder au port série de la carte Arduino, il faut ajouter l'utilisateur courant aux groupes tty et dialout :
sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER
Si vous venez de saisir ces lignes de commande, vous devez fermer votre session (ou redémarrer) pour que les nouveaux groupes soient pris en compte.
- Serial port not selected / brltty bloque le port
Sous Mint, Ubuntu et certaines distributions, le service brltty (afficheur braille) peut capturer les ports série et empêcher l'IDE de détecter la carte. Si la carte n'apparaît jamais dans Outils => Port, désinstallez brltty :
sudo apt remove brltty
- Aucune carte n'est détectée
Plusieurs causes possibles :
- Câble USB défectueux : certains câbles USB sont câblés uniquement pour l'alimentation (charge) et n'ont pas les fils de données. Testez avec un autre câble.
- Pilote du convertisseur USB-Série manquant : les clones Arduino utilisent souvent un CH340 ou un CH341. Le pilote est intégré au noyau Linux récent (5.x et +), mais sur de très anciens systèmes il peut manquer.
- Permissions : vérifier que l'utilisateur appartient bien au groupe
dialout(voir section précédente).
Pour vérifier que la carte est bien détectée par le système :
dmesg | tail -20
ls /dev/ttyACM* /dev/ttyUSB*
Une carte Arduino Uno officielle apparaîtra comme /dev/ttyACM0, un clone basé sur CH340 comme /dev/ttyUSB0.
- Java (Arduino IDE 1.8.x uniquement)
Cette section ne concerne plus Arduino IDE 2.x, qui est basé sur Electron (Theia IDE + arduino-cli) et n'utilise pas Java.
Pour la 1.8.x, le message suivant peut apparaître :
java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver
Un Java est embarqué avec l'application (/opt/arduino/java/bin/java -version). En cas de problème, installer OpenJDK 8 :
sudo apt update
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java
- Exécuter votre premier programme
Voici le programme classique d'introduction : il fait clignoter la LED intégrée à la carte (broche 13 sur la plupart des Arduino) toutes les secondes.
Il n'est pas nécessaire de brancher une LED externe : la LED présente sur la carte conviendra parfaitement à cet exemple.
Dans l'IDE, ouvrez Fichier => Exemples => 01.Basics => Blink. Vous pouvez également copier le code suivant dans votre éditeur :
/*
Clignotement (Blink)
Allume la LED pendant 1 seconde,
puis l'éteint pendant 1 seconde.
*/
// Numéro de la broche à laquelle est connectée la LED.
// LED_BUILTIN désigne la LED intégrée à la carte (13 sur Uno).
int led = LED_BUILTIN;
// Le code dans cette fonction est exécuté une fois au démarrage.
void setup() {
// On indique que la broche de la LED est une sortie :
// on va modifier sa tension.
pinMode(led, OUTPUT);
}
// Le code dans cette fonction est exécuté en boucle.
void loop() {
digitalWrite(led, HIGH); // allumer la LED (5 V sur la broche)
delay(1000); // attendre 1000 ms = 1 s
digitalWrite(led, LOW); // éteindre la LED (0 V sur la broche)
delay(1000); // attendre à nouveau 1 seconde
}
Deux déclarations de fonctions sont obligatoires dans tout programme Arduino :
setup(): exécutée une seule fois au démarrage.loop(): exécutée en boucle, indéfiniment.
Dans cet exemple, nous appelons trois fonctions de la bibliothèque Arduino :
pinMode(): configure une broche en entrée ou en sortie.digitalWrite(): applique un niveau logique haut (5 V) ou bas (0 V) sur une broche.delay(): fait une pause exprimée en millisecondes.
Pour téléverser ce code :
- Brancher l'Arduino sur un port USB.
- Dans
Outils => Type de carte, sélectionner le modèle exact (ex. Arduino Uno). - Dans
Outils => Port, sélectionner le port détecté (ex./dev/ttyACM0ou/dev/ttyUSB0). - Cliquer sur le bouton Téléverser (flèche vers la droite) dans la barre d'outils.
- Pour aller plus loin
- Documentation officielle : https://docs.arduino.cc/
- Référence du langage Arduino : https://www.arduino.cc/reference/fr/
- Cartes ESP8266 et ESP32 : ajouter les URL de gestionnaire de cartes additionnel dans
Fichier => Préférences, puis installer le package correspondant viaOutils => Type de carte => Gestionnaire de cartes.