Tags: ,

In this tutorial, we’ll look at how to install the Arduino IDE and CLI software on the Raspberry Pi and combine the strengths of both systems.

Check your system configuration

To know which version of the IDE to download and install, you need to know the specifics of your system. In particular, the kernel architecture (Linux kernel). There are several possible commands.

uname -a #display os and kernel info
cat /proc/version 
i386/i486/i586/i686/armv7l32 bit
x86_64(Intel)/aarch64(Arm)/armv864 bit
cat /proc/cpuinfo #cpu architecture

The most direct command is to demand how many bits a LONG variable is encoded.

getconf LONG_BIT
 # result is 32 or 64

Arduino IDE Legacy installation

On the Arduino download page, select the version corresponding to your system and download it.

You can perform this procedure from the command line. knowing the name of the file arduino-1.8.19-linux.tar.xz

for my aarch64 system :arduino-1.8.19-linuxaarch64.tar.xz

wget https://downloads.arduino.cc/arduino-1.8.19-linuxaarch64.tar.xz

Browse to the archive, then unzip the folder.

tar -xvf arduino-1.8.19-linuxaarch64.tar.xz
rm arduino-1.8.19-linuxaarch64.tar.xz

Then install the software

cd arduino-1.8.19
sudo ./install.sh

Serial port connection problem

If you have a problem connecting to the Arduino’s serial port, you may have limited authorization.

Check serial port access rights

ls -l /dev/ttyACM*


crw-rw---- 1 root dialout 166, 0 févr. 15 12:47 /dev/ttyACM0

You must then grant read and write rights to

sudo chmod a+rw /dev/ttyACM0

Arduino IDE 2.0 Installation

It appears no official builds were made for Raspberry Pi. There is a third party build than can be tested.

To be updated

Bonus: Installing Arduino-CLI on Raspberry Pi

If your system doesn’t have access to a graphical interface (headless, SSH access), you can use command lines to create, compile and upload your Arduino scripts.

Another more recent and powerful tool is Arduino-CLI, which you can install with the command

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
mv bin/* Arduino/
cd Arduino
chmod a+x arduino-cli
alias arduino-cli='sudo ./arduino-cli'

Update the list of supported cards

arduino-cli core update-index

Then install the card manager

arduino-cli core install arduino:avr

Check the cards connected to the Raspberry Pi and note the FQBN names.

arduino-cli board list

Creating a new sketch

arduino-cli sketch new mysketch

Modify the sketch with the desired code

nano mysketch/mysketch.ino
void setup() {
        Serial.println("System ready");

void loop() {
        Serial.println("System running");

Compile the code by specifying the name of the card (find the name under the FQBN column with

arduino-cli compile --fqbn arduino:avr:mega mysketch/

Download code to card

arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:mega mysketch/

Installing new libraries

arduino-cli lib install library_name

To open a serial monitor, you can use Putty

sudo apt-get install putty putty-tools
sudo putty /dev/ttyACM0 -serial -sercfg 9600,8,n,1,N &

Add URLs for managing ESP32 and ESP8266 cards

Create a configuration file

arduino-cli config init

Modify the file to add the map urls

sudo nano /root/.arduino15/arduino-cli.yaml
    additional_urls: [

Then update the manager

arduino-cli core update-index
acros2@acros2-desktop:~/Arduino$ arduino-cli core update-index
Downloading index: package_index.tar.bz2 downloaded                                                                                           
Downloading index: package_esp32_index.json downloaded                                                                                        
Downloading index: package_esp8266com_index.json downloaded                                                                                   
Downloading index: package_index.tar.bz2 downloaded                                                                                           
Downloading index: package_esp32_index.json downloaded                                                                                        
Downloading index: package_esp8266com_index.json downloaded 

Installing the manager for ESP32 and ESP8266

arduino-cli core install esp32:esp32
arduino-cli core install esp8266:esp8266

To know the fqbn name to use according to the arduino-cli board listall esp32

arduino-cli compile --fqbn esp32:esp32:esp32 mysketch
arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32 mysketch


How useful was this post?

Click on a star to rate it!

Average rating 3.7 / 5. Vote count: 3

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?