Close
0%
0%

RGB LED matrix panels (Arduino)

Demo loops and interactive games and displays made with Arduino Uno and Mega Controlling 32x32, 32x64 and 64x64 RGB Matrix panels

Similar projects worth following
Demo loops and interactive games and displays made with Arduino Uno and Mega Controlling 32x32, 32x64 and 64x64 RGB Matrix panels

got on show & tell!

  • Micro Font and other small things

    Joshua Snyder11/14/2016 at 15:13 0 comments

    in an effort to convey as much information on the small number of pixels available, I had designed a small number bitmap set, I have since expanded this into a full alphabet (Ascii 32 - 126)

    this font is proportionately spaced, and as narrow as possible and only 6 pixels high with descenders. the bitmap table is under 256 bytes with a offset and width table taking up another 180 . these tables could be eliminated, but I want fast as possible performance without having to create a table in RAM.

    Also have a working Tetris and Brick-Out now, and human control is working on 3 of 4 games.

    Time from an ESP8266 is working, as is weather, but displaying the weather forecast without the micro font was not practical.

  • Complete Code Rewrite

    Joshua Snyder10/10/2016 at 19:28 0 comments

    I had waited long enough, and a complete code rewrite from procedural flat C to OO C++ model.

    Advantages of OO redesign:

    • Adding more functions becomes easer.
    • Legibilidy and intent becomes clearer
    • Memory management* issues easer to solve.
    • Moving to PlatformIO makes C++ easer to navigate than the Arduino IDE.

    *Memory Management: Due to the constraints of up to 64x64 RGB pixels on an arduino Mega, memory management had been key in the original implementation of the code. Moving the code to OO C++ would normally mean leaving even more of the memory in the hands of the compiler, but inorder to force reuse of the pool of available RAM, I wrote my own memory management routines, and each Mode or Module that runs on the device can clear out and use as required this same buffer of ram, that only has to be allocated once. Previous versions of the code had approached maximum allocation, forcing reuse of global variables such that adding one more 8Bit int could cause the code to no longer execute.


View all 2 project logs

Enjoy this project?

Share

Discussions

Marc wrote 04/10/2019 at 06:27 point

Ok, I'm impressed that you did that much with underpowered CPUs like nano and mega.

If you'd like to do more though with more recent CPUs (teensy and ESP32), I'm sure you've heard about SmartMatrix.

You can find SmartMatrix::GFX and some examples with Teensy and ESP32 here:

http://marc.merlins.org/perso/arduino/post_2019-04-01_SmartMatrix_-SmartMatrix-Shield-v4-for-Teensy_-ESP32-shield-with-level-shifter_-and-SmartMatrix_GFX.html
Library: https://github.com/marcmerlin/SmartMatrix_GFX

  Are you sure? yes | no

John wrote 02/03/2018 at 10:13 point

This is fantastic! Any plans to share the source code? ;)

  Are you sure? yes | no

Bruce Land wrote 09/01/2016 at 11:53 point

Nice. See also

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates