DebianDebian Based

How To Install Arduino IDE on Debian 13

Install Arduino IDE on Debian 13

If you work with microcontrollers on Linux, getting Arduino IDE running on your system is one of the first things you need to do. Debian 13, codenamed Trixie, is the current stable release and comes with a few quirks that can trip up new users during the Arduino IDE setup process. This guide walks you through how to install Arduino IDE on Debian 13 using three proven methods, covering everything from a legacy APT install to the modern Flatpak approach. By the end, you will have a working Arduino IDE on Debian 13 setup, your board permissions configured, and your first sketch ready to upload.

What Is Arduino IDE and Why Does Debian 13 Matter?

Arduino IDE is a free, open-source integrated development environment built specifically for writing, compiling, and uploading code to Arduino microcontroller boards. It supports the AVR architecture and has become the standard tool for both hobbyists and embedded systems developers worldwide.

The jump from Arduino IDE 1.8.x to the modern IDE 2.x series was significant. Version 2.x introduced a Language Server Protocol (LSP) for intelligent code autocomplete, a built-in hardware debugger, a redesigned board and library manager, and a much cleaner interface overall. If you are starting a new project today, IDE 2.x is the right choice.

Debian 13 Trixie matters for one specific reason: it ships with FUSE 3.x by default instead of FUSE 2.x. This change breaks the standard AppImage launch behavior, which relies on FUSE 2. If you try to run an Arduino IDE AppImage on a fresh Trixie system without installing the correct compatibility library, nothing will happen. This guide addresses that directly so you do not waste time debugging a silent failure.

Prerequisites

Before you begin, confirm the following:

  • Operating system: Debian 13 (Trixie), fully installed with a desktop environment (GNOME, KDE, XFCE, or similar)
  • User privileges: A non-root user account with sudo access
  • CPU architecture: x86-64 (Intel or AMD). Arduino IDE v2.x AppImage and ZIP do not support ARM. Run uname -m to verify; the output should read x86_64
  • Internet connection: Required for downloading packages and the Arduino IDE board index
  • Disk space: At least 1 GB of free space for the IDE and board packages
  • Terminal access: Basic comfort with running commands in a terminal

Step 1: Update Your Debian 13 System

Always update your system before installing new software. This step refreshes the local package index and applies any pending upgrades, which prevents version conflicts down the line.

Run the following two commands:

sudo apt update
sudo apt upgrade

apt update fetches the latest package metadata from Debian’s repositories. apt upgrade applies available updates to installed packages. Run both, let them finish, then proceed.

Step 2: Choose Your Installation Method

Debian’s default APT repository includes only the legacy Arduino IDE 1.8.x series. For the modern IDE 2.x, you need to go outside the default repository. Three methods work reliably on Debian 13:

Method Version Best For
APT (default repo) 1.8.x (Legacy) Maximum system stability, classroom use
Flatpak (Flathub) 2.x (Latest) Most users, automatic updates
AppImage 2.x (Latest) Portability, running multiple versions

For most users, Flatpak is the recommended path. It delivers the latest Arduino IDE v2 with automatic updates and no FUSE complications.

Step 3: Install Arduino IDE via APT (Legacy v1.8.x)

If you specifically need the legacy 1.8.x version for compatibility with older projects or a controlled lab environment, APT is the simplest route.

Install via APT

sudo apt install arduino

APT will automatically pull in all required dependencies. The install takes about one to two minutes depending on your connection speed.

Verify the APT Installation

apt-cache policy arduino

Expected output:

arduino:
  Installed: 2:1.8.19+dfsg1-1
  Candidate: 2:1.8.19+dfsg1-1

If you see the installed version listed, the install succeeded.

Launch Arduino IDE (APT)

From the terminal:

arduino

From the GUI: open the Activities menu, click Show Applications, and search for “Arduino IDE.”

Know the Limitations

The APT version does not include the LSP-based autocomplete, built-in debugger, or the improved board/library manager from IDE 2.x. It also does not receive upstream feature updates from Arduino. If you only need basic sketch editing and uploading for well-supported boards like the Arduino Uno or Mega, it works fine. For anything more modern, use the Flatpak or AppImage method.

Step 4: Install Arduino IDE v2 via Flatpak (Recommended)

Flatpak sandboxes applications from your system, which reduces dependency conflicts and keeps your Debian installation clean. The Flathub repository delivers the latest stable Arduino IDE v2 build with automatic update support.

Install Flatpak

If Flatpak is not already installed on your system:

sudo apt install flatpak

Confirm the install:

flatpak --version

Enable the Flathub Repository

Flathub is the main app store for Flatpak applications. Add it with this command:

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

The --if-not-exists flag prevents errors if Flathub is already configured.

Install Arduino IDE v2 via Flatpak

flatpak install flathub cc.arduino.IDE2 -y

If you prefer the legacy v1.8.x through Flatpak instead of APT:

flatpak install flathub cc.arduino.arduinoide -y

The -y flag skips the confirmation prompt. The download is around 200-400 MB depending on runtime dependencies.

Verify the Flatpak Installation

flatpak list | grep arduino

Expected output:

Arduino IDE    cc.arduino.IDE2    2.x.x    stable    system

Launch Arduino IDE (Flatpak)

From the terminal:

flatpak run cc.arduino.IDE2

From the GUI: log out and back in after the Flatpak install, then search for “Arduino IDE” in your application launcher.

Update Arduino IDE via Flatpak

flatpak update cc.arduino.IDE2

Run this periodically to stay on the latest release.

Step 5: Install Arduino IDE v2 via AppImage (Portable)

The AppImage method gives you a fully portable, self-contained version of Arduino IDE that needs no system-wide installation. It is the right pick if you want to carry the IDE on a USB drive, run multiple versions at once, or avoid Flatpak entirely.

Install the Required FUSE Library (Debian 13 Specific)

This step is critical and specific to Debian 13 Trixie. Debian 13 ships FUSE 3.x by default, but AppImages require the FUSE 2.x libraries to mount and execute. Without this package, the AppImage will silently fail to launch.

Install the correct compatibility package for Trixie:

sudo apt install libfuse2t64

Do not install the older libfuse2 package on Debian 13. The package name changed to libfuse2t64 in Trixie. Installing the wrong one will not solve the problem.

Download the Arduino IDE AppImage

Go to the official Arduino IDE releases page:

https://github.com/arduino/arduino-ide/releases

Download the file named:

arduino-ide_X.X.X_Linux_64bit.AppImage

Replace X.X.X with the latest version number shown on the releases page.

Make the AppImage Executable

Navigate to the folder where you downloaded the file and run:

chmod +x arduino-ide_*_Linux_64bit.AppImage

chmod +x sets the executable permission on the file. Without this step, Linux will not run it.

Run the AppImage

./arduino-ide_*_Linux_64bit.AppImage

The ./ prefix tells your shell to look in the current directory for the file. Arduino IDE should open within a few seconds.

Create a Desktop Shortcut (Optional)

To integrate the AppImage into your application menu, create a .desktop file:

nano ~/.local/share/applications/arduino.desktop

Paste the following content and adjust the path to match your actual file location:

[Desktop Entry]
Name=Arduino IDE
Exec=/home/YOUR_USERNAME/arduino-ide_2.x.x_Linux_64bit.AppImage
Icon=/home/YOUR_USERNAME/arduino.png
Type=Application
Terminal=false
Categories=Development;Electronics;

Save the file, then run:

update-desktop-database ~/.local/share/applications/

Arduino IDE will now appear in your application launcher.

Step 6: Grant USB Port Access for Board Uploads

This step applies to all three installation methods and is the most commonly missed configuration. Without it, you will not be able to upload sketches to your board.

Arduino boards communicate over serial ports located at /dev/ttyUSB* or /dev/ttyACM*. On Debian, access to these ports requires membership in the dialout group.

Add your user to the group:

sudo usermod -a -G dialout $USER

The -a flag appends to your existing groups instead of replacing them. The -G dialout specifies the target group. $USER is an environment variable that automatically fills in your current username.

Log out and back in for the change to take effect. A full reboot also works.

Verify your group membership:

groups $USER

Look for dialout in the output. If it appears, you are good to go.

Step 7: First Launch and Configure Arduino IDE on Debian 13

With the IDE installed and your permissions set, here is how to get your first sketch running. This section covers the configure Arduino IDE on Debian 13 workflow to get you operational quickly.

Install Arduino IDE on Debian 13

Explore the IDE Interface

Arduino IDE 2.x has five main areas:

  • Toolbar: Verify, upload, serial monitor, and serial plotter buttons
  • Sketch editor: Where you write your code
  • Sidebar: Board manager, library manager, debug panel
  • Output console: Shows compile and upload logs
  • Status bar: Displays selected board and port

Install a Board Package

Go to Tools > Board > Board Manager. Search for your board’s platform:

  • For Arduino Uno, Mega, Nano: search “Arduino AVR Boards” and install it
  • For ESP32: search “esp32” by Espressif and install it
  • For Raspberry Pi Pico (RP2040): search “Arduino Mbed OS RP2040 Boards”

Click Install next to the correct package. The IDE downloads and installs the toolchain for that board. An active internet connection is required.

Set Your Board and Port

Go to Tools > Board, then select your specific board model. Go to Tools > Port and select the serial port your board is connected to (typically /dev/ttyACM0 for Uno or /dev/ttyUSB0 for clones).

Upload the Blink Example

Go to File > Examples > 01.Basics > Blink. Click the Upload button (the right-facing arrow). Watch the output console for Done uploading. If you see that message, your entire setup works correctly.

Optimize Editor Preferences

Go to File > Preferences and enable:

  • Show line numbers (essential for reading error messages)
  • Enable code folding (helps manage large sketches)

Troubleshooting Common Issues on Debian 13

AppImage Does Not Launch (FUSE Error)

Symptom: Clicking or running the AppImage does nothing, or the terminal shows a FUSE-related error.

Cause: Missing libfuse2t64 package. Debian 13 Trixie uses FUSE 3.x by default, and AppImage requires FUSE 2.x compatibility.

Fix:

sudo apt install libfuse2t64

Then run the AppImage again.

“Cannot Execute Binary File” Error

Symptom: The terminal returns bash: cannot execute binary file when running the AppImage.

Cause: Either a CPU architecture mismatch or a corrupted download. Arduino IDE AppImage only supports x86-64.

Fix: Confirm your architecture:

uname -m

If the output is not x86_64, you cannot run the AppImage. Use the Flatpak method instead.

Serial Port Not Visible or “Access Denied”

Symptom: No port listed under Tools > Port, or the upload fails with a permission error.

Cause: Your user is not a member of the dialout group.

Fix:

sudo usermod -a -G dialout $USER

Log out and back in, then retry the upload.

Flatpak Version Cannot Access USB Ports

Symptom: The Flatpak-installed IDE opens correctly but cannot detect your connected Arduino board.

Cause: Flatpak sandboxing restricts access to /dev devices by default.

Fix: Install Flatseal to manage Flatpak permissions:

flatpak install flathub com.github.tchx84.Flatseal

Open Flatseal, select Arduino IDE from the list, and enable access to All device files under the Devices section. Restart the IDE after applying the change.

Board Not Recognized After Connecting USB

Symptom: Board is physically connected but does not appear under Tools > Port.

Cause: Either a charge-only USB cable, a faulty port, or a missing kernel module.

Fix: Try a different cable and a different USB port. Then check whether the kernel recognized the device:

dmesg | tail -20

Look for lines mentioning ttyACM or ttyUSB. If nothing appears, the cable or port is the problem.

How to Remove Arduino IDE from Debian 13

Remove APT Version

sudo apt remove arduino

To also remove leftover configuration files:

sudo apt purge arduino

Remove Flatpak Version

flatpak uninstall --delete-data cc.arduino.IDE2 -y
flatpak uninstall --unused

The --delete-data flag removes user data associated with the app. --unused cleans up orphaned Flatpak runtimes.

Remove AppImage Version

Delete the AppImage file:

rm ~/arduino-ide_*_Linux_64bit.AppImage

Remove the desktop shortcut if you created one:

rm ~/.local/share/applications/arduino.desktop
update-desktop-database ~/.local/share/applications/

Congratulations! You have successfully installed Arduino IDE. Thanks for using this tutorial to install the latest version of the Arduino IDE on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the official Arduino IDE website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is a dedicated and highly skilled Linux Systems Administrator with over a decade of progressive experience in designing, deploying, and maintaining enterprise-grade Linux infrastructure. His professional journey began in the telecommunications industry, where early exposure to Unix-based operating systems ignited a deep and enduring passion for open-source technologies and server administration.​ Throughout his career, r00t has demonstrated exceptional proficiency in managing large-scale Linux environments, overseeing more than 300 servers across development, staging, and production platforms while consistently achieving 99.9% system uptime. He holds advanced competencies in Red Hat Enterprise Linux (RHEL), Debian, and Ubuntu distributions, complemented by hands-on expertise in automation tools such as Ansible, Terraform, Bash scripting, and Python.
Back to top button