Early-stage development only.
No support is provided yet. Use at your own risk.
Raspberry Pi SDK for the Satellite1-HAT
This repository contains all components required to run the Satellite1-HAT on a Raspberry Pi Zero W2:
satellite1-rpi— Python SDK librarysatellite1-rpi-setup— Raspberry Pi configuration packaged as a.debrpi-kernel-fusb302— Custom Raspberry Pi kernel with USB-C Power Delivery supportimage-builder— Generates SD-card images with everything preinstalled
Target Platform: Raspberry Pi Zero W2
OS: Raspberry Pi OS (Bookworm)
The easiest way to set up the Satellite1-HAT is to flash the prepared Satellite1 SDK Image.
This image includes:
- Raspberry Pi OS (Bookworm)
- Custom kernel with FUSB302 USB-C PD support
- All necessary overlays and configuration
- The Satellite1 Python SDK + CLI
- Automatic DAC initialization at boot
Steps:
- Install Raspberry Pi Imager
- In Application Settings, set:
Content Repository →<your repository URL> - Select the Satellite1 SDK Image
- Flash it to an SD card
- Boot the Raspberry Pi Zero W2 with the Satellite1-HAT installed
The default kernel shipped with Raspberry Pi OS does not include support for USB-C Power Delivery.
Install the custom kernel:
sudo dpkg -i linux-image-6.12.58-fusb302-rpi-v8_2_arm64.debThis kernel includes:
CONFIG_TYPEC=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_FUSB302=m
Reboot after installation.
Install the setup package:
sudo dpkg -i satellite1-rpi-setup_1.0-1_arm64.debInstalls and configures:
- FUSB302 overlay (USB-C PD)
- Satellite1 I²S audio overlay
/etc/alsa/conf.d/50-satellite1.conf- Loads
i2c-devon startup - Enables SPI, I²S, and I2C in
/boot/firmware/config.txt - Adds sensor overlay:
i2c-sensor,addr=0x38,chip=aht20
sudo dpkg -i satellite1-rpi-sdk_0.1.5_arm64.debThis will:
- Create a venv at
/opt/satellite1/venv - Install the Satellite1 Python library
- Install the
sat1CLI in/usr/bin/sat1 - Install
satellite1-init.service(initializes DACs at boot)
The sat1 CLI provides control over:
- DAC
- XMOS
- USB-C PD
sat1 [-h] [--config CONFIG] [-v] {dac,xmos,pd} ...| Component | Description |
|---|---|
dac |
DAC audio controls |
xmos |
XMOS interface and firmware controls |
pd |
USB-C PD contract status |
| Option | Description |
|---|---|
-h, --help |
Show help |
--config FILE |
Custom TOML config (default /etc/satellite1.conf) |
-v, --verbose |
Increase verbosity |
sat1 dac [options] {volume,set-volume,mute,unmute,setup,plugged-in,status}| Command | Description |
|---|---|
volume |
Read current volume |
set-volume |
Set volume |
mute |
Mute line-out |
unmute |
Unmute line-out |
setup |
Initialize DAC |
plugged-in |
Detect headphone jack |
status |
Show status |
--dac {auto,line-out,speaker}| Option | Description |
|---|---|
--line-out-enabled / --no-line-out-enabled |
Enable/disable line-out |
--line-out-startup-volume <0..1> |
Initial volume |
--line-out-startup-muted / --no-line-out-startup-muted |
Mute at startup |
--line-out-restore-on-startup / --no-line-out-restore-on-startup |
Restore previous state |
| Option | Description |
|---|---|
--speaker-enabled / --no-speaker-enabled |
Enable/disable speaker |
--speaker-startup-volume <0..1> |
Startup volume |
--speaker-startup-muted / --no-speaker-startup-muted |
Mute at startup |
--speaker-restore-on-startup / --no-speaker-restore-on-startup |
Restore previous state |
--speaker-channel {left,right,dwn_mix} |
Output routing |
--speaker-amp-level <int> |
Amplifier gain |
sat1 xmos {setup,read-firmware,read-status,reset,enable-flashing,disable-flashing,run-spi-test,set-mic-output,flash-firmware}| Command | Description |
|---|---|
setup |
Initialize SPI/GPIO |
read-firmware |
Read firmware version |
read-status |
Read status register |
reset |
Toggle reset |
enable-flashing |
Enter flashing mode |
disable-flashing |
Exit flashing mode |
run-spi-test |
SPI echo test |
set-mic-output |
Configure I²S microphone routing |
flash-firmware |
Flash XMOS firmware |
sat1 pdShows current USB-C Power Delivery contract.
More documentation coming soon.