For an open source platform for microcontroller development, the first results are arduino/arduino-cli (This is a command-line toolchain that provides the core functionality for compiling, uploading, and managing libraries and board support for the Arduino ecosystem, serving as the essential backend for development environments), arduino/arduino (This is the official Arduino IDE and core development environment, providing the complete suite of tools for board management, code compilation, serial communication, and library handling required for the ecosystem) and arduino/arduino-ide (This is the official Arduino IDE, providing a comprehensive development environment that includes board management, a library manager, and serial monitoring for the entire Arduino ecosystem). arduino/arduino-pro-ide and tinygo-org/tinygo round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore the best open-source Arduino libraries and tools. Hand-picked by activity and relevance to help you compare and pick the right one.
Arduino CLI is a command line interface for compiling, uploading, and managing libraries and board cores for Arduino-compatible hardware. It functions as a microcontroller toolchain manager and hardware programming tool, providing utilities to discover and install the platform definitions and compilers required for various hardware architectures. The project features an RPC-enabled development daemon that allows external programs to trigger internal tool operations and manage automated electronics workflows programmatically. It also includes an interactive hardware debugger for real-time trou
This is a command-line toolchain that provides the core functionality for compiling, uploading, and managing libraries and board support for the Arduino ecosystem, serving as the essential backend for development environments.
Arduino is a physical computing platform and an open hardware standard used to build interactive electronic objects and standalone devices. It provides a C++ microcontroller IDE and an embedded systems framework for writing, compiling, and uploading code to microcontroller boards. The ecosystem facilitates embedded systems programming and interactive hardware prototyping, allowing for the creation of devices that respond to environmental changes or user input. It enables the development of physical computing projects by managing the connection and flashing of code to various hardware boards.
This is the official Arduino IDE and core development environment, providing the complete suite of tools for board management, code compilation, serial communication, and library handling required for the ecosystem.
Arduino IDE 2.x
This is the official Arduino IDE, providing a comprehensive development environment that includes board management, a library manager, and serial monitoring for the entire Arduino ecosystem.
This project is a professional integrated development environment designed for microcontroller firmware engineering and embedded systems development. It provides a specialized interface for writing, compiling, and deploying code to Arduino-compatible boards and various other hardware platforms. The environment distinguishes itself through a modular architecture that separates the graphical user interface from the underlying build and hardware communication logic. By utilizing a language server protocol and a decoupled plugin system, it allows for consistent code analysis and extensible functi
This is the official advanced development environment for the Arduino ecosystem, providing a code editor, board support, and library management built specifically for Arduino hardware.
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
TinyGo is a specialized compiler and development toolkit that supports Arduino hardware and provides the necessary abstractions for microcontroller programming, serving as a viable alternative to the standard Arduino IDE ecosystem.
This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables firmware development using a familiar API. It functions as a microcontroller hardware abstraction layer and a firmware toolchain integration, bridging external development environments to the hardware for compilation and flashing. The system includes an embedded real-time operating system wrapper to manage multi-core execution and task scheduling, alongside a wireless communication suite for TCP/IP networking and Bluetooth Low Energy. It distinguishes itself by providing an obj
This repository provides the essential hardware abstraction layer and board support required to integrate ESP32 microcontrollers into the Arduino ecosystem, allowing you to use the standard Arduino API for development.
This project is a hardware core and board support package that integrates STM32 microcontrollers into the Arduino development environment. It functions as an embedded systems development tool, bridging high-level programming workflows with ARM Cortex-M microcontroller architectures. The core provides the necessary configuration files and libraries to enable the compilation and deployment of firmware directly onto STM32 hardware. By mapping standard programming functions to specific microcontroller register operations, it ensures consistent behavior across different hardware platforms while ut
This repository provides the necessary hardware abstraction layer and board support files to integrate STM32 microcontrollers into the Arduino development ecosystem, allowing you to use the standard Arduino IDE for these boards.
This project provides a development framework that enables programming Raspberry Pi Pico microcontrollers using the Arduino environment and standard C++ libraries. It serves as a unified platform for compiling, debugging, and deploying firmware to diverse hardware boards based on the RP2040 and RP2350 architectures. The framework distinguishes itself through native support for symmetric multicore execution, allowing developers to distribute independent tasks across multiple processor cores to manage complex workloads. It also includes a specialized library for USB peripheral emulation, enabli
This repository provides the essential hardware abstraction layer and board support required to program Raspberry Pi Pico microcontrollers within the Arduino ecosystem.
This project is an embedded C++ development kit and hardware abstraction layer that enables the Arduino programming environment to target ESP8266 WiFi microcontrollers. It provides a comprehensive framework for compiling and flashing code to microcontroller memory via serial or wireless interfaces. The system includes a specialized WiFi microcontroller framework for managing TCP/IP stacks and internet connectivity. It features a dedicated over-the-air firmware update system that allows software updates to be delivered to remote hardware without a physical cable connection. The kit covers emb
This project provides the essential hardware abstraction layer and board support required to integrate ESP8266 microcontrollers into the Arduino development ecosystem.
A plugin to make programming the arduino in eclipse easy
This is an Eclipse plugin that provides a full Arduino development environment, including board support, library management, and serial communication features within the Eclipse IDE.
The pico-sdk is a software development kit for creating C and C++ applications on RP2040 and RP2350 hardware platforms. It functions as an embedded development kit that provides hardware abstraction layers and drivers to interface with microcontroller peripherals and registers. The project utilizes a CMake build system to manage the compilation of source code into multiple binary formats, including UF2, ELF, and HEX images. This environment coordinates the build and link processes to ensure the resulting firmware is correctly tailored for the target hardware. The toolkit covers embedded hard
This is a professional-grade SDK for C/C++ development on RP2040/RP2350 microcontrollers, but it is a low-level hardware development kit rather than an Arduino-specific IDE or ecosystem tool.
This project is a Node.js serial port library that provides a JavaScript interface for reading and writing data to hardware serial ports. It functions as a low-level driver and hardware communication library designed to exchange data streams between a computer and external hardware devices. The library supports cross-platform serial communication on Linux, macOS, and Windows. It enables the establishment of data connections between high-level applications and embedded controllers, microcontrollers, or other hardware devices. The capability surface covers hardware integration for robotics con
This is a low-level serial communication library for Node.js that serves as a building block for hardware interaction, rather than a complete Arduino development environment or IDE.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| arduino/arduino-cli | 4.9K | Go | GPL-3.0 | |
| arduino/arduino | 14.6K | Java | NOASSERTION | |
| arduino/arduino-ide | 3.2K | TypeScript | AGPL-3.0 | |
| arduino/arduino-pro-ide | 882 | — | NOASSERTION | |
| tinygo-org/tinygo | 17.5K | Go | NOASSERTION | |
| espressif/arduino-esp32 | 17K | C++ | LGPL-2.1 | |
| rogerclarkmelbourne/arduino_stm32 | 2.7K | C | NOASSERTION | |
| earlephilhower/arduino-pico | 2.8K | C | LGPL-2.1 | |
| esp8266/arduino | 16.6K | C++ | LGPL-2.1 | |
| sloeber/arduino-eclipse-plugin | 432 | Java | — |