Pironman 5 Pro Max — Software Support (WS2812 LEDs, OLED, SPI/I2C fix)

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

  1. 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.

  1. 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.

  1. 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.

  1. 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

It is possible that you have installed the incorrect version of the pironman5 software. Please uninstall pironman5 using the following commands:
cd ~/pironman5
sudo python3 install.py --uninstall
cd ~/
sudo rm -rf pironman5

Then reinstall it:
cd ~
git clone -b pro-max GitHub - sunfounder/pironman5: Code for Raspberry Pi 5 case (Pironman5) · GitHub --depth 1
cd ~/pironman5
sudo python3 install.py

Yep. I see what happened. The instructions I followed on the Sunfounder website said “max”, not “pro-max”. Bummer. The website makes no distinction between the two models. Thanks.

We’re sorry for the confusion caused by the product naming on our website. We are actively working on updating our website to make the differences more obvious and prevent this kind of misunderstanding in the future.