MojoScale Studio Docs
API Reference

spi

SPI native Berry module.

Studio Docs Buses & Protocols

import spi

The spi module exposes a firmware SPI bus plus per-device handles. Use it for fast sensors, displays, radio modules, flash parts, and other SPI peripherals.

Quick example

import spi
spi.begin(23, 19, 18, 1000000, 0)
dev = spi.device(5)
data = spi.read_reg(dev, 0x00, 2)

importspi

SPI native Berry module.

The spi module exposes a firmware SPI bus plus per-device handles. Use it for fast sensors, displays, radio modules, flash parts, and other SPI peripherals.

API 9 available

spi.begin(mosi: int, miso: int, sclk: int, mode: int, frequency: int = None) -> any

Initialize the SPI bus.

Parameters
Name Type Pass as Required Description
mosi int positional or keyword Yes GPIO used for MOSI.
miso int positional or keyword Yes GPIO used for MISO.
sclk int positional or keyword Yes GPIO used for SCLK.
mode int positional or keyword Yes SPI mode number.
frequency int positional or keyword No Default bus frequency in hertz.
Returns

any Native initialization result.

spi.device(cs: int, frequency: int = None, mode: int = None) -> float

Create or select a SPI device slot.

Parameters
Name Type Pass as Required Description
cs int positional or keyword Yes GPIO used for chip select.
frequency int positional or keyword No Optional device frequency override.
mode int positional or keyword No Optional device SPI mode override.
Returns

float Native device handle or slot number.

spi.transfer(device: any, data: list, length: any = None) -> bytes

Transfer bytes to and from a SPI device.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
data list positional or keyword Yes Bytes, string, or list-like payload to send.
length any positional or keyword No Optional receive length.
Returns

bytes Bytes-like native response.

spi.write(device: any, data: list) -> any

Write bytes to a SPI device.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
data list positional or keyword Yes Bytes, string, or list-like payload.
Returns

any Native write result.

spi.read(device: any, length: any) -> bytes

Read bytes from a SPI device.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
length any positional or keyword Yes Number of bytes to read.
Returns

bytes Bytes-like native value.

spi.write_read(device: any, data: list, read_length: any) -> bytes

Write a payload and then read a response from a SPI device.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
data list positional or keyword Yes Bytes, string, or list-like payload to write.
read_length any positional or keyword Yes Number of bytes to read.
Returns

bytes Bytes-like native response.

spi.read_reg(device: any, register: int, length: any) -> bytes

Read bytes from a SPI register.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
register int positional or keyword Yes Register address.
length any positional or keyword Yes Number of bytes to read.
Returns

bytes Bytes-like native value.

spi.write_reg(device: any, register: int, data: list) -> any

Write bytes to a SPI register.

Parameters
Name Type Pass as Required Description
device any positional or keyword Yes Native device handle or slot.
register int positional or keyword Yes Register address.
data list positional or keyword Yes Bytes, string, integer, or list-like payload.
Returns

any Native write result.

spi.deinit() -> any

Deinitialize the SPI bus.

Returns

any Native deinitialization result.