Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#11,247 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
embedded-iot

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
C
Star
4.6k
Fork
1.4k
Merge trung bình
1 ngày 8 giờ
Pull request đã merge (30 ngày)
155

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của adafruit/circuitpython

Tất cả issue của adafruit/circuitpython

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.