Enviro Weather - Unresponsive

Yesterday evening I flashed the v0.9 fiirmware to the Enviro Weather, attached the rain and wind sensors, turned on the battery. It connected to my wifi and uploaded a reading to MQTT as configured and expected.

This morning I found it had made no further uploads (despite being configured to read and upload every 30 mins). There were no LED indications. So I switched it off, planning to connect to USB so that I could inspect the log file. Unfortunately all that happens is that when I apply power the red alarm LED and the white activity LED illuminate steadily, and remain in this state. Pressing reset extinguishes the white LED for the duration of the reset only.

I found that the batteries had been comlpletely exhausted. Replacing them and trying battery power had resulted in the same behaviour.

When plugged into my PC the board is no .longer recognised as a USB device.

I tried entering Boot mode, which suceeded, and the device was then recognised as expected. Reflashing the v0.9 firmware made no difference. The two leds were illuminated steadily but nothing else. I have tried clearing the flash with your flash clearing download and then reflashing version 0.9 and 0.2 firmare, all with the same result. I have run out of ideas, please help.

Upate: I can load non-enviro micropython to gain control of the device on thonny. Using pimoroni-picow-v1.19.12-micropython, I have written some simple micro python to scan the I2C bus. No devices are detected. If I try a write to the address of the real time clock, the device hangs.

I wonder if the something on the enviro board has failed and is taking out the I2C bus? The Pico W itself appears to be working correctly.

I really would like some help with this.

What pins are you using / scanning for i2c devices in your code?
I don’t own a Pico Enviro, but I do have some clones kicking around.
This is my i2c scan code.

import machine
sda=machine.Pin(4) # Explorer 20 Breakout 4
scl=machine.Pin(5) # Explorer 21 Breakout 5
i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)
 
print('Scan i2c bus...')
devices = i2c.scan()
 
if len(devices) == 0:
  print("No i2c device !")
else:
  print('i2c devices found:',len(devices))
 
  for device in devices:  
    print("Decimal address: ",device," | Hex address: ",hex(device))

That’s pretty much identical to my code.

OK, it was all I had to offer. It wouldn’t be hard to look at the wrong pins. Which would get you an empty scan. So far that’s usually been my issue when things don’t work.
I do know that one bad device can take the whole i2c bus down. On a Pi, that usually gets you all the addresses coming back, not none. In my experience anyway. And I don’t know if that applies to a Pico?

Thank you for trying to help. Yes it’s odd that nothing is responding. I did try scanning the other i2c controller, which as expected returned nothing, but rather more quickly.

I suspect the realtime clock has become faulty which is disappointing on a device purchased only last November.