Getting started with seeed round display

more importantly my display isn’t turning on.

did you check the switch on the side?

2 Likes

Hi there,

So I see in the Table for LIB Support on the wiki here that the RP2040 doesn’t have enough sram resource to use the round display.
520 KB internal SRAM (vs 264 KB on RP2040) in any meaningful way AFAIK with circuit python, perhaps a RP-2350 Xiao can.

With 520 KB of internal SRAM (nearly double the RP2040), the RP2350 has a much better chance at supporting a displayio full framebuffer, although it’s still tight.

I have one of those (pic) so I will give it a whirl time permitting.

here is the code I will try ; both…

code.py for Xiao RP2350 + GC9A01

import board
import displayio
import adafruit_gc9a01

# Always release prior display to avoid conflicts
displayio.release_displays()

# SPI and GPIO pins (physical direct wiring)
spi = board.SPI()              # Default SPI (MOSI/SCK)
tft_cs = board.D1              # Chip Select
tft_dc = board.D0              # Data/Command
tft_rst = board.D2             # Reset

# Initialize 4-wire SPI display bus
display_bus = displayio.FourWire(
    spi,
    command=tft_dc,
    chip_select=tft_cs,
    reset=tft_rst,
    baudrate=24000000  # Safe high speed
)

# Initialize GC9A01 round display
display = adafruit_gc9a01.GC9A01(
    display_bus,
    width=240,
    height=240,
    rotation=0
)

# Draw vertical color bars (Red, Green, Blue)
bitmap = displayio.Bitmap(240, 240, 3)
palette = displayio.Palette(3)
palette[0] = 0xFF0000  # Red
palette[1] = 0x00FF00  # Green
palette[2] = 0x0000FF  # Blue

bar_width = 240 // 3
for x in range(240):
    for y in range(240):
        bitmap[x, y] = x // bar_width

tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette)
group = displayio.Group()
group.append(tile_grid)
display.root_group = group

# All done — no need to loop
while True:
    pass

Arduino IDE

#include <Arduino_GFX_Library.h>

Arduino_DataBus *bus = new Arduino_HWSPI(12 /* DC */, 13 /* CS */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 15 /* RST */); // Use correct pins

void setup() {
  gfx->begin();
  gfx->fillScreen(RGB565_RED);
  delay(500);
  gfx->fillScreen(RGB565_GREEN);
  delay(500);
  gfx->fillScreen(RGB565_BLUE);
}

void loop() {
  // Animation or UI code here...
}

  • Use Arduino GFX for reliable, performant display support on XIAO RP2350.
  • Avoid TFT_eSPI — it’s buggy on RP2350.
  • LVGL is also valid if you want a GUI-building framework.

There’s another thread on the subject (CPy+RP2040+RD) on here if it’s of interest, Citric from support addresses the same topic.

HTH
GL :slight_smile: PJ :v:

1 Like