I have an older RV3028 plugged into a Pico Breakout Garden Base.
import machine
sda=machine.Pin(4) #20 Explorer 4 Breakout
scl=machine.Pin(5) #21 Explorer 5 Breakout
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))
gets me
MPY: soft reboot
Scan i2c bus...
i2c devices found: 1
Decimal address: 82 | Hex address: 0x52
And
# This example grabs the time/date from your Pico's RTC and uses it to set the time on your RV3028 RTC breakout
# Your Pico/RP2040 board will only know the correct time if you're running this script through Thonny!
from pimoroni_i2c import PimoroniI2C
from breakout_rtc import BreakoutRTC
import machine
PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5} # i2c pins 4, 5 for Breakout Garden
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21} # Default i2c pins for Pico Explorer
rtcpico = machine.RTC()
i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
rtcbreakout = BreakoutRTC(i2c)
# this sets up the battery switching mode on your breakout
rtcbreakout.setup()
print(f"Getting time from Pico RTC/Thonny: {rtcpico.datetime()}")
year, month, day, weekday, hour, minute, second, microsecond = rtcpico.datetime()
print("Setting the breakout RTC!")
rtcbreakout.set_time(second, minute, hour, weekday, day, month, year)
print(f"New breakout time: {rtcbreakout.string_date()} {rtcbreakout.string_time()}")
gets me
MPY: soft reboot
Getting time from Pico RTC/Thonny: (2026, 8, 5, 2, 8, 3, 41, 0)
Setting the breakout RTC!
New breakout time: 05/08/2026 08:03:41
My Pico 2W was flashed with Pimoroni’s
rpi_pico2_w-v1.26.1-micropython.uf2
The current set time file is looking for address 52.
My set time is using
i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
I’d double check that your’s is too.