Try using the
--led-slowdown-gpio=X command-line setting, where “X” ranges from 0 (for the very earliest Raspberry Pi models) up to 4 (for the Raspberry Pi 4). Experiment to find the lowest value that provides a stable image on your system.
Run sudo raspi-config and in the “Overclock” options set the core frequency to 350 MHz or less. Reboot and see if the image is stable. There seems to be an issue when toggling GPIO too quickly.
Also see the prior note about dialing back the GPIO speed.
If you’re interfacing to any 1-wire devices, and if you’ve enabled 1-wire via raspi-config, you’ll need to use something other than the default pin 4. Pins 19 or 25 make good choices. Look for the line in /boot/config.txt where 1-wire is enabled and tell it which pin to use:
Large LED matrices and newer model Raspberry Pis need more power than the early days. If you’re trying to run everything from a 5V 2 Amp power supply, you probably need to step up to 4A or better. You can also try powering the Raspberry Pi from a USB power supply and the matrix (via the HAT or Bonnet) with a DC supply.
Check that you have plugged in a good 5V 2A+ (4A+ is best) power supply into the Bonnet/HAT. The Raspberry Pi's 5V power supply cannot power a matrix, you need a separate high current supply as well!