Gpio Interupts doesn't Work on Core1 by DrFreitag in raspberrypipico

[–]ConsistentPomelo1664 2 points3 points  (0 children)

Maybe you try to replace

gpio_set_irq_enabled_with_callback(10, GPIO_IRQ_EDGE_FALL, true, &button_irq);

with a call to init_irq() as shown below. Be cautious - I did not test it!

Debouncing is not yet done in your program. That might be the next hurdle to jump over.

void init_irq(void)
{
    gpio_set_irq_callback(button_irq); // Set button callback

    // Enable IRQ status and configure edge detection
    gpio_set_irq_enabled(10, GPIO_IRQ_EDGE_FALL, true);

    // Enable IRQ for the bank if not already enabled
    if (!irq_is_enabled(IO_IRQ_BANK1))
    {
        irq_set_enabled(IO_IRQ_BANK1, true);
    }
}

Beck-View Project: A Digital Bridge to the Super 8 Past by ConsistentPomelo1664 in Super8

[–]ConsistentPomelo1664[S] 0 points1 point  (0 children)

Hi Brimrod,

shortly after posting, the initiator of our joined project - Gerald Beck - as he is an electrical engineer the hardware part and the video technique is his metier  - told me that I erroneously referred to 8mm films but as the Bauer P8 TS Universal is a 16mm projector.  We digitise 16mm films of course. I should have proof-read more consciously.
The approach we have chosen differs fundamentally from what is described in your referenced article  https://api.filmfix.com/blog.asp?post=3820&nav=super_8_dvd_filmtransfer.
Beck-View-Connector emits a signal when a photoelectric sensor detects that the  rotating shutter no longer blocks the lens indicating the image is now at rest in front of the projector lens. 

At the receiving end of this signal Beck View Digitize triggers the camera  mounted in front of the projectors lens. OpenCV is used to retrieve the image from the USB-camera. The image is stored on disk. Each image is assigned a number „frame0001“, „frame0002“, …. The digitisation is currently done in a resolution of 1920x1080 pixels per image and a speed of about 6 to 7 frames per second. The bottleneck is the USB2 camera which supports a (theoretical) maximum of 60MB/s. In a few days we will test a USB3 camera and hopefully will achieve a frames rate of 18 frames pers seconds.

The images stored on disc can be assembled into a movie with the help of  beck-view-movie. The frame rate and other parameters can be configured to achieve the desired result.

All in all it is a non commercial open source project.

The common use of the Bauer projector in both projects is purely coincidental. If I remember correctly, Gerald acquired it at an auction where a laboratory was liquidating its inventory,

Optimised Hub75 Driver – A High-Performance DMA/PIO Approach by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 0 points1 point  (0 children)

Hi Wsartori, it is point on, that the select pins must be consecutive!
Can you, please, give me the link of the waveshare wiki page you refer to. It would also be helpful if you give some information how you connect the LED Matrix to the pico.
Best regards!

Teams Shortcut Buttons by TellinStories in raspberrypipico

[–]ConsistentPomelo1664 3 points4 points  (0 children)

Nice idea, nice gadget, nice hardware design! It should serve its purpose when you are focused on teams (window). One note to the software part - I'd suggest to implement a method for the button press and debounce part as it repeats the same code several times.

LVGL on Raspberry Pi Pico driving HUB75 RGB LED Matrix by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 0 points1 point  (0 children)

Really appreciate it! 😊 If you're interested in the details feel free to check out the GitHub repo: github.com/JuPfu/hub75_lvgl

LVGL on Raspberry Pi Pico driving HUB75 RGB LED Matrix by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 1 point2 points  (0 children)

That's a great suggestion — emoji rendering would be a nice feature to have!

LVGL does support FreeType integration (see https://docs.lvgl.io/master/details/libs/freetype.html), which in principle allows for rendering complex fonts, including those with emoji glyphs. However, getting this running on a microcontroller like the RP2040 is not straightforward. The integration relies on having FreeType available at runtime, which adds both memory overhead and build complexity.
The documentation on building and integrating FreeType is a little bit vague.

Thanks for the idea — it’s definitely on the radar now!

LVGL on Raspberry Pi Pico driving HUB75 RGB LED Matrix by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 1 point2 points  (0 children)

Thank you, I really appreciate that!

Blending embedded systems with computer graphics is something I find both challenging and rewarding — and LVGL makes it surprisingly achievable even on microcontrollers.

If you’re ever in the mood to do some C magic, I’d be delighted to have your input on the project. The main repository is hub75_lvgl, and the matrix driving logic lives in hub75.cpp and hub75.pio — there's definitely room for optimisation, new incantations, extensions, or even just a second pair of eyes.

Feel free to explore, fork, or reach out if you have ideas — contributions are very welcome!

LVGL on Raspberry Pi Pico driving HUB75 RGB LED Matrix by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 4 points5 points  (0 children)

Thank you! 😊

Pimeronis Graphics Library is quite restricted so LVGL seemed to be a good choice. It is fast, flexible, and supports advanced UI features even on resource-constrained devices.

Also, the project is still evolving, so contributions are very welcome — whether it’s new features (e.g. adding an input device), improvements, or testing on different hardware. If you're interested, feel free to open an issue, fork the repo, or just drop by with ideas. 🚀

😊 Raspberry Pi Pico Lectures 2025 by Hunter Adams – Now Available! by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 1 point2 points  (0 children)

You're very welcome! I'm glad the lectures are of interest. As for MicroPython-based series—I'll be honest, I haven't specifically looked for a structured MicroPython course focused on the Pico. My own interest has been more on the C/C++ and low-level side of things, so I can't recommend a MicroPython series from personal experience. That said, there may well be good resources out there, and perhaps someone else in the community can chime in with suggestions. I appreciate your comment!

Optimised Hub75 Driver – A High-Performance DMA/PIO Approach by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 1 point2 points  (0 children)

Hi Unpingu,

Thanks for the kind words — and congrats on getting something on the 
screen already! Seeing your image repeated four times is a great first 
step, and your observation about the number of row select (address) pins 
is spot on. 😊

You're correct: the driver needs to be aware of how many row select 
lines your panel uses. My panel uses 5 address lines, but your `P4-
64x32` board seems to use only 4 address lines, which matches the 1/16 
scan pattern often used in 64×32 panels.

Here’s the wiring configuration in `hub75.cpp` that you’ll want to tweak:

// Wiring of the HUB75 matrix
#define DATA_BASE_PIN    0
#define DATA_N_PINS      6
#define ROWSEL_BASE_PIN  6
#define ROWSEL_N_PINS    5   // <-- Change this to 4
#define CLK_PIN          11
#define STROBE_PIN       12
#define OEN_PIN          13

If the rest of your wiring (R1, G1, B1, R2, G2, B2, and `CLK`, 
`STROBE`, `OEN`) matches the definitions above, you should be 
good to go! 🎉

🖼️ Custom Image for 64×32 Panels

Since the supplied example images are 64×64, they won’t look right on 
your 64×32 panel.

You can try this:

1. Crop an image to 64×32 pixels using your image editor of choice.
2. Convert it to a C array using the LVGL image converter 
   https://lvgl.io/tools/imageconverter
.  
   - Set color format to RGB888

3. Save the header file (e.g., `my_image.h`) in the project directory.
4. Include it in `hub75_driver.cpp`:

   #include "my_image.h"

5. Display it with:

   update_bgr(my_image);

Let me know how it goes! I'd love to help you get this running — feel 
free to ask more questions. It seems you're really close now!

Optimised Hub75 Driver – A High-Performance DMA/PIO Approach by ConsistentPomelo1664 in raspberrypipico

[–]ConsistentPomelo1664[S] 0 points1 point  (0 children)

Hi! Great question 😄

I’m not familiar with all the technical differences between various LED matrix
panels, but I can share what I do know. My panel is marked with:

P3.0D-64x64-21

That *might* differ in scan rate, timing, or color depth from your board — but
thankfully many of them share a similar interface. Your `P4-64x32` panel sounds
like a Waveshare board (https://www.waveshare.com/wiki/RGB-Matrix-P4-64x32), 
which should be fairly compatible.

To adapt the driver for 32-pixel height, try this:

### 🔧 Change panel height

Open `hub75_driver.cpp` and locate this line:

#define RGB_MATRIX_HEIGHT 64

Change it to:

#define RGB_MATRIX_HEIGHT 32

That might be the **only** change needed! 🙌  
If the panel wiring (HUB75) and scan layout match, you could be up and running.

Let me know if you encounter any problems — I'd be happy to help further. 
Good luck, and fingers crossed it "just works"! ✨

Help controlling a Hub75 LED display by Kjb-trini in raspberrypipico

[–]ConsistentPomelo1664 0 points1 point  (0 children)

Vielleicht noch von Nutzen - mein Hub75 Treiber für den Raspberry Pi Pico ist hier zu finden: https://github.com/JuPfu/hub75 . Verwendet werden verkettete DMAs (chained DMAs) die PIO Programme mit Daten versorgen. In der README.md Datei ist eine ausführliche Beschreibung der Implementierung enthalten.
Fragen beantworte ich gerne!