inky icon indicating copy to clipboard operation
inky copied to clipboard

Use inky via pi zero GPIO expander mode

Open gigawatts opened this issue 5 years ago • 2 comments

Feature Request

I'm interested in using this library with the GPIO expander mode from a PC (https://www.raspberrypi.org/magpi/pi-zero-gpio-expander/). That way I could plug in the pi 0 with an inky phat display, update the inky display, and unplug. No OS required.

How hard would this be to port and use in that fashion?

gigawatts avatar Aug 03 '19 22:08 gigawatts

In my experience it's best to port the underlying transport libraries by "shimming" some custom code in their place. I'm surprised there's not a general purpose solution to this problem already out there.

You would need to create fake versions of spidev and RPi.GPIO that you install locally on your PC (or just have in the same folder, or virtual env, as your code). These fake versions would implement all the method calls that Inky uses (not many) and redirect them to equivalent GPIO Zero calls:

open(bus, cs)
max_speed_hz (property)
xfer3 (or xfer)

And do the same for RPi.GPIO calls:

setmode
setwarnings
setup
output
input

I can't say how fast this might be, but it should work.

Gadgetoid avatar Aug 20 '19 11:08 Gadgetoid

Some of the changes proposed to help support Inky pHAT simulation should also help you here.

These include the ability to specify an SPI bus, I2C bus and GPIO object to replace spidev, smbus2 and RPi.GPIO. ie:

inky = InkyPHAT(spi_bus=my_spi_bus, i2c_bus=my_i2c_bus, gpio=my_gpio)

You will, however, still need to write some code to translate the method calls.

Gadgetoid avatar Aug 27 '19 15:08 Gadgetoid