Pinned by DJDevon3
I make things and I know stuff.
This has been my main project since 2019 which started on the Adafruit Bluefruit Sense microcontroller with Arduino. I eventually ported it to Circuit Python... and I've never used Arduino since. There are many different versions of this project on my github that are either offline only, offline with GPS, offline & online, offline & online with MQTT.
The project I'm detailing today is offline & online with MQTT to AdafruitIO. This means if for whatever reason your WiFi goes down, OpenWeatherMap.org servers go down, or AdafruitIO goes down it will still display local sensor data and function in an offline capacity waiting patiently until communication is restored.
The display sits in front of my PC monitor and has been running 24/7 for about 3 years now. I've had a lot of time to debug all of the things that might cause it to crash, error, and gracefully fail in a never ending loop. It's not perfect but it's solidly coded.
How many matrix panels can you use with the Matrix Portal S3? About 12 seems to be the maximum for usability. If you add more than 12 panels the data stream takes a long time to reach the end. I've calculated about 12 feet of copper travel length in a serpentine arrangement as the maximum for a 5V data signal before degradation/glitches become to unbearable to view. The bit depth (amount of possible colors) is also very important as 12 panels cannot stream more than a bit depth of 4 without significant artifacts. Normally with Circuit Python, images are 8-bit indexed BMP's but matrix panels can only display a maximum of 6-bit color. A TFT can support up to 24-bit so do not make the mistake of treating a matrix display like a TFT. It will still process 8-bit indexed BMP's with some image quality loss due to the nature of RGB LED's in a matrix panel.
For this project I'm using 12x 5mm pitch matrix panels. The pitch denotes the physical distance between pixels. A 3mm pitch panel will be much smaller physically than a 6mm pitch for example.
Combines API's from: YouTube, Twitter, Github, Twitch, Mastodon, Discord
Only uses built-in adafruit_requests library, as bare bones and fast as you could want from Circuit Python. Does not use PyPortal or Portalbase libraries. You'll only need a multiplexer if your project requires more than 16 backpacks.
The only reason I'm using a multiplexer is because I intend to add more than 16, for now it's 5 rows of 2.