-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Rasberry Pi 5 support? #1603
Comments
I have not have adapted the library yet to work with Pi5. Since there were always additions needed with every new Pi, as each GPIO is different, it is no surprise that the new one is not working yet. Good news: I got a Pi5 so I can work on that. |
Ah makes sense! Thank you for the quick response. I think I have an older Pi somewhere I will dig up in the meantime. Please let me know if you need any help testing. |
Update: All is working well with Pi4B for now |
@hzeller I am also interested in Pi5 support. Is this in the works still? |
Hi @hzeller. Is there a chance to launch the library on PI5 this month? :) |
I'll try. I am doing this in my spare time, and end-of-year is of course always busy. |
Any updates on the pi5 support? |
I am trying to adapt the code to get the Pi 5 to work but am struggling, maybe someone smarter can figure it out. It's possible the Pi 5 drastically changed how its offsets worked, but I can't seem to find a datasheet on the BCM2712 and even if I did, I would still be too confused to know what to do. My code is here: |
I will try tomorrow just as I do with a RPi 4 |
i found this little bit of info browsing cant rem what site i saved it in a note so i could look at it later... The Pi 5 has a huge peripheral area starting at 0x40000000. This is the physical address which is translated to 0x1f00000000 in the 40-bit address space. The /dev/mem file can be used in the usual way but you have to be running with root privileges. The /dev/gpiomem0 file only maps the GPIO area starting at 0x400d0000, or 0x1f000d0000, but it doesn’t need root privileges. In the examples that follow, the mem file is used with root privileges because it works with peripherals other than the GPIO lines. To access the GPIO area of memory you can map the entire peripherals area into user space using: int memfd = open("/dev/mem", O_RDWR | O_SYNC); This maps the entire 64MByte area – if you only want to use the GPIO lines then you can make this smaller, but there is no problem accommodating it in the 4,096MByte, 32-bit address space. Once you have the address of the peripheral area you can access the registers that control them using offsets from the hardware-specified base address. For example, the GPIO control registers have an address of 0x400d0000, which gives an offset of 0xd0000. As the pointers are to uint32_t we have to remember to divide by 4 so that the correct offset is added. That is, the GPIO registers are located at:
|
Here's the link: |
|
IsaacMAllen
|
Ok, I just got a pi5 running bookworm, and trying to run some apps on it. In this case, the adafruit-circuitpython-rgb-display stuff And I get this pi@pi5:~/ciq-common $ python3 tfteco.py It runs fine on all earlier pi devices. Here's what I have on the pi 5 as far as adadfruit packages: Package Version Adafruit-Blinka 8.32.0 |
Do you have any progress with the Raspberry Pi 5 support? |
No luck yet and I'm too busy with normal work this time of year to work on this. |
Same as all others - unable to run on Pi 5:
I am running as root. |
Bumping this. Currently working on a project utilizing chained Adafruit 64x32 matrices, but so far cannot get a display on one using Pi 5. It could be my current power situation, but I feel like the compatibility thing could also be a culprit. It's weird (and kind of misleading) that Adafruit's description and docs on their Bonnet HAT say they support "any Raspberry Pi with a 40-pin GPIO header" and explicitly list Pi 5 in the description, yet they list the use of this library which does not support Pi 5 :/ (supporting this: their installer wrote the dtparam=audio=off line for the Quality option in the old config.txt location prior to Bookworm OS, which Pi 5 requires) I did get a Pi 3 as a backup and haven't tested the bonnet on it yet, but it can barely run what I need it to run, so preferably would use the Pi 5 once possible unless I can figure out how to optimize my software even more. Pretty new to Pi, so I'm unable to really troubleshoot except through a lot of Google searching. Hopefully you can manage to find time to figure out support for it! UPDATE: Either I didn't notice it before or they just updated it, but the docs now note above the command to start the Adafruit installer that this library does not work for Pi 5 and Pi 400. However the store page still says that Pi 5 is supported, which is false unless they made their own internal library for testing and never released it. In the hope someone figures it out tho, at least my project will likely work with Pi 3 |
Hello! Has anyone had any luck with the Pi 5 support? |
I also ran into the above output @0xe1f mentioned above with a new rpi5. I dug out an older rpi3 I have, slapped on the hat, swapped the SD cards and my 64x32 matrix worked instantly with the demo script. It's unfortunate that as @MikeDaBird noted the Adafruit website explicitly lists support with rpi5, but we're not quite there yet. |
oops sorry about that, it was a copy-paste typo (since almost all of our HATs do work with the Pi 5) - if you cant use it email support@adafruit for a refund :) |
Heya, thanks for acknowledging and fixing the description. I did get a Pi 3 for backup as mentioned above so I can still work on my project. Did get both my Pi 3 and 5 from the Adafruit website in the same order, and will keep both in the mindset that Pi 5 support will eventually be complete (with that big graphics improvement it would be really nice to have support for it). Besides, I can experiment with other things using my spare Pi ^^ |
upgrading this program to work also with raspberry pi 5 would be an amazing option for it! hopefully @hzeller would have some time to work on it . Will keep an eye on this thread |
@hzeller I just got a bunch of Pi5's and have my program ready to load ! Do we have an ETA ? |
Can I add to the above, very keen to get Pi5 compatibility enabled. |
I've reserved a bit of time this weekend to work on it. |
@hzeller |
I have not had any luck finding P2 128x64 panels that use LED driver chips that will work with the Matrix Portal S3. I'm not saying it's impossible, but I have only had success with lower-density panels that use ICN2037, FM6124, or RUL2038S driver chips. It seems that to control panels with more complex driver chips, I need a Raspberry Pi. I was about to take the plunge and order a Pi 4 B but the Pi 5 is only $5 more. If there is one thing I have learned from buying LED panels on Ali Express, it's patience! Fingers crossed that support for the Pi 5 is coming soon. |
Update on the Pi 5 explorationI did get the memory mapping and parallel output on the GPIO pins to work in my local experiments, so the first hurdle is taken. However, it is slower than other recent Raspberry Pi models. The GPIO handling is very different on the Pi5 compared to the earlier models. Previously, it was handled directly from the SoC, now the Pi5 handles that with a separate chip that is connected via the PCIe system bus. Due to that, it can't reach the same performance. There are still are few more hardware things to figure out (in particular hardware timers and routing them to GPIO) before rpi-rgb-led-matrix can be updated. Unfortunately, the documentation by Raspberry is in parts very incomplete, so I have to fish out relevant information from sources on the raspberrypi github as well as the Linux kernel. This might take a while. What I can say: output will probably not reach higher frame-rates (and likely be lower) than with a Pi 4 or Pi 3, so if you want to use this library, I don't currently recommend hoping for the Pi5 to be faster once support has been added. Get a Pi4 for now. |
Thanks for taking the time to look into it. I ultimately decided to use multiple Pi4's, and am able to drive 320x128 just on a single Pi4.
|
@hzeller Newbie Question - I did not see anything in the README about RAM requirements. The Pi 4B is available with up to 8-Gig of RAM. Will more RAM make any difference when using a Pi 4B and this library to drive LED panels? |
send a PR |
Would this be relevant to the implementation? https://github.com/WiringPi/WiringPi Pi5 full PWM support |
Hello, are there any updates? Info on what is possible now? |
May be that, it's a GOOD THING, I imagine that GPIO "section" now can refresh data to panel(s) meanwhile the main "section" of the SBC can manage other matters, or am I wrong? Thanks for your research |
PI5 support for HUB75 is available here with GPU rendering (not for GPIO, just frame buffer rendering using fragment shaders with some support for shadertoy.com) refresh rate is 9600Hz / number chained panels. So 4 chained panels has a refresh of 2400Hz. The library also supports up to 64 bits of PWM data (64 color levels for each RGB) or 262144 colors and has no limit on max frame rate refresh. converting 24bpp RGB frame data to PWM bit masks is about 600 microseconds per 64x64 panel and uses the PI's 128 bit SIMD instructions, but this could be offloaded to multiple threads allowing frame rates well over 600fps, but in practice, 120fps looks very smooth on my displays. Flicker-free video recording from your phone as well. Clock rate is fixed at 20Mhz and consumes 100% of 1 CPU core. https://github.com/bitslip6/rpi-gpu-hub75-matrix |
Also struggled with this a lot, before I found this bug. Support would be highly appreciated! |
@ydixken |
@bitslip6 Thanks, just tried it out, can't get it to build on a fresh OS. |
... Any updates on this? |
I also ran into the same issue, does the library now work with @hzeller updating the library? It's unclear to me whether I should be able to solve this issue, or if it is due to incompatability?
|
@Robyn-bot Henner has not had the time/resources to work on this. |
hello, I have been a long time user of this software, and today after this blog post https://blog.adafruit.com/2024/12/26/driving-hub75-rgb-matrices-on-raspi-5-with-pio/ |
@marcobrianza The adafruit HUB75 support has always been super basic. It's cool that someone hacked something on Pi5, but that work doesn't translate in any way to this lib. This lib would have to be seriously adapted to the new hardware on Pi5 and last I talked to @hzeller just a month ago, he had no plans to work on it at this time, since he has no personal need. |
|
@marcobrianza fair enough. |
This is incorrect. The reason that the delays need to be added is not for the hub75 panels but because the horribly rounded edges on the rpi 4 "square" wave form. This is a hardware limitation on thr pi4 not on thr panels themselves whixh you can see are driven beautifully by better hardware. There is pi5 support on another library in this thread with 10x performance (20Mhz, vs 2Mhz on rp4). Piolib could theorirtically push this to 70Mhz. |
Is there any Update on the Raspberry Pi5 support? |
we have a separate project to add HUB75 via PIO to Pi 5 https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Piomatter |
Thanks @ladyada , much appreciated. |
yes PIO is a high speed peripheral, it does something like 150 FPS and does not require a core since the IO toggles is handled by the external chip |
This is great news, thank you @ladyada . As for IO pins available, how many channels can be controlled by those new PIO pins, and how many are currently supported by the driver you mentioned? (looks like one, but just checking). |
pretty sure you could just use another PIO state machine for another panel.
we havent tried or inplemented it, if someone wants to look into it.
…On Thu, Jan 30, 2025 at 1:32 PM Marc MERLIN ***@***.***> wrote:
This is great news, thank you @ladyada <https://github.com/ladyada> . As
for IO pins available, how many channels can be controlled by those new PIO
pins, and how many are currently supported by the driver you mentioned?
(looks like one, but just checking).
Reason I ask is that if it's just one channel, I'm going to guess that for
a big display, it may still be faster with an rPi4 and 3 channels than an
rPi5 and one channel (which would divide bandwidth by 3 and add additional
issues with clock mis-sync on long bus wiring)
—
Reply to this email directly, view it on GitHub
<#1603 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJINUIMZAFVUKMWUU42DZT2NJV3ZAVCNFSM6AAAAAA7O2R4LSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMRVGI3TENZSHA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I recently got a Pi5 and was hoping to set up these panels I have, but don't seem to be getting any LEDs to light up whatsoever.
I'm trying with a single 64x64 1/32 panel with a ICN2037BP chipset, connected directly via jumper cables. (This Panel).
led-slowdown-gipio=4
I've powered the panel ok with a Pico so the Panel is fine (but had slow perf so now im here)
From what I’ve read in the issues here, it should be working pretty smoothly. So I am starting to think its something with the Pi5? Happy to give more info here, just not sure what would be helpful
The text was updated successfully, but these errors were encountered: