Skip to content

Commit 8dab486

Browse files
authored
Merge pull request #2965 from adafruit/round_display
demo code for the gc9a01a round display
2 parents c1c2897 + c803cfe commit 8dab486

File tree

8 files changed

+759
-5
lines changed

8 files changed

+759
-5
lines changed

GC9A01A_Demo_Code/Arduino_GC9A01A/.uno.test.only

Whitespace-only changes.

GC9A01A_Demo_Code/Arduino_GC9A01A/Arduino_GC9A01A.ino

Lines changed: 622 additions & 0 deletions
Large diffs are not rendered by default.
Binary file not shown.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
import time
6+
import board
7+
import displayio
8+
import terminalio
9+
from adafruit_display_text.bitmap_label import Label
10+
import adafruit_imageload
11+
from fourwire import FourWire
12+
from vectorio import Circle
13+
from adafruit_gc9a01a import GC9A01A
14+
15+
spi = board.SPI()
16+
tft_cs = board.D5
17+
tft_dc = board.D6
18+
tft_reset = board.D9
19+
20+
displayio.release_displays()
21+
22+
display_bus = FourWire(spi, command=tft_dc, chip_select=tft_cs, reset=tft_reset)
23+
display = GC9A01A(display_bus, width=240, height=240)
24+
25+
# --- Default Shapes/Text Demo ---
26+
main_group = displayio.Group()
27+
display.root_group = main_group
28+
29+
bg_bitmap = displayio.Bitmap(240, 240, 2)
30+
color_palette = displayio.Palette(2)
31+
color_palette[0] = 0x00FF00 # Bright Green
32+
color_palette[1] = 0xAA0088 # Purple
33+
34+
bg_sprite = displayio.TileGrid(bg_bitmap, pixel_shader=color_palette, x=0, y=0)
35+
main_group.append(bg_sprite)
36+
37+
inner_circle = Circle(pixel_shader=color_palette, x=120, y=120, radius=100, color_index=1)
38+
main_group.append(inner_circle)
39+
40+
text_group = displayio.Group(scale=2, x=50, y=120)
41+
text = "Hello World!"
42+
text_area = Label(terminalio.FONT, text=text, color=0xFFFF00)
43+
text_group.append(text_area) # Subgroup for text scaling
44+
main_group.append(text_group)
45+
46+
# --- ImageLoad Demo ---
47+
blinka_group = displayio.Group()
48+
bitmap, palette = adafruit_imageload.load("/blinka_round.bmp",
49+
bitmap=displayio.Bitmap,
50+
palette=displayio.Palette)
51+
52+
grid = displayio.TileGrid(bitmap, pixel_shader=palette)
53+
blinka_group.append(grid)
54+
55+
while True:
56+
# show shapes/text
57+
display.root_group = main_group
58+
time.sleep(2)
59+
# show blinka bitmap
60+
display.root_group = blinka_group
61+
time.sleep(2)
Loading
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
2+
# SPDX-FileCopyrightText: Adapted from Melissa LeBlanc-Williams's Pi Demo Code
3+
#
4+
# SPDX-License-Identifier: MIT
5+
6+
'''Raspberry Pi Graphics example for the 240x240 Round Display'''
7+
8+
import time
9+
import digitalio
10+
import board
11+
from PIL import Image, ImageDraw, ImageFont
12+
from adafruit_rgb_display import gc9a01a
13+
14+
BORDER = 20
15+
FONTSIZE = 24
16+
17+
cs_pin = digitalio.DigitalInOut(board.CE0)
18+
dc_pin = digitalio.DigitalInOut(board.D25)
19+
reset_pin = digitalio.DigitalInOut(board.D27)
20+
21+
BAUDRATE = 24000000
22+
23+
24+
spi = board.SPI()
25+
26+
disp = gc9a01a.GC9A01A(spi, rotation=0,
27+
width=240, height=240,
28+
x_offset=0, y_offset=0,
29+
cs=cs_pin,
30+
dc=dc_pin,
31+
rst=reset_pin,
32+
baudrate=BAUDRATE,
33+
)
34+
35+
width = disp.width
36+
height = disp.height
37+
38+
# -------TEXT AND SHAPES---------
39+
image1 = Image.new("RGB", (width, height))
40+
draw1 = ImageDraw.Draw(image1)
41+
draw1.ellipse((0, 0, width, height), fill=(0, 255, 0)) # Green background
42+
43+
draw1.ellipse(
44+
(BORDER, BORDER, width - BORDER - 1, height - BORDER - 1), fill=(170, 0, 136)
45+
)
46+
font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", FONTSIZE)
47+
text = "Hello World!"
48+
(font_width, font_height) = font.getsize(text)
49+
draw1.text(
50+
(width // 2 - font_width // 2, height // 2 - font_height // 2),
51+
text,
52+
font=font,
53+
fill=(255, 255, 0),
54+
)
55+
56+
# ------ADABOT JPEG DISPLAY----------
57+
image2 = Image.open("blinka_round.jpg")
58+
image_ratio = image2.width / image2.height
59+
screen_ratio = width / height
60+
scaled_width = width
61+
scaled_height = image2.height * width // image2.width
62+
image2 = image2.resize((scaled_width, scaled_height), Image.BICUBIC)
63+
x = scaled_width // 2 - width // 2
64+
y = scaled_height // 2 - height // 2
65+
image2 = image2.crop((x, y, x + width, y + height))
66+
67+
while True:
68+
disp.image(image1) # show text
69+
time.sleep(2)
70+
disp.image(image2) # show adabot
71+
time.sleep(2)

Trinkey_QT2040_Enviro_Gadget/arduino/trinkey_qt2040_enviro/trinkey_qt2040_enviro.ino

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include <Adafruit_NeoPixel.h>
66
#include <Adafruit_BME280.h>
7-
#include <SensirionI2CScd4x.h>
7+
#include <SensirionI2cScd4x.h>
88
#include <Wire.h>
99

1010
//--| User Config |-----------------------------------------------
@@ -15,7 +15,7 @@
1515
//----------------------------------------------------------------
1616

1717
Adafruit_BME280 bme;
18-
SensirionI2CScd4x scd4x;
18+
SensirionI2cScd4x scd4x;
1919
Adafruit_NeoPixel neopixel(1, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);
2020

2121
uint16_t CO2, data_ready;
@@ -36,9 +36,9 @@ void setup() {
3636
Serial.println("Failed to initialize BME280.");
3737
neoPanic();
3838
}
39-
39+
Wire.begin();
4040
// init SCD40
41-
scd4x.begin(Wire);
41+
scd4x.begin(Wire, SCD41_I2C_ADDR_62);
4242
scd4x.stopPeriodicMeasurement();
4343
if (scd4x.startPeriodicMeasurement()) {
4444
Serial.println("Failed to start SCD40.");

library.deps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
depends=Adafruit ILI9341, Adafruit BusIO, SD, Adafruit NeoPixel, Adafruit VS1053 Library, Adafruit BluefruitLE nRF51, Adafruit seesaw Library, Ethernet, Adafruit IO Arduino, FastLED, Adafruit LiquidCrystal, Adafruit SoftServo, TinyWireM, Adafruit AM radio library, WaveHC, Adafruit LED Backpack Library, MAX31850 OneWire, Adafruit VC0706 Serial Camera Library, RTClib, Adafruit SleepyDog Library, Adafruit Thermal Printer Library, Adafruit Zero I2S Library, Adafruit EPD, Adafruit SSD1351 library, Adafruit FONA Library, Adafruit Motor Shield V2 Library, Adafruit NeoMatrix, Adafruit Soundboard library, Adafruit Circuit Playground, ArduinoJson, Adafruit TCS34725, Adafruit Pixie, Adafruit GPS Library, TinyGPS, WiFi101, Adafruit DotStar, Adafruit Si7021 Library, Adafruit WS2801 Library, Mouse, Keyboard, Time, IRremote, Adafruit LSM9DS0 Library, Adafruit Arcada Library, MIDIUSB, PubSubClient, Adafruit LIS2MDL, Adafruit NeoPXL8, Adafruit MCP23017 Arduino Library, Adafruit MLX90640, LiquidCrystal, Adafruit NeoTrellis M4 Library, RGB matrix Panel, Adafruit MLX90614 Library, Adafruit RGB LCD Shield Library, MAX6675 library, Adafruit MP3, Adafruit Keypad, Adafruit Arcada GifDecoder, Keypad, Neosegment, Encoder, Adafruit TiCoServo, Adafruit Trellis Library, FauxmoESP, Adafruit LSM303 Accel, Adafruit LSM303DLH Mag, Adafruit LSM303DLHC, CapacitiveSensor, Adafruit Zero PDM Library, Adafruit DMA neopixel library, elapsedMillis, DST RTC, Adafruit SHARP Memory Display, Adafruit SPIFlash, BSEC Software Library, WiiChuck, Adafruit DPS310, Adafruit AHTX0, RotaryEncoder, Adafruit MCP9808 Library, LSM303, Adafruit Protomatter, Adafruit IS31FL3741 Library, Sensirion I2C SCD4x, Adafruit TestBed, Bounce2, Adafruit AHRS, Adafruit DRV2605 Library, STM32duino VL53L4CD, PicoDVI - Adafruit Fork, Adafruit MMA8451 Library, Adafruit TSC2007, GFX Library for Arduino, Adafruit PyCamera Library, Adafruit ADG72x, Adafruit BNO055, Adafruit SHT4x Library, Adafruit VCNL4200 Library
1+
depends=Adafruit ILI9341, Adafruit BusIO, SD, Adafruit NeoPixel, Adafruit VS1053 Library, Adafruit BluefruitLE nRF51, Adafruit seesaw Library, Ethernet, Adafruit IO Arduino, FastLED, Adafruit LiquidCrystal, Adafruit SoftServo, TinyWireM, Adafruit AM radio library, WaveHC, Adafruit LED Backpack Library, MAX31850 OneWire, Adafruit VC0706 Serial Camera Library, RTClib, Adafruit SleepyDog Library, Adafruit Thermal Printer Library, Adafruit Zero I2S Library, Adafruit EPD, Adafruit SSD1351 library, Adafruit FONA Library, Adafruit Motor Shield V2 Library, Adafruit NeoMatrix, Adafruit Soundboard library, Adafruit Circuit Playground, ArduinoJson, Adafruit TCS34725, Adafruit Pixie, Adafruit GPS Library, TinyGPS, WiFi101, Adafruit DotStar, Adafruit Si7021 Library, Adafruit WS2801 Library, Mouse, Keyboard, Time, IRremote, Adafruit LSM9DS0 Library, Adafruit Arcada Library, MIDIUSB, PubSubClient, Adafruit LIS2MDL, Adafruit NeoPXL8, Adafruit MCP23017 Arduino Library, Adafruit MLX90640, LiquidCrystal, Adafruit NeoTrellis M4 Library, RGB matrix Panel, Adafruit MLX90614 Library, Adafruit RGB LCD Shield Library, MAX6675 library, Adafruit MP3, Adafruit Keypad, Adafruit Arcada GifDecoder, Keypad, Neosegment, Encoder, Adafruit TiCoServo, Adafruit Trellis Library, FauxmoESP, Adafruit LSM303 Accel, Adafruit LSM303DLH Mag, Adafruit LSM303DLHC, CapacitiveSensor, Adafruit Zero PDM Library, Adafruit DMA neopixel library, elapsedMillis, DST RTC, Adafruit SHARP Memory Display, Adafruit SPIFlash, BSEC Software Library, WiiChuck, Adafruit DPS310, Adafruit AHTX0, RotaryEncoder, Adafruit MCP9808 Library, LSM303, Adafruit Protomatter, Adafruit IS31FL3741 Library, Sensirion I2C SCD4x, Adafruit TestBed, Bounce2, Adafruit AHRS, Adafruit DRV2605 Library, STM32duino VL53L4CD, PicoDVI - Adafruit Fork, Adafruit MMA8451 Library, Adafruit TSC2007, GFX Library for Arduino, Adafruit PyCamera Library, Adafruit ADG72x, Adafruit BNO055, Adafruit SHT4x Library, Adafruit VCNL4200 Library, Adafruit GC9A01A

0 commit comments

Comments
 (0)