# 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 : . 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 ou via la page GitHub des 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. ```bash 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 : ```c /* 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 : 1. Brancher l'Arduino sur un port USB. 2. Dans `Outils => Type de carte`, sélectionner le modèle exact (ex. *Arduino Uno*). 3. Dans `Outils => Port`, sélectionner le port détecté (ex. `/dev/ttyACM0` ou `/dev/ttyUSB0`). 4. Cliquer sur le bouton **Téléverser** (flèche vers la droite) dans la barre d'outils. ## - Pour aller plus loin - Documentation officielle : - Référence du langage Arduino : - Cartes ESP8266 et ESP32 : ajouter les URL de gestionnaire de cartes additionnel dans `Fichier => Préférences`, puis installer le package correspondant via `Outils => Type de carte => Gestionnaire de cartes`.