rainerkeller.de

Arduino development setup on Fedora without IDE

2025-11-16

This article describes how to setup an Arduino development environment on Fedora 43 using the Arduino IDE.

Setup

Install required distro packages

dnf install avr-gcc-c++ avr-libc avrdude

Getting the sources

To work with Arduino, you need the core sources and some helper Makefiles. These are fetched from the source code repositories directly using git without installing any packages.

mkdir arduino-sdk
cd arduino-sdk
git clone https://github.com/sudar/Arduino-Makefile
git clone https://github.com/arduino/Arduino.git
cd Arduino
git checkout 1.8.19

The sources for the specific boards are also required. Download the file avr-1.8.3.tar.bz2 or clone ArduinoCore-avr and unpack into the folder arduino-sdk/Arduino/hardware/arduino This installs the required code for Atmel AtMega CPU based boards. For other board types see package_index_bundled.json for the required files.

Setting up a project

Create a new directory for your project. In this example an Arduino Pro Mini is used.

Makefile

ARCHITECTURE=avr
ARDUINO_VERSION = 1819
BOARD_TAG = pro
BOARD_SUB = 8MHzatmega328
ARDUINO_PORT = /dev/{SERIAL_DEVICE}
ARDUINO_LIBS =
ARDUINO_DIR  = {YOUR_PATH}/arduino-sdk/Arduino
include {YOUR_PATH}/arduino-sdk/Arduino-Makefile/Arduino.mk

Finally create your source code like this hello world example.

helloworld.ino

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  Serial.println("Hello World");
  delay(1000);
}

Building and uploading the program to the Arduino is done using this commands

make
make upload

The uploaded program is now sending Hello World via the serial terminal. To see these you have to use your favorite serial terminal program like kermit, minicom, gtkterm or other. A different way is to use socat for this:

socat - /dev/ttyUSB0,echo=1,crnl,raw,b115200
This should show the sent output.


Anbieterkennzeichnung
Datenschutzhinweis

This work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.