

The Waveshare P2.5 92x48 Matrix is a versatile LED matrix display module designed for dynamic visualization of graphics and text. With its high-resolution 92x48 pixel grid, this module is ideal for applications requiring clear and vibrant visual output. It supports communication via SPI or I2C protocols, making it compatible with a wide range of microcontrollers, including Arduino and Raspberry Pi.








The following table outlines the key technical details of the Waveshare P2.5 92x48 Matrix:
| Parameter | Value |
|---|---|
| Manufacturer | Waveshare |
| Part ID | P2.5 92x48 Matrix |
| Resolution | 92x48 pixels |
| Pixel Pitch | 2.5 mm |
| Communication Protocol | SPI / I2C |
| Operating Voltage | 5V DC |
| Power Consumption | ~2W (typical) |
| Dimensions | 230mm x 120mm x 10mm |
| Weight | ~150g |
The Waveshare LED Matrix features a standard pin header for interfacing. Below is the pin configuration:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (5V DC) |
| 2 | GND | Ground |
| 3 | DIN | Data input for SPI communication |
| 4 | CLK | Clock input for SPI communication |
| 5 | CS | Chip Select for SPI communication |
| 6 | ADDR | Address selection for I2C communication (optional) |
| 7 | SDA | Data line for I2C communication |
| 8 | SCL | Clock line for I2C communication |
VCC pin to a 5V DC power source and the GND pin to ground.DIN, CLK, and CS to the corresponding SPI pins on your microcontroller.SDA and SCL to the I2C pins on your microcontroller. Use the ADDR pin to set the I2C address if required.Below is an example of how to use the Waveshare LED Matrix with an Arduino UNO via SPI:
#include <SPI.h>
// Define SPI pins for the LED Matrix
#define DIN_PIN 11 // MOSI pin on Arduino UNO
#define CLK_PIN 13 // SCK pin on Arduino UNO
#define CS_PIN 10 // Chip Select pin
void setup() {
// Initialize SPI communication
SPI.begin();
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH);
// Initialize the LED Matrix
initializeMatrix();
}
void loop() {
// Display a simple pattern on the LED Matrix
displayPattern();
}
void initializeMatrix() {
// Send initialization commands to the LED Matrix
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x09); // Example command: Decode mode
SPI.transfer(0x00); // No decode
digitalWrite(CS_PIN, HIGH);
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x0A); // Example command: Intensity
SPI.transfer(0x0F); // Maximum brightness
digitalWrite(CS_PIN, HIGH);
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x0B); // Example command: Scan limit
SPI.transfer(0x07); // Display all rows
digitalWrite(CS_PIN, HIGH);
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x0C); // Example command: Shutdown register
SPI.transfer(0x01); // Normal operation
digitalWrite(CS_PIN, HIGH);
}
void displayPattern() {
// Example: Display a checkerboard pattern
for (int row = 1; row <= 8; row++) {
digitalWrite(CS_PIN, LOW);
SPI.transfer(row); // Select row
SPI.transfer(0xAA); // Example pattern: 10101010
digitalWrite(CS_PIN, HIGH);
}
}
No Display Output:
Flickering or Dim LEDs:
Incorrect Patterns or Text:
Q: Can I daisy-chain multiple LED Matrices?
A: Yes, multiple Waveshare LED Matrices can be daisy-chained via SPI. Ensure proper addressing and sufficient power supply.
Q: What is the maximum viewing distance for this module?
A: The P2.5 pixel pitch is suitable for viewing distances of 2.5 meters or more.
Q: Does the module support PWM for brightness control?
A: Brightness can be controlled via software commands, but hardware PWM is not directly supported.
Q: Can I use this module with a Raspberry Pi?
A: Yes, the module is compatible with Raspberry Pi. Use the SPI or I2C interface and install the appropriate libraries.
By following this documentation, you can effectively integrate the Waveshare P2.5 92x48 Matrix into your projects for dynamic and engaging visual displays.