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

Displays above 64x32 #5

Open
danjenkins opened this issue Oct 31, 2024 · 4 comments
Open

Displays above 64x32 #5

danjenkins opened this issue Oct 31, 2024 · 4 comments

Comments

@danjenkins
Copy link

Whats stopping this module from supporting larger modules?

I have a 64x128 display that works great on my interstate75w from pimoroni using micropython so there isnt a limit from the hardware...

@mortenbentsen
Copy link

I actually made the necessary modifications to make it work with hub75e panels (added the extra 'E' address line etc.) last summer, but never got around to sending a PR. I'll try to look into it shortly!

@mortenbentsen
Copy link

Found it, but went too deep down a rabbit hole while trying to transfer frames via SPI in various ways. Forgot to commit with only the hub75e changes, but to summarize while I'm still sufficiently caffeinated/medicated:

Wherever you initialize your matrix, add this line directly after addra/b/c/d:
addre: pins.gpio10.into_function().into_pull_type().into_dyn_pin(),
(obviously change the gpio number to suit your case, but keep in mind the pins must be consecutive for the pio SM to work correctly)

And in lib.rs:

  • Add to DisplayPins struct: pub addre: Pin<DynPinId, F, PullNone>,
  • line 285, in the row_sm: .out_pins(pins.addra.id().num, 4) <- change to 5 to include the fifth address pin.

Or just take a look at my fork, examples/hub75e and src/lib.rs

PS: Probably don't just copy the entire lib.rs from my fork, I (or, Copilot to be frank) have more than likely done something stupid in the SPI-rabbit-hole.
Lets just say I'm not entirely comfortable in rust... 😂

@danjenkins
Copy link
Author

Thanks for this! Micropython on the i75w leaves very little memory actually available so I was super curious about using rust and whether it would give me better memory usage so this gives me a chance to go test it out

@mortenbentsen
Copy link

Well, during my SPI ventures, I tried allocating a new buffer of 256x64x3 bytes to hold an entire frame's worth of regular RGB888 pixels, aka not-in-correct-format-for-the-PIOs-pixels, and the poor pico went all angry and panicky on me 😂.

Considering hub75-pio-rs already had allocated two buffers of almost 100k for its internal framebuffers, I'm not really surprised. Maybe I should've transferred the frames in smaller chunks. Or maybe I'm better off if I just bite the bullet and buy either ElectroDragon or adafruit's HAT/Bonnet... 🙃

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

No branches or pull requests

2 participants