MojoScale Studio Docs
API Reference

onewire

OneWire native Berry module.

Studio Docs Buses & Protocols

import onewire

The onewire module drives a generic Dallas/Maxim OneWire bus from firmware. It handles bus reset, ROM discovery, device selection, byte transfers, and CRC-8. Device-specific behavior, such as DS18B20 temperature conversion, belongs in a separate sensor module layered on top of this bus API.

Quick example

import onewire

onewire.begin(5)
devices = onewire.search()

for rom in devices:
    print(rom)

if len(devices) > 0:
    onewire.reset()
    onewire.select(devices[0])
    onewire.write_byte(0x44)

importonewire

OneWire native Berry module.

The onewire module drives a generic Dallas/Maxim OneWire bus from firmware. It handles bus reset, ROM discovery, device selection, byte transfers, and CRC-8. Device-specific behavior, such as DS18B20 temperature conversion, belongs in a separate sensor module layered on top of this bus API.

API 10 available

onewire.begin(pin: int) -> None

Attach OneWire to a GPIO pin.

Parameters
Name Type Pass as Required Description
pin int positional or keyword Yes GPIO number used as the OneWire data pin.
Returns

None None.

onewire.reset() -> bool

Reset the OneWire bus and detect device presence.

Returns

bool True when at least one device presence pulse is detected.

onewire.select(rom: str) -> None

Select one specific OneWire device by ROM ID.

Call this after ``reset()`` and before a device-specific command. The ROM value can be a string returned by ``search()``, 8 bytes, or 8 integer byte values.

Parameters
Name Type Pass as Required Description
rom str positional or keyword Yes ROM ID to select.
Returns

None None.

onewire.skip() -> None

Send the Skip ROM command.

Use this after ``reset()`` when there is only one device on the bus, or when broadcasting a command supported by all connected devices.

Returns

None None.

onewire.write_byte(value: int) -> None

Write one byte to the OneWire bus.

Parameters
Name Type Pass as Required Description
value int positional or keyword Yes Byte value from 0 to 255.
Returns

None None.

onewire.read_byte() -> int

Read one byte from the OneWire bus.

Returns

int Integer byte value from 0 to 255.

onewire.write_bytes(data: list) -> None

Write multiple bytes to the OneWire bus.

Parameters
Name Type Pass as Required Description
data list positional or keyword Yes Bytes, string, or list of integer byte values.
Returns

None None.

onewire.read_bytes(count: int) -> bytes

Read multiple bytes from the OneWire bus.

Parameters
Name Type Pass as Required Description
count int positional or keyword Yes Number of bytes to read.
Returns

bytes Bytes-like native value.

onewire.crc8(data: list) -> int

Calculate the Dallas/Maxim OneWire CRC-8.

Use this to validate ROM IDs and device scratchpad responses.

Parameters
Name Type Pass as Required Description
data list positional or keyword Yes Bytes, ROM hex string, string, or list of integer byte values.
Returns

int Integer CRC-8 value from 0 to 255.