電子工作 
正面

後ろ(Xiaoは別売りです)

動いた!
Xiao Round DisplayをLovyanGFXで描画する
Arduino LovyanGFX
Seeed StudioのXiaoマイコン用円形ディスプレイを研究室から強奪手に入れたので、使い方をメモしておきます。
マイコンは、とりあえずSeeed Xiao ESP32S3を使用。
外観


LCDの他にSDカードスロットとRTC、リポバッテリー用のコネクタがあるっぽい?
LovyanGFXで表示
M5Stack系でよくM5Unifiedを使うので、使い慣れたLovyanGFXで表示してみます。
ディスプレイ定義は以下のような感じで動くはずです:
#include <LovyanGFX.h>
class LGFX_RoundDisplay : public lgfx::LGFX_Device { private: lgfx::Panel_GC9A01 _panel; lgfx::Bus_SPI _bus;
public: LGFX_RoundDisplay() { { auto cfg = _bus.config();
// Seeed Studio Round Display for XIAO // LCD SPI: XIAO のハードウェア SPI を使用 cfg.spi_host = SPI2_HOST; cfg.spi_mode = 0; cfg.freq_write = 40000000; // 40 MHz cfg.freq_read = 16000000; cfg.spi_3wire = true; cfg.use_lock = true; cfg.dma_channel = SPI_DMA_CH_AUTO; cfg.pin_sclk = D8; cfg.pin_mosi = D10; cfg.pin_miso = -1; cfg.pin_dc = D3;
_bus.config(cfg); _panel.setBus(&_bus); }
{ auto cfg = _panel.config();
cfg.pin_cs = D1; cfg.pin_rst = -1; cfg.pin_busy = -1; cfg.panel_width = 240; cfg.panel_height = 240; cfg.memory_width = 240; cfg.memory_height = 240; cfg.offset_x = 0; cfg.offset_y = 0; cfg.offset_rotation = 0; cfg.dummy_read_pixel = 8; cfg.dummy_read_bits = 1; cfg.readable = false; cfg.invert = true; cfg.rgb_order = false; cfg.dlen_16bit = false; cfg.bus_shared = false;
_panel.config(cfg); }
setPanel(&_panel); }};Arduino IDEで、実際に何か表示してみます:
constexpr uint8_t LCD_BL = D6; // バックライト制御用ピン
LGFX_RoundDisplay display;
void setup() { pinMode(LCD_BL, OUTPUT); digitalWrite(LCD_BL, HIGH);
display.init(); display.setRotation(1); display.setBrightness(255);
display.fillScreen(TFT_BLACK); display.setTextColor(TFT_WHITE); display.setFont(&fonts::Font4);
display.setCursor(0, 0); display.println("Hello, World!");}
void loop() { delay(10000);}
さて、何作ろうかな〜〜……