Automatyczny system pobierania bibliotek i deploymentu firmware na urządzenia RP2040-One z HAL (Hardware Abstraction Layer).
# Podłącz RP2040-One i uruchom
make deploy
# lub
python3 deploy.py deploy
# lub
./auto-deploy.sh start
# Uruchom monitorowanie - automatycznie wykryje i zdeployuje
make deploy-monitor
# lub
python3 deploy.py monitor
# lub
./auto-deploy.sh monitor
# Pobierz wymagane biblioteki (jednorazowo)
make deploy-setup
# lub
python3 deploy.py setup
Projekt używa HAL (Hardware Abstraction Layer) do oddzielenia konfiguracji sprzętowej od kodu firmware:
# Główna konfiguracja sprzętowa
hal/hal_config.toml
# Profile konfiguracyjne
hal/profiles/default.toml # Standard 9-key + encoder
hal/profiles/minimal.toml # Minimal 4-key + encoder
hal/profiles/gaming.toml # Gaming WASD + fast encoder
# Szczegółowa specyfikacja sprzętowa
hal/hardware_pins.toml
Skopiuj .env.example do .env i dostosuj:
cp .env.example .env
Główne opcje:
AUTO_DEPLOY_ENABLED=true - Włącz auto-deploymentAUTO_DEPLOY_ON_BOOT=true - Deploy przy starcieBACKUP_EXISTING_FILES=true - Backupuj istniejące plikiLIBRARY_CACHE_DIR=./lib_cache - Katalog na bibliotekiSYNC_HAL_BEFORE_DEPLOY=true - Synchronizuj HAL przed deploymentemmake deploy # Jednorazowy deployment
make deploy-monitor # Monitorowanie urządzeń
make deploy-setup # Pobierz biblioteki
make deploy-detect # Wykryj urządzenia
make hal-sync # Synchronizuj HAL → Firmware
make hal-save # Zapisz Firmware → HAL
make hal-validate # Waliduj konfigurację HAL
make hal-show # Pokaż konfigurację HAL
make hal-profiles # Lista dostępnych profili
make hal-apply PROFILE=default # Zastosuj profil
make hal-backup # Stwórz backup konfiguracji
./auto-deploy.sh start # Jednorazowy deployment
./auto-deploy.sh monitor # Monitorowanie
./auto-deploy.sh setup # Pobierz biblioteki
./auto-deploy.sh detect # Wykryj urządzenia
python3 deploy.py deploy # Jednorazowy deployment
python3 deploy.py monitor # Monitorowanie
python3 deploy.py setup # Pobierz biblioteki
python3 deploy.py detect # Wykryj urządzenia
python3 -m rp2040_keyboard.hal_manager sync-from-hal # HAL sync
CIRCUITPY/
├── boot.py # Nasz firmware startowy
├── code.py # Główny program klawiatury (generowany z HAL)
└── lib/
└── adafruit_hid/ # Biblioteka HID (pobrana automatycznie)
├── __init__.py
├── keyboard.py
├── mouse.py
└── ...
hal/*.toml filesboot.py and code.py from HAL settings[device]
name = "RP2040-One-Keypad"
version = "1.0"
[encoder]
enabled = true
clk_gpio = 11 # WE A signal
dt_gpio = 12 # WE B signal
sw_gpio = 13 # PUSH button
middle_click = false # Uses left click instead of middle
debounce = 3
scroll_speed = 2
[switches]
switch_1 = {gpio = 1, keycode = "Keycode.ONE", modifier = "Keycode.CONTROL+Keycode.ALT", label = "Ctrl+Alt+1"}
switch_2 = {gpio = 2, keycode = "Keycode.TWO", modifier = "Keycode.CONTROL+Keycode.ALT", label = "Ctrl+Alt+2"}
# ... more switches
# Edit HAL configuration
nano hal/hal_config.toml
# Or use a profile
make hal-apply PROFILE=gaming
make hal-validate
make deploy
make deploy-monitor
make hal-profiles # List profiles
make hal-apply PROFILE=gaming # Apply profile
make hal-backup # Backup current config
make hal-save # Save current as profile
# Sprawdź ręcznie
ls /media/*/CIRCUITPY 2>/dev/null || ls /mnt/*/CIRCUITPY 2>/dev/null
# Sprawdź HAL konfigurację
make hal-show
# Waliduj konfigurację
make hal-validate
# Sprawdź profile
make hal-profiles
# Resetuj synchronizację
rm .hal_sync.json
make hal-sync
# Wyczyść cache i pobierz ponownie
rm -rf lib_cache/
make deploy-setup
# Sprawdź walidację
make hal-validate
# Pokaż szczegóły
python3 -m rp2040_keyboard.hal_manager show
System tworzy logi w:
backups/ - Backupy plików przed deploymentemhal/backups/ - Backupy konfiguracji HALlib_cache/ - Pobrane biblioteki.hal_sync.json - Stan synchronizacji HALSystem zapewnia:
Podłącz RP2040-One a system automatycznie zainstaluje wszystko co potrzebne na podstawie konfiguracji HAL! 🚀