I recently got a Pironman 5 Pro Max and found that the stock pironman5 software doesn’t fully support it yet. The Pro Max uses a hat_type1 EEPROM (product_id 0316) rather than the standard hat node, which causes several issues out of
the box. I’ve submitted a PR (#55) with the fixes.
Problems Found
- Variant not detected
The Pro Max product_id 0316 wasn’t mapped to any variant, so it fell through to Pironman5Max. This meant wrong defaults for the LED count and other settings.
- SPI and I2C not enabled
The Pi 5 firmware does not auto-load device tree overlays for hat_type1 devices (unlike standard hat EEPROMs). This meant:
- SPI (needed for WS2812 LEDs) — not enabled
- I2C (needed for the OLED) — not enabled
The fix adds explicit dtparam=spi=on and dtparam=i2c_arm=on to /boot/firmware/config.txt during install.
- WS2812 LED count wrong
The Pro Max has 18 WS2812 LEDs in its chain, not 4 like the Max. The chain order is:
┌──────────────────────────────────┬───────┐
│ Segment │ Count │
├──────────────────────────────────┼───────┤
│ 3 fans × 4 addressable LEDs each │ 12 │
├──────────────────────────────────┼───────┤
│ Board LEDs (C1–C6) │ 6 │
├──────────────────────────────────┼───────┤
│ Total │ 18 │
└──────────────────────────────────┴───────┘
With the default rgb_led_count: 4, only 4 LEDs in the chain were being driven and none of the fan LEDs worked. Setting rgb_led_count to 18 lights up all fans and board LEDs.
- Vibration switch bug (pm_auto)
There’s a typo in pm_auto/vibration_switch.py line 38 where self.pull is set instead of self.pull_up. This means the vibration_switch_pull_up config value is never actually applied — it always defaults to True. This is in the pm_auto
repo, not pironman5.
What the PR Does
- Adds a new Pironman5ProMax variant class with rgb_led_count: 18 and CONFIG_TXT settings for explicit SPI/I2C enable
- Maps product_id 0316 to the new variant in the detection logic
- Updates the installer to apply variant-specific config.txt settings
Hardware Notes Discovered During Testing
- The Pro Max GPIO HAT (IO expander) has 6 WS2812B LEDs (C1–C6) on the board
- All 3 fans (2 case + 1 CPU cooler) are identical 5-pin fans with 4 WS2812 LEDs each, plugged into the GPIO HAT
- The WS2812 chain runs through the fans first, then the board LEDs
- A 2-pin cable connects the Pi 5’s fan header to the GPIO HAT for PWM/tach passthrough
- The OV5647 camera works out of the box with no additional configuration
Environment
- Hardware: Raspberry Pi 5, Pironman 5 Pro Max
- OS: Raspberry Pi OS (kernel 6.12)
- pironman5: v1.2.26
PR: sunfounder/pironman5#55