Releases: makepkg/pico-admin-hid
Release list
Pico Admin HID v2.1.0 - INA226 Improve
🎉 Version 2.1.0 Release
🔄 What's New in 2.1.0
- Power Monitor State Machine:
PowerMonitorInputrefactored to 4-state machine (MONITORING → TRIGGERED → SUSPENDED → SUSPENDED_WAITING) - USB Gate: Shutdown trigger fires only if USB is connected — no false triggers when server is already off
- Smart Recovery:
recovery_offset_percentprevents re-triggering immediately after battery recovers - Retry Logic: Configurable
trigger_attemptsandtrigger_attempt_interval_secreplace old cooldown system - Auto-boot Protection: Auto-boot blocked in SUSPENDED state and restricted to 60s grace period after Pico startup
- Safe Boot State: On startup with low battery and no USB — starts directly in SUSPENDED
- Event Logging: State transitions logged to
/power_monitor.logwith automatic 20KB rotation - Config Editor Updated: New fields reflected in
editor.htmlUI
⚠️ Migration from 2.0.0
Remove from config.json:
cooldown_seccancel_cooldown_sec
Add to config.json:
"recovery_offset_percent": 10,
"trigger_attempts": 3,
"trigger_attempt_interval_sec": 60🎉 Version 2.0.0 Release
Major architectural refactoring to support extensible typed inputs and outputs with a unified pipeline execution engine. This release transforms Pico Commander from a hardcoded HID macro pad into a flexible automation runtime.
Pico Admin HID v2.0.0 - Massive refactoring
🎉 Version 2.0.0 Release
Major architectural refactoring to support extensible typed inputs and outputs with a unified pipeline execution engine. This release transforms Pico Commander from a hardcoded HID macro pad into a flexible automation runtime.
✨ Features
- New Typed Inputs System: Unified management for hardware inputs (
inputs_manager.py). Includes built-inhalltype for sensors andpower_monitortype for INA226 battery tracking. - New Modular Outputs System: Scenarios can now target different outputs (
hidfor USB keyboard emulation,gpiofor physical relay/optocoupler control) within the same sequence. - Unified Pipeline Engine: Both menu clicks (
active_menu) and hardware sensors (passive) now use the exact samepipelineandloopexecution logic. - GPIO Auto-Boot: Added
auto_bootcapability for GPIO outputs to automatically pulse a power button (e.g., wake up a server) on startup if the USB host is not detected. - Advanced Power Monitoring: INA226 support with low-battery warning overlays, encoder-dismissible alerts, and a dynamic battery percentage splash screen during screensaver.
- Web Config Studio: Fully functional visual configuration editor (
editor.html) with drag-and-drop menu building and real-time validation.
📦 Hardware Required
- Raspberry Pi Pico (RP2040)
- SSD1306 OLED display (128×32, I2C)
- Rotary encoder with push button
- Hall effect sensors (Optional, for passive triggers)
- INA226 module (Optional, for battery monitoring)
- Tactile button (Optional, for boot mode selection)
🚀 Quick Start
- Install CircuitPython 9.x on Raspberry Pi Pico
- Copy all files from this release to the
CIRCUITPYdrive - Install required libraries (see README.md Step 2)
- Configure your hardware in
config.json - Create scenarios and assign triggers
Full documentation: https://github.com/makepkg/pico-admin-hid#readme
📚 Documentation
- Quick Start Guide - 10-minute setup
- Configuration Guide - Complete config.json reference
- Automation & Pipelines - How to build trigger chains
- Config Editor Guide - Visual editor instructions
- Architecture - System design and modules
- Inputs / Outputs - Developer guides for extending hardware support
📋 Required Libraries
adafruit_displayio_ssd1306.mpyadafruit_display_text/(folder)adafruit_hid/(folder)
Download from: https://github.com/adafruit/Adafruit_CircuitPython_Bundle/releases
🔧 What's Included
Core files:
boot.py- USB HID initializationcode.py- Main entry pointconfig.py- Configuration loadertrigger_bus.py- Core event coordination and pipeline engineinputs_manager.py- Unified hardware sensor handlerencoder.py- Menu navigation and active triggersdisplay.py- OLED renderingscreensaver.py- Display timeout logicoutput_hid.py/output_gpio.py- Output driver modules
Configuration:
config.json- Hardware, scenarios, triggers (customize this)
Tools:
editor.html- Visual configuration editor (open in browser)
📝 License
MIT License - see LICENSE file
🙏 Credits
Built with CircuitPython and Adafruit libraries. See CONTRIBUTORS.md for full attribution.
Tested with: CircuitPython 9.0.5
Hardware: Raspberry Pi Pico (RP2040)
Platform: Linux, macOS, Windows
Pico Admin HID v1.0.0 - Initial Release
🎉 Initial Release
Physical macro pad controller for Raspberry Pi Pico with OLED display, rotary encoder, and USB HID keyboard emulation.
✨ Features
- Physical triggers: Hall sensors, button (passive system)
- Menu-driven triggers: Rotary encoder navigation (active system)
- USB HID: Keyboard, media keys, custom shortcuts
- OLED display: 128×64 monochrome with screensaver
- Web-based configuration: Visual JSON editor (editor.html)
- SD card support: Config backup and import
📦 Hardware Required
- Raspberry Pi Pico (not Pico W)
- SSD1306 OLED display (128×64, I2C)
- Rotary encoder with button
- Hall effect sensors (2×)
- Tactile button
- Neodymium magnets (for Hall sensors)
🚀 Quick Start
- Install CircuitPython 9.x on Raspberry Pi Pico
- Copy all files from this release to
CIRCUITPYdrive - Install required libraries (see README.md Step 2)
- Configure hardware in
config.json - Create scenarios and assign triggers
Full documentation: README.md
📚 Documentation
- Quick Start Guide - 10-minute setup
- Configuration Guide - Complete config.json reference
- Config Editor Guide - Visual editor instructions
- Architecture - System design and modules
- Passive Triggers - Hardware trigger system
- Active Triggers - Menu trigger system
📋 Required Libraries
adafruit_displayio_ssd1306.mpyadafruit_display_text/(folder)adafruit_hid/(folder)
Download from: Adafruit CircuitPython Bundle 9.x
🔧 What's Included
Core files:
boot.py- USB HID initializationcode.py- Main entry pointconfig.py- Configuration loadertrigger_bus.py- Event coordinationpassive.py- Hardware trigger handlerencoder.py- Menu navigation and active triggersdisplay.py- OLED renderingscreensaver.py- Display timeout logic
Configuration:
config.json- Hardware, scenarios, triggers (customize this)settings.toml.example- USB device settings template
Tools:
editor.html- Visual configuration editor (open in browser)
Documentation:
- Complete README with installation guide
- User guides for configuration
- Developer documentation for extending the system
📝 License
MIT License - see LICENSE file
🙏 Credits
Built with CircuitPython and Adafruit libraries. See CONTRIBUTORS.md for full attribution.
Tested with: CircuitPython 9.0.5
Hardware: Raspberry Pi Pico (RP2040)
Platform: Linux, macOS, Windows