# Arduino — Open-Source Electronics Platform for Makers and Engineers > Program microcontrollers with the Arduino IDE and ecosystem — write C/C++ sketches, upload via USB, and tap into thousands of community libraries. ## Install Save in your project root: # Arduino — Open-Source Electronics Platform for Makers and Engineers ## Quick Use ```bash # Install Arduino CLI curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh # Initialize and install a board core arduino-cli core update-index arduino-cli core install arduino:avr # Compile and upload a sketch arduino-cli compile --fqbn arduino:avr:uno MySketch arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno MySketch ``` ## Introduction Arduino is an open-source electronics platform combining easy-to-use hardware (ATmega, SAMD, ESP32-based boards) with a software ecosystem for writing, compiling, and uploading firmware. Its simplified C/C++ API and massive library catalog have made it the standard entry point for embedded development. ## What Arduino Does - Provides an IDE and CLI for writing, compiling, and uploading microcontroller firmware - Abstracts hardware peripherals behind a portable API (digitalRead, analogWrite, Serial, Wire, SPI) - Offers a library manager with thousands of community-contributed libraries for sensors, displays, and communication protocols - Supports official boards (Uno, Mega, Nano, MKR) and third-party boards via the Board Manager - Includes Serial Monitor and Plotter for real-time debugging and visualization ## Architecture Overview The Arduino build system compiles C/C++ sketches using GCC cross-compilers for the target architecture (AVR, ARM, RISC-V). The core library provides the setup()/loop() entry point, hardware abstraction, and standard APIs. Board definitions (platform.txt, boards.txt) configure compiler flags, memory layout, and upload tools. The Library Manager resolves dependencies from a central index. ## Self-Hosting & Configuration - Install Arduino IDE 2.x or arduino-cli for headless CI/CD builds - Add third-party board URLs in Preferences to support ESP32, STM32, RP2040 - Install libraries via the Library Manager or from ZIP files - Configure board variants, CPU frequency, and upload speed in the board menu - Use arduino-cli in CI pipelines for automated build verification ## Key Features - Board Manager supporting 200+ board variants across multiple architectures - Library Manager with 6,000+ indexed libraries - Arduino IDE 2.x with autocomplete, debugger, and integrated Serial Plotter - arduino-cli for scripting, CI/CD integration, and headless builds - OTA update support on Wi-Fi-enabled boards (ESP32, MKR WiFi) ## Comparison with Similar Tools - **PlatformIO** — Multi-framework build system with deeper IDE integration; Arduino is simpler for beginners and has wider name recognition - **MicroPython** — Interpreted Python on MCUs; Arduino provides compiled C/C++ for deterministic timing and lower overhead - **ESP-IDF** — Espressif native SDK with more control over ESP32; Arduino provides a higher-level API at the cost of some flexibility - **STM32CubeIDE** — ST official IDE for STM32; Arduino offers cross-vendor portability ## FAQ **Q: Can I use Arduino with non-Arduino boards?** A: Yes. Third-party board packages support ESP32, ESP8266, STM32, RP2040, nRF52, and many others via the Board Manager. **Q: Is Arduino suitable for production firmware?** A: For low-complexity products, yes. For complex applications needing RTOS, DMA, or low-power modes, consider the vendor SDK or PlatformIO with the native framework. **Q: What is the difference between Arduino IDE 1.x and 2.x?** A: IDE 2.x is built on VS Code technology with autocomplete, a debugger, dark theme, and faster compilation. IDE 1.x is legacy but still maintained. **Q: How do I debug without a hardware debugger?** A: Use Serial.print() statements and the Serial Monitor/Plotter. For hardware debugging, IDE 2.x supports CMSIS-DAP and J-Link probes on ARM boards. ## Sources - https://github.com/arduino/Arduino - https://docs.arduino.cc/ --- Source: https://tokrepo.com/en/workflows/asset-77af917d Author: AI Open Source