32 repositorios
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 es un kernel de sistema operativo híbrido que combina una arquitectura de microkernel con una capa monolítica para servicios del sistema. Proporciona una base para el desarrollo de sistemas operativos, incorporando interfaces de llamadas al sistema estandarizadas, un framework de controladores de dispositivos modular y seguridad de control de acceso obligatorio. La arquitectura cuenta con un microkernel basado en Mach y una capa monolítica basada en BSD. Utiliza un bus de comunicación entre procesos de paso de mensajes para el intercambio seguro de datos entre componentes aislados del kernel y procesos de espacio de usuario, junto con un framework de controladores orientado a objetos que desacopla la lógica específica del hardware del kernel central. El sistema incluye un motor de control de acceso obligatorio para la aplicación de seguridad basada en políticas y un depurador de kernel remoto para inspeccionar la memoria en vivo y analizar los pánicos del sistema. Las capacidades adicionales cubren la programación de multiprocesadores, coordinación de recursos de hardware y un sistema de compilación para generar imágenes arrancables a través de diferentes arquitecturas. El proyecto proporciona herramientas para la gestión de compilación del kernel, generación de símbolos de depuración y un framework para la verificación de llamadas al sistema.
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 es una colección de implementaciones de referencia y herramientas de benchmarking para la plataforma Android. Proporciona demostraciones técnicas para validar ciclos de vida de la cámara, rendimiento de la GPU y configuraciones de códecs multimedia, incluyendo un conjunto de ejemplos de OpenGL ES y una aplicación de referencia de gráficos. El proyecto se distingue por herramientas especializadas para medir el rendimiento gráfico, como benchmarks para velocidades de carga de texturas y latencia de lectura de píxeles. También implementa patrones específicos enfocados en hardware, como el uso de buffers circulares para captura de video continua y la utilización de pantallas virtuales para la grabación de pantalla de todo el sistema. El repositorio cubre una amplia gama de capacidades multimedia y gráficas. Esto incluye renderizado de cámara a textura para manipulación en tiempo real, el uso de hilos de renderizado dedicados para interfaces receptivas y varios métodos de reproducción de video utilizando capas de compositor del sistema. Además, aborda el procesamiento de video mediante grabación de framebuffer simultánea y decodificación de múltiples flujos.
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.
Una colección de implementaciones de referencia y muestras de código para integrar hardware de cámara Android y APIs de software. El proyecto proporciona demostraciones para usar tanto la librería Jetpack CameraX como la API Camera2 de bajo nivel para implementar funciones de captura de fotos y vídeo. El repositorio incluye implementaciones especializadas para grabación de alto rendimiento, como cámara lenta de alta tasa de fotogramas y vídeo de alto rango dinámico (HDR). También cuenta con ejemplos de visión por aprendizaje automático, demostrando cómo analizar fotogramas de cámara en vivo para la detección de objetos y escaneo de códigos QR. El proyecto cubre capacidades de imagen amplias, incluyendo adquisición de imágenes fijas, renderizado de visor en vivo y configuración de calidad de vídeo. Detalla además el uso de extensiones de hardware específicas del fabricante para aplicar efectos como bokeh, modo nocturno y HDR. Las muestras incluyen utilidades para el mapeo de coordenadas para renderizar superposiciones visuales y monitoreo de eventos para rastrear estados de grabación.
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.
Este proyecto es una interfaz de gestión de puntos de acceso inalámbricos para dispositivos Debian. Proporciona un controlador basado en web para gestionar puntos de acceso inalámbricos, repetidores inalámbricos, puertas de enlace VPN y filtros de bloqueo de anuncios DNS. El sistema incluye un framework de portal cautivo para interceptar el tráfico de red mediante páginas de bienvenida personalizables y un controlador VPN que admite WireGuard y OpenVPN con funcionalidad de kill-switch. Se diferencia además con un filtro de bloqueo de anuncios DNS que utiliza listas negras curadas y la capacidad de operar en múltiples modos de red, incluyendo punto de acceso puenteado y repetidor inalámbrico. La superficie de capacidades se extiende a la monitorización y diagnóstico de red, incluyendo seguimiento de ancho de banda en tiempo real y captura de paquetes. Cubre el control de acceso a la red mediante filtrado MAC y autenticación basada en roles, así como la gestión general de la red para DHCP, configuración de datos móviles y DNS dinámico. La pila de aplicaciones se entrega mediante un modelo de despliegue contenedorizado y admite el arranque a través de variables de entorno.
Moves logs and temporary data to a RAM-based filesystem to minimize physical SD card wear.
Raspotify es un streamer de audio headless para dispositivos Linux que funciona como un cliente de Spotify Connect. Opera como un demonio de sistema en segundo plano, permitiendo que el hardware actúe como un receptor de audio inalámbrico controlable a través de la aplicación oficial de Spotify. El servicio está diseñado para computadoras de placa única e incorpora la minimización de escritura en disco para reducir el desgaste de la tarjeta SD. Logra esto redirigiendo los buffers de pistas de audio a un sistema de archivos en memoria. El proyecto incluye capacidades para la configuración de la calidad de audio, incluyendo ajustes de bitrate y frecuencia de muestreo. También gestiona la autenticación mediante caché de tokens local para mantener conexiones persistentes sin flujos de inicio de sesión repetidos.
Optimizes the software stack for running a dedicated music player on Raspberry Pi hardware.
Harvester es una plataforma de infraestructura hiperconvergente que combina computación, almacenamiento y redes en un único sistema para gestionar entornos virtualizados en servidores bare metal. Funciona como una plataforma de gestión de virtualización y gestor de hipervisor KVM, proporcionando una interfaz centralizada para orquestar el ciclo de vida completo de las máquinas virtuales. El proyecto se distingue por integrar el almacenamiento en bloques distribuido Longhorn para ofrecer almacenamiento redundante definido por software, además de una herramienta de aprovisionamiento bare metal para despliegues automatizados. Esto permite orquestar la infraestructura en servidores físicos mediante arranque PXE, iPXE y UEFI HTTP. Las capacidades de la plataforma incluyen la orquestación de máquinas virtuales con migración en vivo y aprovisionamiento cloud-init, así como recuperación ante desastres empresarial mediante snapshots y copias de seguridad remotas. También abarca la configuración de redes virtuales para VLANs e IPs virtuales, junto con herramientas integrales de instalación del sistema para la asignación de roles de nodo y la ejecución de comandos post-instalación.
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 es una librería de Python e interfaz de hardware asíncrona diseñada para conectar computadoras de placa única basadas en Linux, como Raspberry Pi, a una plataforma IoT en la nube remota. Funciona como un puente de comunicación y capa de abstracción de hardware que permite el monitoreo y control remoto de componentes físicos. El proyecto proporciona un cliente de comunicación por socket TCP para el intercambio de datos bidireccional en tiempo real. Mapea controles virtuales del lado de la nube a pines GPIO físicos, permitiendo que las interfaces remotas activen acciones físicas en el hardware conectado a través de un puente en la nube. La librería incorpora despacho de mensajes asíncronos y bucles de control basados en eventos para procesar comandos de la nube y telemetría de sensores sin bloquear la ejecución local. Además, soporta la estabilidad de la conexión mediante monitoreo basado en latidos (heartbeat) y utiliza serialización de payload codificada en JSON para el intercambio de datos.
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 is a wireless USB payload framework and attack platform based on the Raspberry Pi Zero. It functions as a USB HID emulator and network adapter, mimicking keyboards and other peripherals to interact with target hardware and execute automated keyboard payloads. The project provides a customizable system for delivering HID attacks and managing remote access via a wireless hotspot. It enables the emulation of composite devices, allowing a single physical port to present multiple functions, such as Ethernet and keyboard interfaces, simultaneously. The framework covers capabilities for hard
Provides a Raspberry Pi Zero based platform for emulating USB peripherals and executing attack payloads.
Este proyecto es una biblioteca de C++ y un controlador de hardware diseñado para controlar paneles LED RGB Hub75 utilizando los pines GPIO de una Raspberry Pi. Funciona tanto como un controlador de panel de bajo nivel como una biblioteca de gráficos para renderizar contenido visual en cuadrículas LED de baja resolución. El sistema se distingue por un conjunto integral de herramientas de configuración de hardware, incluyendo mapeo de píxeles personalizado, rotación y duplicación para coincidir con geometrías de pantalla físicas. Admite el encadenamiento de múltiples pantallas en configuraciones paralelas y en serie, y proporciona un binding de Python para exponer la lógica central de C++ para la automatización de hardware. La biblioteca cubre una amplia gama de capacidades multimedia, incluyendo el renderizado de fuentes de mapa de bits BDF, texto desplazable, formas geométricas y GIFs animados. También admite la reproducción de video multihilo y utiliza doble búfer para evitar el desgarro de pantalla (tearing) y el parpadeo durante las animaciones. Los controles a nivel de hardware incluyen modulación PWM para ajuste de profundidad de color, monitoreo de entrada GPIO y corrección de multiplexación para garantizar la compatibilidad con varios estándares de cableado de paneles.
Implements low-level driver logic specifically for controlling Hub75 panels via Raspberry Pi GPIO.