Remote I/O error

Hi, I purchased my Micro Dot pHat in August, but have just made time to try it out.
I soldered all components onto the board (with no bad joints, bridges etc.).
I plugged it onto a new pi 4 8GB setup (running a new installation of bullseye) and successfully run all examples.
I left it on overnight running thermal.py from the example directory and this morning tried to run clock.py and got the following:


Clock

Displays the time in hours, minutes and seconds

Press Ctrl+C to exit.

Traceback (most recent call last):
File “/home/ron/Pimoroni/microdotphat/examples/clock.py”, line 26, in
show()
File “/usr/local/lib/python3.9/dist-packages/microdotphat/init.py”, line 345, in show
setup()
File “/usr/local/lib/python3.9/dist-packages/microdotphat/init.py”, line 413, in setup
_n3 = NanoMatrix(address=0x61)
File “/usr/local/lib/python3.9/dist-packages/microdotphat/matrix.py”, line 61, in init
self.bus.write_byte_data(self.address, CMD_BRIGHTNESS, self._brightness)
File “/usr/local/lib/python3.9/dist-packages/smbus2/smbus2.py”, line 455, in write_byte_data
ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error


I have tried other examples and get similar I/O error messages.

I power-cycled (off/on) the pHat but got the same results when trying the examples.
I unplugged the pi from power, removed and reset the pHat with the same results.
I replaced the pHat with a pi sense hat - which worked perfectly (so the pi 4 seems ok).
I then tried again with the pHat but get the same I/O error message.

Has the board suffered an early life failure - is there a way to do more problem determination?

p.s. I have photos of the soldering (both sides) and the display at failure time (r/h led has three vertical dots running down from the penultimate row from the left, the 2nd from the right led has a 3x3 block of lights in the bottom left of the led). This display is like that at power-on time and doesn’t change.
How do I attach the photos?