Skip to content

Add Pironman 5 Pro Max variant support (product_id 0316)#55

Open
morriskr wants to merge 36 commits intosunfounder:maxfrom
morriskr:max
Open

Add Pironman 5 Pro Max variant support (product_id 0316)#55
morriskr wants to merge 36 commits intosunfounder:maxfrom
morriskr:max

Conversation

@morriskr
Copy link

Summary

  • Adds Pironman5ProMax variant class for the Pro Max case (hat_type1, product_id 0316)
  • The Pro Max uses hat_type1 which does not auto-load device tree overlays, so SPI and I2C must be explicitly enabled in config.txt via a new CONFIG_TXT class attribute
  • Sets rgb_led_count to 18 (3 fans × 4 WS2812 LEDs + 6 board LEDs), confirmed by hardware testing
  • Applies variant-specific config.txt settings during install

Files changed

  • pironman5/variants/pironman5_pro_max.py — New variant class
  • pironman5/variants/__init__.py — Import, register in VARIANTS dict, map 0316Pironman5ProMax
  • install.py — Read CONFIG_TXT from detected variant and apply during install

Test plan

  • Tested on actual Pironman 5 Pro Max hardware (Pi 5, product_id 0316)
  • Variant correctly detected as "Pironman 5 Pro Max"
  • All 18 WS2812 LEDs working (12 fan + 6 board)
  • OLED display working via I2C
  • GPIO fan control working
  • Camera (OV5647) working

Note

Also found a bug in pm_auto vibration_switch.py line 38: self.pull should be self.pull_up — the config value for vibration_switch_pull_up is never applied. This is in the pm_auto repo, not this one.

🤖 Generated with Claude Code

cavonlee and others added 30 commits August 20, 2025 15:04
Add python3-dev as an apt dependency to ensure proper build environment setup
- Add VARIANTS dictionary to map variant names to classes
- Implement force variant selection through /opt/pironman5/variant file
- Add --variant CLI argument to override variant selection
- Update installer to handle variant overrides and update settings accordingly
Replace hardcoded overlay paths with a list of possible paths and iterate through them to find the valid one. This makes the code more maintainable and handles additional possible overlay locations.
Move repeated overlay path detection logic into a dedicated get_overlay_path method to improve code reuse and maintainability
Add check for umbrelOS to skip dtoverlay configuration and bump version number to reflect changes
…ible

fix: update version to 1.2.21 and add umbrelOS detection
Update support OS
Add wait_for_dpkg method to check for dpkg locks before installation
Include test script to simulate dpkg lock scenarios
Add noninteractive flag to apt-get install command to prevent prompts
Add DEBIAN_FRONTEND=noninteractive to apt-get commands to prevent interactive prompts during installation
Remove alpha tag from version as we're moving to stable release
- Update package version from 1.2.22 to 1.2.23
- Add common Python build artifacts to gitignore
- Implement URL fallback mechanism from github to gitee
- Update dependency URLs to use dynamic GIT_URL variable
The previous command didn't properly verify the key fingerprint before installation. This change adds explicit fingerprint verification and updates the keyring path to follow modern Debian/Ubuntu conventions.
Add a new script to handle the setup of InfluxDB installation source, including GPG key verification and repository configuration. The script includes error handling and root privilege checks.
Move complex influxdb setup commands into a dedicated script for better maintainability and readability.
The message was changed to be less alarming when GitHub is unreachable since we have a fallback to Gitee
- Add support for modern GCC versions with compatibility patches
- Implement fallback to source compilation when apt package is unavailable
- Include proper error handling and cleanup procedures
Add a new script to automate merging multiple branches into a target branch and optionally creating version tags. The script handles merging specified branches and pushing them, with an option to create and push version tags when provided.
…ogic

- Remove redundant GIT_URL checks from install.py
- Add GIT_URL handling as class attributes in SF_Installer
- Implement backup URL checking mechanism
- Remove --gitee flag as it's no longer needed
The requests package is required for making HTTP calls in the installer
Update package version to 1.2.26a1 for development. Refactor requests import to use importlib for better module loading.
Add site.main() and importlib.invalidate_caches() to ensure proper module loading when checking git URLs. This prevents potential import errors due to stale caches or outdated paths.
cavonlee and others added 6 commits January 20, 2026 18:38
…ndling

- Replace manual site-packages refresh with direct path insertion
- Add debug prints for better visibility of git URL selection
Ensure the print statement only executes when the URL is successfully set to avoid misleading output
The Pro Max uses hat_type1 which does not auto-load device tree overlays,
so SPI and I2C must be explicitly enabled in config.txt. The Pro Max also
has 18 WS2812 LEDs in its chain (3 fans x 4 LEDs + 6 board LEDs) versus
4 on the base and Max variants.

Changes:
- Add Pironman5ProMax variant class with rgb_led_count=18, CONFIG_TXT
  for explicit SPI/I2C enable, and oled_sleep_timeout=0
- Map product_id 0316 to Pironman5ProMax in variant detection
- Apply variant-specific config.txt settings during install

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants