Skip to content

Add support for Pimoroni Inky Frame 7.3in #8896

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

Merged
merged 2 commits into from
Feb 9, 2024

Conversation

kattni
Copy link

@kattni kattni commented Feb 9, 2024

Original code from #7996 by @dearmash. My rebase skills are not up to the task of updating from the original PR, so I am creating a new one.

Tested successfully on Inky Frame 7.3".

Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, great! If you can add the board to circuitpython-org, that would be great too.

@dhalbert dhalbert merged commit 8af780c into adafruit:main Feb 9, 2024
@dearmash
Copy link

dearmash commented Feb 9, 2024

Thank you for taking the torch as it were, I'm glad to have helped with a start.

Things that I got "stuck" on were:

  • Trying to get the "nonstandard" eink busy pin to work (required polling a shift register IIRC).
  • Trying to figure out PSRAM. Using this out of the box in CPY left almost no memory to do anything. Other libraries manually mapped the display to psram, and I wanted to take the time to come up with an "elegant" solution. perfect is always the enemy of good.

@kattni
Copy link
Author

kattni commented Feb 11, 2024

@dearmash You did great! My original plan was to clean up your PR. However, there was a huge refactor of displayio requiring some significant changes to board.c and my rebase skills are nowhere near up to the task of bringing your PR inline with the latest situation. Thank you for putting together something to start with. I picked up one of these boards, not realising until after purchase that it hadn't been added to CircuitPython. I would have been able to put together a basic set of board files for it with some struggle, but I definitely wouldn't have known what to do about the button situation. I greatly appreciate the user-readable names for the button pins. Such a great addition!

My programming knowledge lies with Python, so I was way out of my depth with trying to make any fundamental changes to your code. That said, I looked into implementing the PSRAM, thinking it would provide more memory, as I ran into the same situation you did with not having much of anything left out of the box. I was informed that it can't work like PSRAM on, say, an ESP32-S3 because it's not built into the board. As far as I understand it (which is fuzzy at best), the way that Pimoroni and MicroPython use the PSRAM for the display doesn't work the same as displayio anyway. I believe they sort of use it as a frambuffer, and from what I was told, displayio doesn't need it. I could be relaying this information completely wrong here, as my grasp on it was tenuous at best. But, I suppose what I'm getting at is, you were embarking on a complicated task, and I can completely understand not being able to sort out an elegant solution, especially one that you found satisfactory.

I think you can still do something with the busy pin in code.py. I ran into some weirdness with using your code with keypad because every time the busy pin triggered, it would show a "0 pressed" event. It occurs to me as I'm writing this that maybe one could use that to their advantage and keep track of it that way? Seems like a super hacky workaround, but I'm definitely guilty of worse. I haven't tried doing anything with the pin directly, but there may be something there as well, since you ensured it was included in board..

Thanks again!

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

Successfully merging this pull request may close these issues.

3 participants