Skip to content

Add SSD1333 (176×176) OLED display support + finer low-end brightness control#452

Merged
brickbots merged 2 commits into
mainfrom
nhd_ssd1333
Jun 3, 2026
Merged

Add SSD1333 (176×176) OLED display support + finer low-end brightness control#452
brickbots merged 2 commits into
mainfrom
nhd_ssd1333

Conversation

@brickbots
Copy link
Copy Markdown
Owner

@brickbots brickbots commented Jun 3, 2026

Summary

Adds support for the SSD1333 176×176 RGB OLED display controller as a new display option, and refines low-end brightness control for both the SSD1333 and the existing SSD1351.

What's in here

New PiFinder/ssd1333_device.py — a luma.oled driver for the Solomon Systech SSD1333 (176×176, 16-bit 5-6-5 color), subclassing luma.oled.device.color_device. Notable differences from the SSD1351 are documented inline (176×176 resolution, MUX ratio 175, no GPIO/Function-Select/2nd-unlock commands, built-in linear LUT). Exposes contrast() (per-channel, 0xC1) and master_brightness() (global current control, 0xC7).

PiFinder/displays.py

  • New DisplaySSD1333 display class (SPI, 176×176, BGR), wired into get_display() under the "ssd1333" hardware key.
  • Reworked set_brightness() for both SSD1351 and SSD1333 to combine master brightness (0xC7) with per-channel contrast (0xC1) for a wider dimming range:
    • Levels 0–15: master and contrast scale together → dimmer than contrast alone can reach (better for night vision).
    • Levels 16–255: master at full, contrast varies linearly.

The change is additive — existing displays (SSD1351, ST7789) are unaffected aside from the SSD1351 brightness curve improvement.

@brickbots brickbots merged commit a476f75 into main Jun 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant