32 Repos
Low-level software development and driver implementation for the Raspberry Pi platform.
Distinct from Systems Programming: Focuses on platform-specific systems programming for Raspberry Pi, distinct from general systems programming.
Explore 32 awesome GitHub repositories matching operating systems & systems programming · Raspberry Pi Systems Programming. Refine with filters or upvote what's useful.
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
Enables the execution of C++ code directly on the microcontroller to control physical hardware.
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
Focuses on writing custom kernel code specifically for the Raspberry Pi 3 hardware architecture.
This project is an educational resource for developing bare-metal operating systems and kernels from scratch on Raspberry Pi hardware. It provides a structured guide to systems programming using the Rust language, focusing on the implementation of core kernel components that execute directly on ARM-based hardware without the support of an underlying operating system or standard library. The tutorials emphasize a modular architecture that separates hardware-independent kernel logic from processor-specific and board-specific configurations. By utilizing a hardware abstraction layer and distinct
Develops custom software and low-level drivers specifically for the Raspberry Pi hardware platform.
XNU ist ein hybrider Betriebssystemkern, der eine Mikrokernel-Architektur mit einer monolithischen Schicht für Systemdienste kombiniert. Er bietet eine Grundlage für die Betriebssystementwicklung und integriert standardisierte Systemaufruf-Schnittstellen, ein modulares Gerätetreiber-Framework und eine obligatorische Zugriffskontrollsicherheit. Die Architektur verfügt über einen Mach-basierten Mikrokernel und eine BSD-basierte monolithische Schicht. Sie nutzt einen nachrichtenbasierten Inter-Prozess-Kommunikationsbus für den sicheren Datenaustausch zwischen isolierten Kernel-Komponenten und Benutzerprozessen, neben einem objektorientierten Treiber-Framework, das hardwarespezifische Logik vom Kern-Kernel entkoppelt. Das System enthält eine Engine für obligatorische Zugriffskontrolle zur richtlinienbasierten Sicherheitsdurchsetzung und einen Remote-Kernel-Debugger zur Inspektion von Live-Speicher und zur Analyse von System-Panics. Zusätzliche Fähigkeiten decken die Multiprozessor-Planung, die Koordination von Hardwareressourcen und ein Build-System zur Generierung bootfähiger Images über verschiedene Architekturen hinweg ab. Das Projekt bietet Tools für das Kernel-Build-Management, die Generierung von Debug-Symbolen und ein Framework für die Systemaufruf-Verifizierung.
Executes automated diagnostic routines during kernel initialization to verify the integrity of core system structures.
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
Provides low-level software development and driver implementation for the Raspberry Pi platform.
System-bus-radio is a software-defined radio transmitter that generates AM radio signals by modulating the electromagnetic emissions from a computer's processor and memory bus, without requiring any dedicated radio hardware or physical antennas. It functions as a CPU electromagnetic emissions tool and processor-based signal generator, enabling radio transmission through precise control of CPU instructions and memory bus operations. The project encodes musical notes as sequences of frequency and duration pairs, then synthesizes the AM radio waveform in real-time by executing a tight loop of CP
Transmits AM radio signals by modulating the computer's processor and memory bus without dedicated radio hardware.
PoisonTap is a hardware attack tool designed for the Raspberry Pi Zero that exploits a USB connection to a locked or password-protected computer, extracting browser cookies and session data from the top million websites without requiring the device to be unlocked. It operates by bypassing the lock screen through USB and network stack exploitation, then siphoning HTTP cookies and intercepting all outbound Internet traffic by overriding network routing through a local device. The tool distinguishes itself through multiple persistence and recovery mechanisms that maintain access even after cooki
The entire tool is designed as a Raspberry Pi Zero attack platform for compromising locked computers.
Grafika ist eine Sammlung von Referenzimplementierungen und Benchmarking-Tools für die Android-Plattform. Sie bietet technische Demonstrationen zur Validierung von Kamera-Lifecycles, GPU-Performance und Media-Codec-Konfigurationen, einschließlich einer Suite von OpenGL-ES-Beispielen und einer Grafik-Referenzanwendung. Das Projekt zeichnet sich durch spezialisierte Tools zur Messung der Grafikleistung aus, wie etwa Benchmarks für Textur-Upload-Geschwindigkeiten und Pixel-Read-Latenz. Zudem implementiert es spezifische Hardware-fokussierte Muster, wie die Verwendung zirkulärer Puffer für kontinuierliche Videoaufnahme und die Nutzung virtueller Displays für systemweite Bildschirmaufnahmen. Das Repository deckt ein breites Spektrum an Medien- und Grafikfunktionen ab. Dies beinhaltet Kamera-zu-Textur-Rendering für Echtzeit-Manipulation, die Verwendung dedizierter Renderer-Threads für reaktionsschnelle Interfaces und verschiedene Videowiedergabemethoden unter Verwendung von System-Compositor-Layern. Es adressiert zudem Videoverarbeitung durch simultane Framebuffer-Aufnahme und Multi-Stream-Dekodierung.
Records camera input into a circular buffer, allowing a specific time window of video to be saved to storage.
This is the official documentation repository for Raspberry Pi hardware and software. It covers the complete range of Raspberry Pi single-board computers, the RP-series microcontrollers, and the Raspberry Pi operating system. The documentation provides reference material for setting up devices, configuring hardware, and using the system for tasks including AI inference, camera and video capture, embedded development, and remote access. The documentation covers the full boot chain from the GPU firmware and EEPROM bootloader through to kernel loading, with detailed guidance on boot configuratio
Documents how to boot Raspberry Pi from an NVMe SSD connected via PCIe.
Eine Sammlung von Referenzimplementierungen und Code-Beispielen für die Integration von Android-Kamera-Hardware und -Software-APIs. Das Projekt bietet Demonstrationen für die Verwendung sowohl der Jetpack-CameraX-Bibliothek als auch der Low-Level-Camera2-API zur Implementierung von Foto- und Videoaufnahmefunktionen. Das Repository enthält spezialisierte Implementierungen für High-Performance-Aufnahmen, wie z. B. Slow-Motion mit hoher Bildrate und HDR-Video. Es bietet zudem Beispiele für Machine-Learning-Vision und demonstriert, wie Live-Kamerabilder für die Objekterkennung und das Scannen von QR-Codes analysiert werden können. Das Projekt deckt umfassende Imaging-Funktionen ab, einschließlich Standbildaufnahme, Live-Viewfinder-Rendering und Videokonfiguration. Es beschreibt zudem die Verwendung herstellerspezifischer Hardware-Erweiterungen zur Anwendung von Effekten wie Bokeh, Nachtmodus und HDR. Die Beispiele enthalten Utilities für das Koordinaten-Mapping zur Darstellung visueller Overlays sowie Event-Monitoring zur Nachverfolgung von Aufnahmestatus.
Captures video frames using repeating requests and encodes them into a standard video file.
This repository contains the pre-compiled firmware, bootloader binaries, device tree overlay files, and Linux kernel modules that power Raspberry Pi single-board computers. It provides the foundational system firmware that initializes the hardware and loads an operating system. The boot architecture relies on a proprietary VideoCore GPU that co-processes early initialization, memory partitioning, device tree overlay loading, and mailbox-based peripheral configuration before handing control to the main CPU. This multi-stage boot process uses a chain of small binary stages and loads a raw kerne
Pre-compiled Linux kernel images and loadable kernel modules for running operating systems on Raspberry Pi hardware.
This project is a wireless hotspot management interface for Debian devices. It provides a web-based controller for managing wireless access points, wireless repeaters, VPN gateways, and DNS ad-blocking filters. The system includes a captive portal framework to intercept network traffic via customizable splash pages and a VPN controller that supports WireGuard and OpenVPN with kill-switch functionality. It further differentiates itself with a DNS ad-blocking filter using curated blacklists and the ability to operate in multiple network modes, including bridged access point and wireless repeate
Moves logs and temporary data to a RAM-based filesystem to minimize physical SD card wear.
Raspotify ist ein Headless-Audio-Streamer für Linux-Geräte, der als Spotify-Connect-Client fungiert. Er arbeitet als Hintergrund-System-Daemon und ermöglicht es Hardware, als drahtloser Audioempfänger zu fungieren, der über die offizielle Spotify-Anwendung steuerbar ist. Der Dienst ist für Einplatinencomputer konzipiert und beinhaltet eine Minimierung von Festplattenschreibvorgängen, um den Verschleiß von SD-Karten zu reduzieren. Dies wird erreicht, indem Audio-Track-Buffer auf ein In-Memory-Dateisystem umgeleitet werden. Das Projekt enthält Funktionen zur Konfiguration der Audioqualität, einschließlich Anpassungen von Bitrate und Samplerate. Es verwaltet zudem die Authentifizierung durch lokales Token-Caching, um persistente Verbindungen ohne wiederholte Login-Vorgänge aufrechtzuerhalten.
Optimizes the software stack for running a dedicated music player on Raspberry Pi hardware.
Harvester ist eine hyperkonvergente Infrastruktur-Plattform, die Rechenleistung, Speicher und Netzwerk in einem einzigen System für die Verwaltung virtualisierter Umgebungen auf Bare-Metal-Servern vereint. Sie fungiert als Virtualisierungs-Management-Plattform und KVM-Hypervisor-Manager und bietet eine zentrale Schnittstelle zur Orchestrierung des gesamten Lebenszyklus virtueller Maschinen. Das Projekt zeichnet sich durch die Integration von Longhorn für verteilten Blockspeicher aus, um redundanten, softwaredefinierten Speicher bereitzustellen, sowie durch ein Bare-Metal-Provisioning-Tool für automatisierte Deployments. Dies ermöglicht die Orchestrierung der Infrastruktur über physische Server hinweg mittels PXE, iPXE und UEFI-HTTP-Booting. Zu den Funktionen der Plattform gehören die Orchestrierung virtueller Maschinen mit Live-Migration und cloud-init-Provisioning sowie Disaster Recovery für Unternehmen durch Snapshots und Remote-Backups. Zudem deckt sie die Konfiguration virtueller Netzwerke für VLANs und virtuelle IPs ab, ergänzt durch umfassende Systeminstallations-Tools für die Zuweisung von Knotenrollen und die Ausführung von Befehlen nach der Installation.
Supports loading boot images directly from an HTTP server using UEFI firmware to initiate system installation.
CloverBootloader is a UEFI-compliant boot loader designed to initialize hardware and launch multiple operating systems across various platforms. Its primary purpose is to enable the booting of operating systems on unsupported hardware through system identity spoofing and hardware emulation. The project specializes in hardware compatibility patching by modifying ACPI tables, faking hardware IDs, and patching binary kernels or extensions in memory during the boot process. It provides capabilities to inject kernel extensions and spoof system parameters, such as product names and serial numbers,
Provides detailed debug logs of the loading sequence to identify hardware or configuration failures.
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
Facilitates the creation and flashing of UF2 or binary images for firmware deployment on Raspberry Pi Pico boards.
Blinker-py is a Python library and asynchronous hardware interface designed to connect Linux-based single board computers, such as the Raspberry Pi, to a remote IoT cloud platform. It functions as a communication bridge and hardware abstraction layer that enables the remote monitoring and control of physical components. The project provides a TCP socket communication client for bidirectional, real-time data exchange. It maps cloud-side virtual controls to physical GPIO pins, allowing remote interfaces to trigger physical actions on connected hardware through a cloud bridge. The library incor
Implements a software interface for controlling GPIO and peripherals on Raspberry Pi and other Linux devices via the cloud.
rpitx is a software-defined radio transmitter that runs on a Raspberry Pi, generating radio frequency signals from 5 KHz to 1500 MHz using only a GPIO pin. It functions as an analog and digital modulator, an RF signal generator, a radio protocol emulator, and a signal capture and replay system, all without requiring additional hardware. The project achieves this by combining sample precomputation, direct memory-mapped GPIO toggling, and an interrupt-free timing loop to produce precise carrier frequencies and modulation patterns. It supports a wide range of modulation types including AM, FM, S
Generates radio frequency signals from 5 KHz to 1500 MHz using only a Raspberry Pi GPIO pin for wireless transmission and experimentation.
P4wnP1 ist ein drahtloses USB-Payload-Framework und eine Angriffsplattform auf Basis des Raspberry Pi Zero. Es fungiert als USB-HID-Emulator und Netzwerkadapter, der Tastaturen und andere Peripheriegeräte imitiert, um mit Zielhardware zu interagieren und automatisierte Tastatur-Payloads auszuführen. Das Projekt bietet ein anpassbares System zur Bereitstellung von HID-Angriffen und zur Verwaltung des Fernzugriffs über einen drahtlosen Hotspot. Es ermöglicht die Emulation von Verbundgeräten, wodurch ein einzelner physischer Port gleichzeitig mehrere Funktionen wie Ethernet- und Tastaturschnittstellen präsentieren kann. Das Framework deckt Funktionen für Hardware-Sicherheitsaudits und automatisiertes Penetration Testing ab. Dazu gehört die Fähigkeit, Netzwerkverkehr weiterzuleiten, drahtlose Verbindungen zu verwalten und skriptbasierte Sequenzen basierend auf Systemereignissen oder Tastatur-LED-Zuständen auszulösen. Es etabliert zudem verdeckte Kommunikationskanäle zur Datenübertragung ohne Verwendung standardmäßiger Netzwerkprotokolle.
Provides a Raspberry Pi Zero based platform for emulating USB peripherals and executing attack payloads.
Dieses Projekt ist eine C++-Bibliothek und ein Hardware-Treiber, der darauf ausgelegt ist, Hub75 RGB-LED-Panels über die GPIO-Pins eines Raspberry Pi zu steuern. Es fungiert sowohl als Low-Level-Panel-Controller als auch als Grafikbibliothek zum Rendern visueller Inhalte auf niedrigauflösenden LED-Gittern. Das System zeichnet sich durch ein umfassendes Set an Hardware-Konfigurationstools aus, einschließlich benutzerdefiniertem Pixel-Mapping, Rotation und Spiegelung, um physische Display-Geometrien anzupassen. Es unterstützt Multi-Display-Chaining in parallelen und seriellen Konfigurationen und bietet ein Python-Binding, um die C++-Kernlogik für Hardware-Automatisierung verfügbar zu machen. Die Bibliothek deckt ein breites Spektrum an Medienfunktionen ab, einschließlich des Renderns von BDF-Bitmap-Schriftarten, scrollendem Text, geometrischen Formen und animierten GIFs. Sie unterstützt zudem Multi-Threaded-Videowiedergabe und verwendet Double-Buffering, um Screen-Tearing und Flackern während Animationen zu verhindern. Hardware-Level-Steuerungen umfassen PWM-Modulation für Farbtiefenabstimmung, GPIO-Eingangsüberwachung und Multiplexing-Korrektur, um die Kompatibilität mit verschiedenen Panel-Verkabelungsstandards sicherzustellen.
Implements low-level driver logic specifically for controlling Hub75 panels via Raspberry Pi GPIO.