# BOOT.PY FOR PWT 5.0 (OLED Version)
import storage
import board
import digitalio
import busio
import time
import adafruit_ssd1306

# 1. Taste initialisieren (GP9)
btn_select = digitalio.DigitalInOut(board.GP9)
btn_select.direction = digitalio.Direction.INPUT
btn_select.pull = digitalio.Pull.UP

# 2. USB-Laufwerk Logik
usb_status = "ENABLED"
if btn_select.value == 1:
    storage.disable_usb_drive()
    usb_status = "DISABLED"

# 3. I2C und OLED initialisieren
i2c = busio.I2C(scl=board.GP7, sda=board.GP6)

# SSD1306 OLED initialisieren (128x32)
# Hinweis: Der PCF8574 wird hier nicht mehr benötigt, wenn nur das OLED am I2C hängt.
display = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c, addr=0x3C)

def update_display(line1, line2):
    display.fill(0) # Puffer leeren
    display.text(line1, 0, 0, 1)  # Text, X, Y, Farbe (1=weiß)
    display.text(line2, 0, 16, 1) # Zweite Zeile etwas tiefer
    display.show() # Puffer an Display senden

# 4. Countdown (3 Minuten)
update_display("BOOTDELAY", "USB: " + usb_status)
time.sleep(2)

total_seconds = 3 * 60
start_time = time.monotonic()

while time.monotonic() - start_time < total_seconds:
    remaining = int(total_seconds - (time.monotonic() - start_time))
    mins = remaining // 60
    secs = remaining % 60
    
    time_str = "Skip: {:02d}:{:02d}".format(mins, secs)
    update_display("BOOTDELAY", time_str)

    # Abbruch-Abfrage: Taste gedrückt? (LOW)
    if btn_select.value == 0:
        update_display("Starting now...", "")
        break

    time.sleep(0.5) # Etwas langsamer für das Display-Update reicht völlig

# Display für das Hauptprogramm leeren
display.fill(0)
display.show()