Skip to content

i2cdisplaybus + 10.0.3 is twice slower than 9.2.9 #10681

@mrbbp

Description

@mrbbp

CircuitPython version and board name

Adafruit CircuitPython 10.0.3 on 2025-10-17; Seeeduino XIAO RP2040 with rp2040
Board ID:seeeduino_xiao_rp2040

and

Adafruit CircuitPython 9.2.9 on 2025-09-07; Seeeduino XIAO RP2040 with rp2040
Board ID:seeeduino_xiao_rp2040

Code/REPL

displayio.release_displays()
i2c = busio.I2C(board.D5, board.D4)
# CircuitPython 10: Utilisation de i2cdisplaybus pour créer le bus I2C
display_bus = i2cdisplaybus.I2CDisplayBus(i2c, device_address=0x3C)
# adafruit_displayio_ssd1306
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=SCREEN_WIDTH, height=SCREEN_HEIGHT)

[...] 
    # Temps après la création de l'image, avant l'affichage
    before_refresh_time = time.monotonic()
    
    # Mettre à jour l'écran
    display.refresh()
    
    # Temps après l'affichage
    after_refresh_time = time.monotonic()
    
    # Calculer les durées
    creation_time = (before_refresh_time - start_time) * 1000  # en millisecondes
    refresh_time = (after_refresh_time - before_refresh_time) * 1000  # en millisecondes
    total_time = (after_refresh_time - start_time) * 1000  # en millisecondes
    
    # Afficher les statistiques toutes les 10 frames pour ne pas saturer le terminal
    if frame_in_phase_counter % 10 == 0:
        print(f"Timings - Création: {creation_time:.2f}ms | Refresh: {refresh_time:.2f}ms | Total: {total_time:.2f}ms")

Behavior

Adafruit CircuitPython 9.2.9 on 2025-09-07; Seeeduino XIAO RP2040 with rp2040
Board ID:seeeduino_xiao_rp2040
UID:4250305031363910

Écran SSD1306 et LDR initialisés.
Démarrage de l'animation rapide avec division aléatoire.
Timings - Création: 14.16ms | Refresh: 73.00ms | Total: 87.16ms
Timings - Création: 14.16ms | Refresh: 73.97ms | Total: 88.13ms
Timings - Création: 13.92ms | Refresh: 73.00ms | Total: 86.91ms
Timings - Création: 14.16ms | Refresh: 73.00ms | Total: 87.16ms
Timings - Création: 13.92ms | Refresh: 73.97ms | Total: 87.89ms
Timings - Création: 14.16ms | Refresh: 73.97ms | Total: 88.13ms
Timings - Création: 12.94ms | Refresh: 73.00ms | Total: 85.94ms
Timings - Création: 14.89ms | Refresh: 73.00ms | Total: 87.89ms
Timings - Création: 15.87ms | Refresh: 73.00ms | Total: 88.87ms
Timings - Création: 13.92ms | Refresh: 73.00ms | Total: 86.91ms
Timings - Création: 18.07ms | Refresh: 71.04ms | Total: 89.11ms
Timings - Création: 18.07ms | Refresh: 73.97ms | Total: 92.04ms
Timings - Création: 18.07ms | Refresh: 71.04ms | Total: 89.11ms
Timings - Création: 18.07ms | Refresh: 73.00ms | Total: 91.06ms
Timings - Création: 19.04ms | Refresh: 71.04ms | Total: 90.09ms
Timings - Création: 17.82ms | Refresh: 70.07ms | Total: 87.89ms
Timings - Création: 18.80ms | Refresh: 70.07ms | Total: 88.87ms
Timings - Création: 18.07ms | Refresh: 72.02ms | Total: 90.09ms
Timings - Création: 18.07ms | Refresh: 70.80ms | Total: 88.87ms
Timings - Création: 18.07ms | Refresh: 73.00ms | Total: 91.06ms
Timings - Création: 16.11ms | Refresh: 71.78ms | Total: 87.89ms
Timings - Création: 13.92ms | Refresh: 73.00ms | Total: 86.91ms
Timings - Création: 12.94ms | Refresh: 73.00ms | Total: 85.94ms

Adafruit CircuitPython 10.0.3 on 2025-10-17; Seeeduino XIAO RP2040 with rp2040
Board ID:seeeduino_xiao_rp2040
UID:4250305031363910

Écran SSD1306 et LDR initialisés.
Démarrage de l'animation rapide avec division aléatoire.
Timings - Création: 13.00ms | Refresh: 149.02ms | Total: 162.02ms
Timings - Création: 13.98ms | Refresh: 147.00ms | Total: 160.98ms
Timings - Création: 13.00ms | Refresh: 139.98ms | Total: 152.98ms
Timings - Création: 13.00ms | Refresh: 140.01ms | Total: 153.02ms
Timings - Création: 13.00ms | Refresh: 139.01ms | Total: 152.01ms
Timings - Création: 14.01ms | Refresh: 145.02ms | Total: 159.03ms
Timings - Création: 13.00ms | Refresh: 138.00ms | Total: 151.00ms
Timings - Création: 14.01ms | Refresh: 143.01ms | Total: 157.01ms
Timings - Création: 11.99ms | Refresh: 142.00ms | Total: 153.99ms
Timings - Création: 14.01ms | Refresh: 144.99ms | Total: 159.00ms
Timings - Création: 13.98ms | Refresh: 144.01ms | Total: 157.99ms
Timings - Création: 14.01ms | Refresh: 143.98ms | Total: 157.99ms
Timings - Création: 14.01ms | Refresh: 143.98ms | Total: 157.99ms
Timings - Création: 14.01ms | Refresh: 142.97ms | Total: 156.98ms
Timings - Création: 13.00ms | Refresh: 143.01ms | Total: 156.01ms
Timings - Création: 15.99ms | Refresh: 148.01ms | Total: 164.00ms
Timings - Création: 17.00ms | Refresh: 142.00ms | Total: 159.00ms
Timings - Création: 14.98ms | Refresh: 144.01ms | Total: 159.00ms
Timings - Création: 13.00ms | Refresh: 146.00ms | Total: 159.00ms
Timings - Création: 13.00ms | Refresh: 142.00ms | Total: 155.00ms
Timings - Création: 13.00ms | Refresh: 146.00ms | Total: 159.00ms
Timings - Création: 13.00ms | Refresh: 144.01ms | Total: 157.01ms
Timings - Création: 13.00ms | Refresh: 145.02ms | Total: 158.02ms
Timings - Création: 13.00ms | Refresh: 144.99ms | Total: 157.99ms
Timings - Création: 13.00ms | Refresh: 147.00ms | Total: 160.00ms
Timings - Création: 13.00ms | Refresh: 145.02ms | Total: 158.02ms
Timings - Création: 11.99ms | Refresh: 144.01ms | Total: 156.01ms
Timings - Création: 11.99ms | Refresh: 148.99ms | Total: 160.98ms
Timings - Création: 13.00ms | Refresh: 148.01ms | Total: 161.01

Description

same code for the same model board and same model oled display.
one is with CP9.2.9 the other with CP10.0.3

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions