Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#11,247 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
embedded-iot

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
C
Estrellas
4.6k
Forks
1.4k
Merge medio
1 d 8 h
PR fusionados (30 d)
153

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de adafruit/circuitpython

Todos los issues de adafruit/circuitpython

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.