I apologize if this has been posted before, it seems like other people are having the same issue. RPi 5 with 16GB RAM, Pironman 5 Max case with 512GB NVMe in left slot (system boots from the SSD). Everything is working fine EXCEPT the rear fans do not come on (can’t tell if the CPU fan does), no lights on the fans, and the OLED display has never worked. I’ve done everything suggested in other posts, including taking the machine apart to check all of the connections. Nothing has made any difference. I really do think I have a defective I/O expander board, since everything that’s not working is plugged into that. I have a text file with logs from everything related to the Pironman5 software. It shows several times that the OLED is not even being detected, and it says that SPC is off but the Control Centre shows it as ON. I’m new here and to Raspberry Pi, but not to building computers. How do I go about requesting a replacement board?
OLED screen, onboard RGB, and RGB fans not working after correct software installation?
First, please confirm that the I/O Expansion Board is correctly aligned and fully connected to the Raspberry Pi 5’s GPIO pins.
If the board is properly connected, please run the following command to check if the system recognizes the Pironman 5:
cat /proc/device-tree/hat/product
Please send us a screenshot of the output from this command for confirmation.
If the system does not recognize “Pironman 5”, it indicates a firmware issue with your I/O Expansion Board. In this case, we will arrange a replacement I/O Expansion Board for you.
I disassembled the unit, verified that the I/O Expansion Board was installed properly and fully seated on the GPIO pins, then reassembled it. I also inspected the OLED ribbon cable to insure that it was properly aligned and clamped into the connector.
Here is the screenshot when I ran the command you asked for:
(Attachment Pironman service status.txt is missing)
The system did not allow me to attach a text file, so here is the contents of it—the output from several different commands.
● pironman5.service - pironman5 service
Loaded: loaded (/etc/systemd/system/pironman5.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-12-11 20:21:52 CST; 5min ago
Invocation: 5fa907f0709246f7a91401176dac2c01
Main PID: 1763 (pironman5-servi)
Tasks: 8 (limit: 19353)
CPU: 19.093s
CGroup: /system.slice/pironman5.service
└─1763 /opt/pironman5/venv/bin/python3 /opt/pironman5/venv/bin/pironman5-service start
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.782 [INFO] PM Auto Start
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.782 [INFO] PMAuto started
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.782 [INFO] PWM Fan is supported, sync all other fan>
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.856 [INFO] Influxdb is ready
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.865 [INFO] Database ‘pironman5’ created successfully
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.871 [INFO] Dashboard Server start
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.871 [INFO] PmDashboard started
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.886 [DEBUG] Waiting for InfluxDB to be ready
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.931 [INFO] Influxdb is ready
Dec 11 20:21:53 SER-Raspberry-Pi pironman5[1763]: 25/12/11 20:21:53.933 [INFO] Data Logger Start
i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –
sudo pironman5 -c
{
“system”: {
“data_interval”: 1,
“rgb_color”: “#0a1aff”,
“rgb_brightness”: 50,
“rgb_style”: “breathing”,
“rgb_speed”: 50,
“rgb_enable”: true,
“rgb_led_count”: 4,
“temperature_unit”: “C”,
“oled_enable”: true,
“oled_rotation”: 0,
“oled_disk”: “total”,
“oled_network_interface”: “all”,
“gpio_fan_pin”: 6,
“gpio_fan_mode”: 0,
“debug_level”: “INFO”
}
}
sudo ./pironman5 start
25/12/11 21:00:13.189 [INFO]
25/12/11 21:00:13.190 [INFO] ############################################################
25/12/11 21:00:13.192 [DEBUG] Config path: /opt/pironman5/venv/lib/python3.13/site-packages/pironman5/config.json
25/12/11 21:00:13.193 [DEBUG] Pironman5 version: 1.2.22
25/12/11 21:00:13.193 [DEBUG] Variant: Pironman 5
25/12/11 21:00:13.193 [DEBUG] Config: {‘system’: {‘data_interval’: 1, ‘rgb_color’: ‘#0a1aff’, ‘rgb_brightness’: 50, ‘rgb_style’: ‘breathing’, ‘rgb_speed’: 50, ‘rgb_enable’: True, ‘rgb_led_count’: 4, ‘temperature_unit’: ‘C’, ‘oled_enable’: True, ‘oled_rotation’: 0, ‘oled_disk’: ‘total’, ‘oled_network_interface’: ‘all’, ‘gpio_fan_pin’: 6, ‘gpio_fan_mode’: 0, ‘debug_level’: ‘INFO’}}
25/12/11 21:00:13.193 [DEBUG] Device info: {‘name’: ‘Pironman 5’, ‘id’: ‘pironman5’, ‘peripherals’: [‘storage’, ‘cpu’, ‘network’, ‘memory’, ‘history’, ‘log’, ‘ws2812’, ‘cpu_temperature’, ‘gpu_temperature’, ‘temperature_unit’, ‘oled’, ‘clear_history’, ‘delete_log_file’, ‘pwm_fan_speed’, ‘gpio_fan_state’, ‘gpio_fan_mode’], ‘version’: ‘1.2.22’, ‘app_name’: ‘pironman5’}
25/12/11 21:00:13.193 [DEBUG] PM_Auto version: 1.2.12
25/12/11 21:00:13.193 [DEBUG] PM_Dashboard version: 1.2.10
25/12/11 21:00:13.219 [DEBUG] Initializing OLED
25/12/11 21:00:13.254 [ERROR] No OLED found
25/12/11 21:00:13.254 [ERROR] Failed to initialize OLED
25/12/11 21:00:13.254 [ERROR] Failed to initialize OLED
25/12/11 21:00:13.255 [DEBUG] Update LED count: 4
25/12/11 21:00:13.255 [DEBUG] Update RGB enable: True
25/12/11 21:00:13.255 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 21:00:13.255 [DEBUG] Update RGB brightness: 50
25/12/11 21:00:13.255 [DEBUG] Update RGB speed: 50
25/12/11 21:00:13.256 [DEBUG] Update RGB style: breathing
25/12/11 21:00:13.271 [DEBUG] WS2812 initialized
25/12/11 21:00:13.272 [DEBUG] Initializing FanControl
25/12/11 21:00:13.272 [DEBUG] Update gpio_fan_pin to 6
25/12/11 21:00:13.272 [DEBUG] Update gpio_fan_mode to 0
25/12/11 21:00:13.273 [DEBUG] Init GPIO Fan with pin: 6
25/12/11 21:00:13.304 [ERROR] GPIO Fan init error: ‘GPIO busy’
25/12/11 21:00:13.305 [WARNING] GPIO Fan init failed, disable gpio_fan control
25/12/11 21:00:13.305 [DEBUG] Init PWM Fan
25/12/11 21:00:13.323 [DEBUG] FanControl initialized
25/12/11 21:00:14.874 [INFO] SPC peripheral disabled
25/12/11 21:00:16.382 [INFO] Setting debug level to INFO
25/12/11 21:00:16.382 [INFO] PWM Fan is supported, sync all other fan with pwm fan
25/12/11 21:00:16.382 [INFO] PM Auto Start
25/12/11 21:00:16.382 [INFO] PMAuto started
25/12/11 21:00:16.458 [INFO] Influxdb is ready
Address already in use
Port 34001 is in use by another program. Either identify and stop that program, or start the server with a different port.
cat /var/log/pironman5/main.log
25/12/11 22:27:40.432 [INFO]
25/12/11 22:27:40.433 [INFO] ############################################################
25/12/11 22:27:40.433 [DEBUG] Config path: /opt/pironman5/venv/lib/python3.13/site-packages/pironman5/config.json
25/12/11 22:27:40.433 [DEBUG] Pironman5 version: 1.2.22
25/12/11 22:27:40.433 [DEBUG] Variant: Pironman 5
25/12/11 22:27:40.433 [DEBUG] Config: {‘system’: {‘data_interval’: 1, ‘rgb_color’: ‘#0a1aff’, ‘rgb_brightness’: 50, ‘rgb_style’: ‘breathing’, ‘rgb_speed’: 50, ‘rgb_enable’: True, ‘rgb_led_count’: 4, ‘temperature_unit’: ‘C’, ‘oled_enable’: True, ‘oled_rotation’: 0, ‘oled_disk’: ‘total’, ‘oled_network_interface’: ‘all’, ‘gpio_fan_pin’: 6, ‘gpio_fan_mode’: 0, ‘debug_level’: ‘INFO’}}
25/12/11 22:27:40.433 [DEBUG] Device info: {‘name’: ‘Pironman 5’, ‘id’: ‘pironman5’, ‘peripherals’: [‘storage’, ‘cpu’, ‘network’, ‘memory’, ‘history’, ‘log’, ‘ws2812’, ‘cpu_temperature’, ‘gpu_temperature’, ‘temperature_unit’, ‘oled’, ‘clear_history’, ‘delete_log_file’, ‘pwm_fan_speed’, ‘gpio_fan_state’, ‘gpio_fan_mode’], ‘version’: ‘1.2.22’, ‘app_name’: ‘pironman5’}
25/12/11 22:27:40.433 [DEBUG] PM_Auto version: 1.2.12
25/12/11 22:27:40.433 [DEBUG] PM_Dashboard version: 1.2.10
25/12/11 22:27:43.731 [INFO] PMAuto started
25/12/11 22:27:43.808 [INFO] PmDashboard started
cat /var/log/pironman5/pm_auto.oled.log
25/12/11 01:29:25.123 [ERROR] Failed to initialize OLED
25/12/11 01:35:28.960 [ERROR] ‘SSD1306’ object has no attribute ‘draw’
Traceback (most recent call last):
File “/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/utils.py”, line 11, in wrapper
return func(self, *args, **kwargs)
File “/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/oled.py”, line 222, in sleep
self.oled.clear()
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/ssd1306.py", line 293, in clear
self.draw.rectangle((0, 0, self.width, self.height), outline=0, fill=0)
^^^^^^^^^
AttributeError: 'SSD1306' object has no attribute 'draw'
25/12/11 01:37:34.133 [ERROR] Failed to initialize OLED
25/12/11 09:35:12.730 [ERROR] Failed to initialize OLED
25/12/11 10:34:45.105 [ERROR] Failed to initialize OLED
25/12/11 11:00:05.287 [ERROR] Failed to initialize OLED
25/12/11 11:13:16.540 [ERROR] Failed to initialize OLED
25/12/11 11:20:17.108 [ERROR] 'SSD1306' object has no attribute 'draw'
Traceback (most recent call last):
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/utils.py", line 11, in wrapper
return func(self, *args, **kwargs)
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/oled.py", line 222, in sleep
self.oled.clear()
~~~~~~~~~~~~~~~^^
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/ssd1306.py", line 293, in clear
self.draw.rectangle((0, 0, self.width, self.height), outline=0, fill=0)
^^^^^^^^^
AttributeError: 'SSD1306' object has no attribute 'draw'
25/12/11 11:26:38.115 [ERROR] 'SSD1306' object has no attribute 'draw'
Traceback (most recent call last):
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/utils.py", line 11, in wrapper
return func(self, *args, **kwargs)
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/oled.py", line 222, in sleep
self.oled.clear()
~~~~~~~~~~~~~~~^^
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/ssd1306.py", line 293, in clear
self.draw.rectangle((0, 0, self.width, self.height), outline=0, fill=0)
^^^^^^^^^
AttributeError: 'SSD1306' object has no attribute 'draw'
25/12/11 11:38:25.608 [ERROR] Failed to initialize OLED
25/12/11 11:54:02.395 [ERROR] Failed to initialize OLED
25/12/11 12:00:30.332 [ERROR] Failed to initialize OLED
25/12/11 19:12:46.886 [ERROR] Failed to initialize OLED
25/12/11 19:17:31.744 [ERROR] 'SSD1306' object has no attribute 'draw'
Traceback (most recent call last):
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/utils.py", line 11, in wrapper
return func(self, *args, **kwargs)
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/oled.py", line 222, in sleep
self.oled.clear()
~~~~~~~~~~~~~~~^^
File "/opt/pironman5/venv/lib/python3.13/site-packages/pm_auto/ssd1306.py", line 293, in clear
self.draw.rectangle((0, 0, self.width, self.height), outline=0, fill=0)
^^^^^^^^^
AttributeError: 'SSD1306' object has no attribute 'draw'
25/12/11 20:56:01.862 [ERROR] Failed to initialize OLED
25/12/11 21:31:50.682 [ERROR] Failed to initialize OLED
25/12/11 22:25:44.646 [ERROR] Failed to initialize OLED
25/12/11 23:00:02.177 [ERROR] Failed to initialize OLED
cat /var/log/pironman5/pm_auto.ws2812.log
25/12/11 01:29:25.123 [ERROR] SPI not enabled
25/12/11 01:37:34.133 [ERROR] SPI not enabled
25/12/11 09:35:12.730 [ERROR] SPI not enabled
25/12/11 10:34:45.105 [DEBUG] Update LED count: 4
25/12/11 10:34:45.105 [DEBUG] Update RGB enable: True
25/12/11 10:34:45.105 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 10:34:45.105 [DEBUG] Update RGB brightness: 50
25/12/11 10:34:45.105 [DEBUG] Update RGB speed: 50
25/12/11 10:34:45.105 [DEBUG] Update RGB style: breathing
25/12/11 11:00:05.287 [DEBUG] Update LED count: 4
25/12/11 11:00:05.288 [DEBUG] Update RGB enable: True
25/12/11 11:00:05.288 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 11:00:05.288 [DEBUG] Update RGB brightness: 50
25/12/11 11:00:05.288 [DEBUG] Update RGB speed: 50
25/12/11 11:00:05.288 [DEBUG] Update RGB style: breathing
25/12/11 11:13:16.541 [DEBUG] Update LED count: 4
25/12/11 11:13:16.541 [DEBUG] Update RGB enable: True
25/12/11 11:13:16.541 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 11:13:16.541 [DEBUG] Update RGB brightness: 50
25/12/11 11:13:16.541 [DEBUG] Update RGB speed: 50
25/12/11 11:13:16.541 [DEBUG] Update RGB style: breathing
25/12/11 11:38:25.608 [DEBUG] Update LED count: 4
25/12/11 11:38:25.608 [DEBUG] Update RGB enable: True
25/12/11 11:38:25.608 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 11:38:25.608 [DEBUG] Update RGB brightness: 50
25/12/11 11:38:25.608 [DEBUG] Update RGB speed: 50
25/12/11 11:38:25.608 [DEBUG] Update RGB style: rainbow
25/12/11 11:54:02.396 [DEBUG] Update LED count: 4
25/12/11 11:54:02.396 [DEBUG] Update RGB enable: True
25/12/11 11:54:02.396 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 11:54:02.396 [DEBUG] Update RGB brightness: 50
25/12/11 11:54:02.396 [DEBUG] Update RGB speed: 50
25/12/11 11:54:02.396 [DEBUG] Update RGB style: breathing
25/12/11 12:00:30.332 [DEBUG] Update LED count: 4
25/12/11 12:00:30.332 [DEBUG] Update RGB enable: True
25/12/11 12:00:30.332 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 12:00:30.332 [DEBUG] Update RGB brightness: 50
25/12/11 12:00:30.332 [DEBUG] Update RGB speed: 50
25/12/11 12:00:30.332 [DEBUG] Update RGB style: breathing
25/12/11 19:12:46.886 [DEBUG] Update LED count: 4
25/12/11 19:12:46.886 [DEBUG] Update RGB enable: True
25/12/11 19:12:46.886 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 19:12:46.886 [DEBUG] Update RGB brightness: 50
25/12/11 19:12:46.887 [DEBUG] Update RGB speed: 50
25/12/11 19:12:46.887 [DEBUG] Update RGB style: breathing
25/12/11 20:56:01.862 [DEBUG] Update LED count: 4
25/12/11 20:56:01.862 [DEBUG] Update RGB enable: True
25/12/11 20:56:01.862 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 20:56:01.862 [DEBUG] Update RGB brightness: 50
25/12/11 20:56:01.862 [DEBUG] Update RGB speed: 50
25/12/11 20:56:01.862 [DEBUG] Update RGB style: rainbow
25/12/11 21:31:50.683 [DEBUG] Update LED count: 4
25/12/11 21:31:50.683 [DEBUG] Update RGB enable: True
25/12/11 21:31:50.683 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 21:31:50.683 [DEBUG] Update RGB brightness: 50
25/12/11 21:31:50.683 [DEBUG] Update RGB speed: 50
25/12/11 21:31:50.683 [DEBUG] Update RGB style: rainbow
25/12/11 22:25:44.646 [DEBUG] Update LED count: 4
25/12/11 22:25:44.646 [DEBUG] Update RGB enable: True
25/12/11 22:25:44.647 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 22:25:44.647 [DEBUG] Update RGB brightness: 50
25/12/11 22:25:44.647 [DEBUG] Update RGB speed: 50
25/12/11 22:25:44.647 [DEBUG] Update RGB style: rainbow
25/12/11 23:00:02.177 [DEBUG] Update LED count: 4
25/12/11 23:00:02.177 [DEBUG] Update RGB enable: True
25/12/11 23:00:02.177 [DEBUG] Update RGB color: [10, 26, 255]
25/12/11 23:00:02.177 [DEBUG] Update RGB brightness: 50
25/12/11 23:00:02.177 [DEBUG] Update RGB speed: 50
25/12/11 23:00:02.177 [DEBUG] Update RGB style: rainbow
The issue is likely with the IO expansion board. We will send you a new one. Please contact service@sunfounder.com and provide your address details.
That email address appears to have some issues, as it has blocked every message I’ve attempted to send to it (it thinks I am sending spam, yet it is literally nothing except a brief explanation of what I need and my name and address). This is very frustrating. Is there no other way to get support for your products?
Please contact support@sunfounder.com and provide your address details.
I did that, and it appeared that the email went through. Thank you.

