dept-of-scrapyard-robotics / ssd1306
Drive SSD1306 monochrome OLED displays over I2C/SPI with PHP
Package info
github.com/DeptOfScrapyardRobotics/SSD1306
pkg:composer/dept-of-scrapyard-robotics/ssd1306
Requires
- php: ^8.3
- fabricate/circuits: ^0.6.0
- fabricate/contracts: ^0.6.0
- fabricate/displays: ^0.6.0
- fabricate/framebuffers: ^0.6.0
- gpio/contracts: ^0.6.0
- gpio/digital: ^0.6.0
- gpio/i2c: ^0.6.0
- gpio/spi: ^0.6.0
Suggests
- ext-ftdi: ^0.5.0
- ext-posi: ^0.5.0
- microscrap/mpsse: ^0.5.0
- microscrap/posix: ^0.5.0
This package is auto-updated.
Last update: 2026-08-11 22:22:25 UTC
README
I2C / SPI driver for SSD1306 monochrome OLEDs. Extends GeneralPurposeIO\Circuits\DisplayPanel.
Register
Provider registers catalog slug ssd1306 and wires ssd1306:make-profile into circuit:make-profile.
Profiles
workshop vendor:publish --tag=gpio-circuits-config workshop circuit:make-profile # picks any installed IC; SSD1306 delegates here workshop ssd1306:make-profile # SSD1306 only
The command asks I2C (driver / device / slave) or SPI+DigitalIO (chip_select, dc / rst pins) from #[Pinout], and always sets boot_now => true.
Circuit::profile('oled_front');
Smoke sketch
Requires at least one SSD1306 profile in config/circuits.php:
php workshop runner ssd1306-smoke php workshop runner ssd1306-smoke --profile=oled_front
Provisions only via Circuit::profile() — no tubes/window driving. Toggles invert until you Ctrl-C. On USB SPI, DC/RST come from the same MPSSE bus when canServeDigitalPins() is true.