Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use inky via pi zero GPIO expander mode #37

Open
gigawatts opened this issue Aug 3, 2019 · 2 comments
Open

Use inky via pi zero GPIO expander mode #37

gigawatts opened this issue Aug 3, 2019 · 2 comments
Labels

Comments

@gigawatts
Copy link

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?

@Gadgetoid
Copy link
Member

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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants