Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

`OnDiskBitmap` Issue on UM FeatherS3 While Connected to PC With SD Card Inserted

Aperta
#11,247 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
embedded-iot

Direzione di ricerca

Start with the displayio.OnDiskBitmap and TileGrid calls in the reproducer, then run it on the FeatherS3 with the SD card inserted while connected to a PC and with the PC off. Compare those results with the reported working cases on CP9.2.9 and PyPortal; done means identifying why the map fails to render only in the reported FeatherS3 setup and confirming the behavior with the reproducer.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
CircuitPython version and board name
Adafruit CircuitPython 10.2.1 on 2026-05-13; FeatherS3 with ESP32S3
Board ID:unexpectedmaker_feathers3
Code/REPL
import displayio
import time
from adafruit_featherwing import tft_featherwing_35

DEFAULT_BASE_MAP = "./assets/default_map.bmp"


class FeatherS3:
    def __init__(self):
        self._fw = tft_featherwing_35.TFTFeatherWing35V2()
        self.display = self._fw.display
        self.display.rotation = 180

    @property
    def width(self):
        return self.display.width

    @property
    def height(self):
        return self.display.height


class SkyPortalUI:
    def __init__(self, device):
        self.device = device
        self.display = self.device.display

        # Set up main display element
        self.main_display_group = displayio.Group()
        self.display.root_group = self.main_display_group

    def set_base_map(self):
        map_img = displayio.OnDiskBitmap(DEFAULT_BASE_MAP)

        map_group = displayio.Group()
        map_sprite = displayio.TileGrid(map_img, pixel_shader=map_img.pixel_shader)

        map_group.append(map_sprite)
        self.main_display_group.append(map_group)


feather = FeatherS3()
print("Initialized feather")

main_ui = SkyPortalUI(feather)
print("Initialized UI")

main_ui.set_base_map()
print("Base map set?")

print("Looping forever")
while True:
    time.sleep(1)
    feather.display.refresh()
Behavior
Image
Description

Continuation of our chat from Discord!

Hardware:

With the reproducer above, also uses this default map (saved as ./assets/default_map.bmp), and vendored CP10.2.1 libraries. The vendored libraries are sourced from adafruit-circuitpython-bundle-10.x-mpy-20260815 and circuitpython-community-bundle-10.x-mpy-20260806.

With CP10.2.1 the following behavior is observed using a powered USB hub connected to my Windows PC:

  • Computer on, SD card inserted - Map not rendered as expected
  • Computer on, SD card removed - Map renders as expected
  • Computer off, SD card inserted - Map renders as expected
  • Computer off, SD card removed - Map renders as expected

Also reported by folks trying out in Discord, not sure if they were connected to a computer or just power:

  • UM FS3[D] and Featherwing V2, no SD card, both 10.2.1 and 10.3.0.alpha.4 - Map renders as expected
  • Feather S3 8mb flash no psram, no SD card - Map renders as expected

The sample code renders the map image on CP9.2.9 as expected. The sample code also works as expected using my PyPortal on CP10.2.1. Both scenarios are with SD card inserted & computer on.

Additional debug tasks:

  • Set CIRCUITPY_SDCARD_USB=false in settings.toml
  • Try Macbook Pro
Additional information

No response

Lingua principale
C
Stelle
4.6k
Fork
1.4k
Merge medio
1g 7h
PR unite (30g)
147

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di adafruit/circuitpython

Tutte le issue di adafruit/circuitpython

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.