Raspberry Pi SDK for the Satellite1 HAT
Satellite1-RPi is a complete software stack for running the Satellite1 HAT on a Raspberry Pi Zero 2WH. It provides a custom kernel with USB-C Power Delivery support, device tree overlays, ALSA audio configuration, and a Python SDK with CLI tools for hardware control.
Target Platform: Raspberry Pi Zero W2 OS: Raspberry Pi OS (Trixie)
⚠️ Early-stage development: This is early-stage experimental software. No official support is provided yet. For issues and feature requests, open an issue on the GitHub repository: https://github.com/futureproofhomes/Satellite1-RPi/issues
The repository is organized into four packages:
| Package | Description | Status |
|---|---|---|
satellite1-rpi |
Python SDK library and CLI tools (sat1) |
Stable |
satellite1-rpi-setup |
Raspberry Pi configuration: overlays, ALSA config, init service | Stable |
rpi-kernel-fusb302 |
Custom kernel with USB-C Power Delivery (FUSB302) support | Stable |
image-builder |
Automated SD card image generation (all components preinstalled) | In Progress |
The fastest way to get started is to flash the pre-built PiCompose Satellite1 Image. This single image includes the OS, custom kernel, overlays, SDK, and all configuration.
For the Installation steps please follow the PiCompose documentation.
If building from source or installing packages manually, follow these steps in order.
The sat1 command provides unified control over Satellite1 hardware subsystems.
More documentation about that here
Satellite1-RPi/
├── satellite1-rpi/ # Python SDK (pyproject.toml, src/, tests/)
├── satellite1-rpi-setup/ # System config (debian/, dt-overlays/, etc/)
├── rpi-kernel-fusb302/ # Kernel (config/, Dockerfile, build script)
├── image-builder/ # Image gen (Dockerfile, pi-gen config/stage)
└── README.md # This file
- Verify
satellite1-init.serviceis active:sudo systemctl status satellite1-init - Check that the I²C interface is enabled:
ls /dev/i2c-* - Ensure the FUSB302 kernel module is loaded:
lsmod | grep fusb302
The HAT may not be properly seated on the Raspberry Pi GPIO header. Power off, reseat the HAT, and power on again.
Confirm you are running the custom kernel: uname -r. If still on the stock kernel, ensure linux-image-6.18.29-fusb302-rpi-v8 is installed and the bootloader is configured to load it.
- Check ALSA configuration:
cat /etc/alsa/conf.d/50-satellite1.conf - Use
alsamixerto ensure DAC and speaker outputs are unmuted - Confirm
satellite1-init.servicesuccessfully initialized the DAC
See the LICENSE file. The code is provided as-is for hobbyist and evaluation use.