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
BufferedGraphicsContext
allocates 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 ofSPI
to 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,BufferedGraphicContext
is returned.- Returns:
<GraphicContext>
An instance of graphic context for SSD1351.
Get a graphic context.
Note that
BufferedGraphicContext
is 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>