Skip to product information
1 of 4

54x8 Addressable LED Display

54x8 Addressable LED Display

SKU:AXMT-DSP0003

⏳ This item is currently sold out — a new batch is on its way and will be available soon!

This 54x8 addressable LED display packs 432 individually controllable RGB LEDs. Each LED can be set to any color independently, making it ideal for animations, scrolling text, game displays, or custom indicators. Single-wire control keeps wiring simple, and the square layout maps cleanly to matrices in code. A solid choice for clocks, visualizers, retro-style displays, or any project where a grid of light does the work.
Regular price $28.49
Regular price Sale price $28.49
Sale Sold out
View full details

Technical Details

- LED: XL-1615RGBC
- LED IC: WS2812B
- Connected in a serpantine
- 432x Single Wire Addressable LEDs
- Input and Output Ports
- AX22 Compatible
- Daisy Chainable
- FastLed Compatible
- Adafruit Neopixel Compatible
- Arduino IDE Compatible
- MicroPython Compatible
- MicroBlocks Compatible

Material Datasheet →

Pinout

Technical Resources

54x8 Addressable LED Display - (AXMT-DSP0003)
🖱️ Click & drag to rotate
#include <Adafruit_NeoPixel.h>

#define LED_PIN 14
#define LED_COUNT 432

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();            // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();             // Turn OFF all pixels ASAP
  strip.setBrightness(50);  // Set BRIGHTNESS to about 1/5 (max = 255)
}

void loop() {
  colorWipe(strip.Color(255, 0, 0), 1);  // Red
  colorWipe(strip.Color(0, 255, 0), 1);  // Green
  colorWipe(strip.Color(0, 0, 255), 1);  // Blue

  theaterChase(strip.Color(127, 127, 127), 1);  // White, half brightness
  theaterChase(strip.Color(127, 0, 0), 1);      // Red, half brightness
  theaterChase(strip.Color(0, 0, 127), 1);      // Blue, half brightness

  rainbow(10);
  theaterChaseRainbow(1);
}

void colorWipe(uint32_t color, int wait) {
  for (int i = 0; i < strip.numPixels(); i++) {  // For each pixel in strip...
    strip.setPixelColor(i, color);               //  Set pixel's color (in RAM)
    strip.show();                                //  Update strip to match
    delay(wait);                                 //  Pause for a moment
  }
}

void theaterChase(uint32_t color, int wait) {
  for (int a = 0; a < 10; a++) {   // Repeat 10 times...
    for (int b = 0; b < 3; b++) {  //  'b' counts from 0 to 2...
      strip.clear();               //   Set all pixels in RAM to 0 (off)
      // 'c' counts up from 'b' to end of strip in steps of 3...
      for (int c = b; c < strip.numPixels(); c += 3) {
        strip.setPixelColor(c, color);  // Set pixel 'c' to value 'color'
      }
      strip.show();  // Update strip with new contents
      delay(wait);   // Pause for a moment
    }
  }
}

void rainbow(int wait) {

  for (long firstPixelHue = 0; firstPixelHue < 5 * 65536; firstPixelHue += 256) {

    strip.rainbow(firstPixelHue);
    // Above line is equivalent to:
    // strip.rainbow(firstPixelHue, 1, 255, 255, true);
    strip.show();  // Update strip with new contents
    delay(wait);   // Pause for a moment
  }
}

void theaterChaseRainbow(int wait) {
  int firstPixelHue = 0;           // First pixel starts at red (hue 0)
  for (int a = 0; a < 30; a++) {   // Repeat 30 times...
    for (int b = 0; b < 3; b++) {  //  'b' counts from 0 to 2...
      strip.clear();               //   Set all pixels in RAM to 0 (off)
      for (int c = b; c < strip.numPixels(); c += 3) {

        int hue = firstPixelHue + c * 65536L / strip.numPixels();
        uint32_t color = strip.gamma32(strip.ColorHSV(hue));  // hue -> RGB
        strip.setPixelColor(c, color);                        // Set pixel 'c' to value 'color'
      }
      strip.show();                 // Update strip with new contents
      delay(wait);                  // Pause for a moment
      firstPixelHue += 65536 / 90;  // One cycle of color wheel over 90 frames
    }
  }
}