Kaluma library for SSD1351 (16-bit Color OLED Display)
You can get OLED displays from belows:
Here is a wiring example for SPI0.
| Raspberry Pi Pico | SSD1351 (OLED) |
|---|---|
| 3V3 | 3V3 |
| GND | GND |
| GP19 (SPI0 TX) | DATA (MOSI) |
| GP18 (SPI0 CLK) | CLK |
| GP20 | D/C |
| GP21 | RST |
| GP17 | CS |
You can initialize SSD1351 driver using SPI interface as below:
const {SSD1351} = require('ssd1351');
const ssd1351 = new SSD1351();
ssd1351.setup(board.spi(0), {
width: 128,
height: 128,
dc: 20,
rst: 21,
cs: 17
});
const gc = ssd1351.getContext();
// gc.drawRect(0, 0, width, height);You can use BufferedGraphicsContext instead of general callback-based graphics context as below:
// buffered graphic context
const gc = ssd1351.getContext('buffer');
gc.drawRect(0, 0, width, height);
gc.display(); // must call if buffered graphic context
...Note that
BufferedGraphicsContextallocates a lot of memory (32KB for 128x128 resolution).
A class for SSD1351 driver communicating with SPI interface.
Create an instance of SSD1351 driver for SPI interface.
spi<SPI>An instance ofSPIto communicate.options<object>Options for initialization.width<number>Width of display in pixels. Default:128.height<number>Height of display in pixels. Default:128.dc<number>Pin number for DC. Default:-1.rst<number>Pin number for RST (Reset). Default:-1.cs<number>Pin number of CS (Chip select). Default:-1.extVcc<boolean>Indicate whether to use external VCC. Default:false.rotation<number>Rotation of screen. One of0(0 degree),1(90 degree in clockwise),2(180 degree in clockwise), and3(270 degree in clockwise). Default:0.
Setup SSD1351 driver for a given SPI bus and options.
type: Optional. Type of graphic context. If"buffer"is given,BufferedGraphicContextis returned.- Returns:
<GraphicContext>An instance of graphic context for SSD1351.
Get a graphic context.
Note that
BufferedGraphicContextis much faster, but it consumes memory a lot.
Note that
gc.getPixel(x, y)function is supported only ifBufferedGraphicsContext.
examples/ex_128x128.js(128x128 resolution)examples/ex_128x96.js(128x96 resolution)examples/ex_buffer_128x128.js(128x128 resolution with buffered graphics context)examples/ex_buffer_128x96.js(128x96 resolution with buffered graphics context)
kaluma flash ./examples/ex_128x128.js --bundle --port <port>
