Faulty pHAT?

Recently procured a (yellow) pHAT, but having strange issues on the latest stock Rasbian with pHAT modules installed from ‘source’ (i.e. get.pimoroni.com/inky).

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

$ dpkg -s python-inkyphat
Package: python-inkyphat
Status: install ok installed
Priority: extra
Section: python
Installed-Size: 519
Maintainer: Phil Howard <phil@pimoroni.com>
Architecture: all
Source: inkyphat
Version: 1.0.1
Depends: python-numpy, python-pil, python-rpi.gpio, python-spidev, python:any (<< 2.8), python:any (>= 2.7.5-5~)
Suggests: python-requests
Description: python library for the Pimoroni Inky pHAT
 Ideal for name badges or displaying statutes and notifications.
 .
 This is the Python 2 version of the package.
Homepage: https://github.com/pimoroni/inky-phat

$ grep -i "spi\|i2c" /boot/config.txt 
dtparam=i2c_arm=on
dtparam=spi=on

$ sudo pip install --upgrade inkyphat
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already up-to-date: inkyphat in /usr/lib/python2.7/dist-packages (1.0.1)
Requirement already satisfied, skipping upgrade: spidev in /usr/lib/python2.7/dist-packages (from inkyphat) (3.4)
Requirement already satisfied, skipping upgrade: RPi.GPIO in /usr/lib/python2.7/dist-packages (from inkyphat) (0.7.0)
Requirement already satisfied, skipping upgrade: numpy in /usr/lib/python2.7/dist-packages (from inkyphat) (1.16.2)
Requirement already satisfied, skipping upgrade: pillow in /usr/lib/python2.7/dist-packages (from inkyphat) (5.4.1)

All appears OK. Executing the ‘clean.py’ script returns no errors;

$ python clean.py --type phat --colour yellow
Inky pHAT: Clean

Displays solid blocks of red, black, and white to clean the Inky pHAT
display of any ghosting.

Cleaning cycle 1

- updating with yellow
- updating with black
- updating with white

Cleaning cycle 2

- updating with yellow
- updating with black
- updating with white

Cleaning cycle 3

- updating with yellow
- updating with black
- updating with white

Cleaning complete!

Nothing changes on the screen. The default ‘logo’ remains.

$ python name-badge.py --type phat --colour yellow --name "Please Work"
Inky pHAT/wHAT: Hello... my name is:

Use Inky pHAT/wHAT as a personalised name badge!

$ python calendar-phat.py --colour "yellow"
Inky pHAT: Calendar

Draws a calendar for the current month to your Inky pHAT.
This example uses a sprite sheet of numbers and month names which are
composited over the background in a couple of different ways.

Still, nothing changes.

$ python weather-phat.py --colour "yellow"
Inky pHAT: Weather

Displays weather information for a given location. The default location is Sheffield-on-Sea.

Again, nothing changes… and no errors, but the majority of the time, attempting to execute any of the stock examples causes the Pi to crash and all operations (e.g. ls, top, reboot etc.) all error with;

-bash: /path/to/bin: Input/output error

This is repeatable across different media (SD), hardware (ZeroW) and only occurs once the pHAT drivers are installed and the Python scripts executed.

For what good it achieved, I have removed and reseated the ribbon cable in the pHAT itself.

Pi Zero, with soldered on header?
pHat firmly pressed down / attached to PI?
SPI enabled in raspi-config?

I am not seeing anything “positive” in dmesg… so it’s looking plausible the issue is the connection, but it’s firmly attached and SPI is enabled (both in config.txt and via raspi-config).

What’s the most appropriate way to confirm this device is seen by the kernel?

Reverted to cheating; lshw confirms the device is not present.

I would have anticipated an error from Python if that were the case, but you know what they say about assumptions…

I’ll attempt to trial some hardware swapping with non-Zeros and different GPIO connectors.