A Python 3 addon which provides high-speed access to the Raspberry Pi GPIO interface, supporting regular GPIO as well as i²c, PWM, SPI, and MDIO.
This package is inspired by node-rpio which is a node.js addon.
- Raspberry Pi Models: A, B (revisions 1.0 and 2.0), A+, B+, 2, 3, 3+, 3 A+, 4, Compute Module 3, Zero.
- Python 3.7+
Install the latest from PyPi:
pip install pyrpio
from pyrpio.i2c import I2C from pyrpio.mdio import MDIO from pyrpio.i2c_register_device import I2CRegisterDevice ### I2C Operations ### i2c_bus = i2c.I2C('/dev/i2c-3') i2c_bus.open() i2c_bus.set_address(0x50) i2c_bus.read_write(data=bytes([0x23]), length=1) i2c_dev = I2CRegisterDevice(bus=i2c_bus, address=0x50, register_size=1, data_size=1) # Read register val = i2c_dev.read_register(register=0x23) # Read sequential registers vals = i2c_dev.read_register_sequential(register=0x23, length=4) # Close up shop i2c_bus.close() ### MDIO Operations ### # Create bus using GPIO pins 23 and 24 (bit-bang) mdio_bus = mdio.MDIO(clk_pin=23, data_pin=24, path='/dev/gpiochip0') mdio_bus.open() # Read register 0x10 from device 0x30 (CLAUSE-45) mdio_bus.read_c45_register(0x30, 0x00, 0x10) # Read register set from device 0x30 (CLAUSE-45) mdio_bus.read_c45_registers(0x30, 0x00, [0,1,2,3,4]) # Close up shop mdio_bus.close()
This project is licensed under the MIT License - see the LICENSE.md file for details
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.