Screen 1: Clock
// Screen indicator: (0, 0)
// Temperature: (100, 0)
// Profile badge: (108, 10) inverted
// Time: centered, y=2
// Battery bar: (0, 25) width=70
// Percentage: (74, 24)
Screen 1: Clock (WALL charging)
1
45C
BAL
21:45
WALL
85.3%
// WALL indicator: (0, 24)
// bar_start = 26 when WALL/CHRG showing
Screen 2: Power Profile
2 POWER
BALANCED
1800 MHz
45C
// Header: (0, 0)
// Mode: (0, 10)
// Freq: (0, 18)
// Temp: (0, 26)
// Icon: (116, 10) 10x10px
Screen 3: Network
3 NETWORK
gammarays
10.0.0.71
CONNECTED
// Header: (0, 0)
// SSID: (0, 10) - truncated to 12 chars
// IP: (0, 18)
// Status: (0, 26)
Screen 4: System
4 SYSTEM
RAM:512/3840M
LOAD:0.5 45C
UP: 2d5h
// Header: (0, 0)
// RAM: (0, 10)
// Load: (0, 18)
// Uptime: (0, 26)
Power Mode Overlay (inverted)
// White background (inverted)
// Icon: centered, (56, 2) 16x16
// Text: centered horizontally
Python Code Reference (luma.oled)
# Device setup
device = ssd1306(serial, width=128, height=32, rotate=2)
# Font sizes
font_large = ImageFont.truetype(FONT_PATH, 14) # Clock time
font_small = ImageFont.truetype(FONT_PATH, 8) # Everything else
# Drawing
image = Image.new('1', (128, 32), 0) # Black background
draw = ImageDraw.Draw(image)
draw.text((x, y), "text", font=font_small, fill=1) # White text
# Inverted badge
draw.rectangle([(x-1, y-1), (x+w+1, y+h+1)], fill=1) # White box
draw.text((x, y), "BAL", font=font_small, fill=0) # Black text
# Battery bar
draw.rectangle([(x, y), (x+width, y+6)], outline=1) # Outline
draw.rectangle([(x+1, y+1), (x+fill, y+5)], fill=1) # Fill
device.display(image)