30 open-source projects similar to espressif/esptool, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
probe-rs is an embedded debugging toolset used for flashing, debugging, and inspecting microcontrollers via hardware debug probes. It functions as an embedded firmware flasher, a memory manager for reading and writing to processor registers, and a server implementing the Debug Adapter Protocol to connect hardware debugging to various code editors. The project includes a CMSIS-Pack target parser to extract device metadata and flash configurations from industry-standard definition files. It provides a driver-based probe abstraction to interact with various hardware debug probes regardless of th
pyserial is a cross-platform Python library for reading and writing binary data to serial ports and hardware devices. It provides a serial port enumeration tool for identifying available hardware and retrieving device path metadata. The project includes a network implementation for controlling remote serial port functions and signal lines over TCP/IP via the RFC 2217 standard. It also features a serial-to-TCP bridge for forwarding raw data between local ports and network sockets, as well as a specialized interface for managing half-duplex RS485 communication and RTS toggling. The library cov
OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides a comprehensive environment for quadruped robot development, featuring tools for locomotion gait design, inverse kinematics, and a layered control architecture that separates high-level intelligence from low-level motion. The project distinguishes itself as an embedded AI deployment tool, allowing users to train, quantize, and deploy machine learning models to vision modules for tasks such as object detection and visual target tracking. It further supports complex human-robot
Terminus is a multifunctional terminal emulator and connection manager designed for managing remote server shells and local hardware device connections. It functions as a customizable shell interface and a cross-platform serial client, supporting communication via SSH, Telnet, and serial ports. The application features an extensible system that allows the integration of third-party plugins, such as AI assistants and additional connectivity tools. It includes a dedicated SSH connection manager with support for jump hosts, port forwarding, and the storage of sensitive credentials within encrypt
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
Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT applications. It provides a hardware abstraction layer with standardized drivers to interact with GPIO, I2C, SPI, and PWM interfaces across various single-board computers and microcontrollers. The framework functions as an IoT device orchestrator and BLE device manager, enabling the coordination of multiple sensors, actuators, and Bluetooth Low Energy peripherals. It includes specialized interfaces for drone control, allowing for the management of flight maneuvers and video streams
Blackmagic is a GDB server for embedded hardware that translates GDB remote protocol messages into JTAG and SWD commands. It functions as an ARM and RISC-V debugger and hardware debug probe manager, enabling users to inspect memory, control execution, and manage registers on ARM Cortex and RISC-V cores. The project distinguishes itself by acting as a remote hardware debugging bridge that can stream GDB server traffic over TCP/IP to control physical hardware from a remote machine. It also provides a JTAG and SWD interface to connect host computers to target hardware and serves as an embedded f
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
PlatformIO Core is a toolset for embedded software development that manages the compilation, flashing, and debugging of firmware for various microcontroller targets. It provides a cross-platform build system that automates the process of transforming source code into binaries and transferring them to hardware via serial protocols. The system uses a plugin-based architecture to extend hardware platform support and incorporates a manifest-driven approach to resolve and install the specific toolchains, frameworks, and libraries required for different board definitions. Capabilities cover the fu
Beehive is a self-hosted integration platform and event automation engine. It functions as a plugin-based workflow orchestrator that links independent service plugins to automate data movement between external APIs and hardware. The system acts as an IoT hardware controller for managing network-enabled sockets, smart lighting, and serial port devices via TTY or COM. It also serves as an HTTP webhook gateway, receiving incoming requests to trigger internal workflows and external notifications. Capability areas include event-driven workflow automation with filter-based routing and template-bas
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
Tasmota is a universal firmware platform for ESP8266 and ESP32 microcontrollers, designed to provide local control and management of smart home hardware. It functions as an event-driven automation controller that replaces proprietary factory firmware, allowing users to manage relays, sensors, and lighting systems without relying on external cloud services. The system is built on a modular driver architecture that enables dynamic hardware configuration and peripheral support through a web-based management interface. The platform distinguishes itself through a template-driven hardware mapping s
Tabby is a cross-platform terminal emulator and desktop application suite designed for managing command-line workflows and remote infrastructure. It provides a comprehensive environment for terminal session orchestration, allowing users to organize multiple active sessions through split panes and custom layouts. The application functions as a secure remote connection manager, supporting advanced authentication, port forwarding, and persistent network sessions via an asynchronous protocol layer. The project distinguishes itself through a modular plugin architecture that enables users to extend
PX4-Autopilot is a professional-grade flight control software stack designed for autonomous unmanned vehicles, including multicopters, fixed-wing aircraft, and vertical takeoff and landing platforms. It operates as a modular, real-time framework that decouples flight control logic from hardware drivers through a publish-subscribe middleware architecture. The system utilizes a deterministic microkernel runtime to execute time-critical flight control loops and sensor fusion tasks, ensuring stable navigation and vehicle operation. The platform distinguishes itself through a parameter-driven conf
stlink is a toolset for ARM Cortex-M flashing, firmware management, and debug server operations, with specific support for STM32 microcontrollers. It provides an ARM Cortex-M flash programmer for writing binary and hex files, an ITM trace logger for real-time instrumentation data, and a SWD/JTAG debug server. The project includes a graphical user interface for managing MCU firmware and exporting memory, as well as a remote server that allows external debuggers to control execution and inspect registers on target hardware. The toolset covers microcontroller memory management through flash era
GalaxyBudsClient is a desktop application designed for the configuration and management of Samsung Galaxy Buds. It serves as an interface for controlling earbud hardware, providing a way to adjust settings and customize device behavior without the official mobile application. The project includes specialized utilities for firmware flashing and hardware diagnostics. It enables the modification of device firmware using binary files and allows for the retrieval of detailed hardware metadata, bond lists, and the execution of factory self-tests. The application covers audio customization, such as
This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to
Hekate is a bootloader and system recovery tool for Nintendo Switch hardware. It functions as a multi-OS boot manager that allows the execution of binary payloads and the launching of stock firmware, custom firmware, Android, and Linux through a graphical interface. The project provides a suite of recovery and system modification tools, including the ability to create and restore full backups of internal storage. It also features a USB HID gamepad emulator that maps device controller inputs to USB signals for interacting with external computers. The software covers broad capability areas inc
Psychson is a toolset for modifying USB firmware binaries and flashing custom images to specific hardware controller architectures. It provides utilities for dumping, patching, and flashing custom firmware specifically for Phison 2251-03 USB controllers. The software includes a payload injector for embedding HID keystroke scripts into USB firmware to automate inputs on a target machine. It also features a controller flasher for writing modified burner images directly to Phison-based USB hardware. The suite covers firmware management and hardware forensic analysis, including capabilities for
This project is a tutorial and framework for building a low-level, bare-metal operating system from scratch using the Rust language. It focuses on ARMv8 kernel development specifically for the Raspberry Pi 3, providing the resources necessary to implement a monolithic kernel that runs directly on hardware without an underlying operating system. The project distinguishes itself by providing a complete embedded cross-compilation suite within a containerized environment to ensure consistent builds. It includes a dedicated kernel deployer that uses a serial interface and chainloader to load and b
Foreman is a lifecycle infrastructure management platform used for automating the provisioning, configuration, and monitoring of physical, virtual, and cloud servers. It serves as a central hub for managing the entire lifespan of a server, from initial deployment and operating system upgrades to decommissioning and auditing. The platform functions as a hybrid cloud manager and bare-metal provisioning tool, providing a unified interface to control virtual machine lifecycles across diverse hypervisors and public cloud providers. It automates hardware discovery and operating system deployment us
Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots and IoT devices. It provides a standardized library for managing pins, motors, and displays across various microcontroller platforms, allowing developers to control sensors and actuators using a consistent JavaScript API. The framework is distinguished by its use of a plugin-based hardware abstraction system, which enables communication with diverse hardware platforms and protocols. It supports real-time hardware manipulation and debugging through a read-eval-print loop that a
fwupd is a system service for discovering, downloading, and installing hardware firmware updates on Linux. It functions as a firmware distribution client and a hardware device discovery tool that matches system devices against vendor metadata to identify compatible updates. It also serves as a platform security manager to evaluate host security attributes and apply BIOS settings. The project includes a dedicated manager for UEFI firmware capsules, generating and managing binaries that the system processes during the boot sequence. It provides security frameworks to filter updates using versio
Mist is a macOS firmware downloader and deployment tool designed to retrieve official installation files and firmware images from Apple servers. It functions as a client for interfacing with Apple content delivery networks to obtain the binary images required for system recovery and device deployment. The tool manages the retrieval of macOS system components through manifest-based version resolution to identify correct download paths. It ensures data integrity using checksum-verified checks and utilizes stream-based file writing to handle large images without exhausting system memory. The pr
This repository provides a BIOS management tool for RetroArch emulators. It audits local firmware directories, verifying each file against known checksums to identify missing or incorrect system files. The tool functions as a checksum-based file verifier and a collection auditor, ensuring that your emulator BIOS files are correct and properly placed for runtime. Beyond basic verification, it automates the detection of missing BIOS files and can download verified replacements. The tool generates custom firmware packs tailored to specific platforms or emulators, resolving the correct target dir
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
OctoPrint is a web-based control panel and Python-based hardware server for managing 3D printers. It functions as a G-code remote controller that sends commands to printer firmware over a persistent USB serial connection, allowing users to operate hardware and monitor print jobs through a browser. The project is an extensible hardware management platform that utilizes a plugin-based system. This architecture enables the addition of third-party functionality and custom extensions to modify core behavior and expand the system's remote control capabilities. The platform covers remote printer ma
This project is a collection of management interfaces and platforms for network-connected hardware. It functions as a firmware extension platform, a network storage operating system manager, and a network routing administrator. The system enables the installation of open-source plugins and third-party add-ons to expand device capabilities. It provides a management interface for network attached storage, allowing for remote file management and peer-to-peer media streaming. Broad capabilities cover network routing configuration through policy-based routing and dynamic DNS, as well as firmware
libmodbus is a portable C library that implements the Modbus protocol stack for industrial hardware communication. It provides a set of tools for reading and writing coils and registers on industrial controllers and sensors, functioning as both a client and a protocol server. The library supports multiple transport layers, including a Modbus TCP stack for IPv4 and IPv6 network communication and a Modbus RTU driver for serial communication. It distinguishes itself through specialized data conversion utilities that handle byte-swapping and endianness for floating-point numbers and bit-field map
Relativ is an open-source project for the development of custom virtual reality hardware, encompassing the mechanical design, electronics, and software interfaces required to build a headset from scratch. It provides the frameworks necessary for assembling devices using open-source electronics and firmware. The project integrates custom hardware with SteamVR through driver-based configurations, mapping device identifiers and display viewports to ensure rendered images align with physical secondary displays. It employs a combination of microcontroller-based inertial measurement unit polling fo