Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Pmod OLEDrgb: Examples, Pinouts, and Specs

Image of Pmod OLEDrgb
Cirkit Designer LogoDesign with Pmod OLEDrgb in Cirkit Designer

Introduction

The Pmod OLEDrgb, manufactured by Digilent, is a versatile Pmod interface module featuring a full-color RGB OLED display. This module allows users to visualize graphics and text with high contrast and low power consumption, making it ideal for applications requiring compact, vibrant displays. The Pmod OLEDrgb is based on the SSD1331 OLED driver, which provides advanced control over the display's color and brightness.

Explore Projects Built with Pmod OLEDrgb

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino-Based RGB Color Detection System with OLED and LCD Displays
Image of 1: A project utilizing Pmod OLEDrgb in a practical application
This circuit uses an Arduino UNO to interface with an Adafruit TCS34725 RGB color sensor, a 128x64 OLED display, and a 16x2 I2C LCD. The Arduino reads color data from the sensor and displays the color information on both the OLED and LCD screens.
Cirkit Designer LogoOpen Project in Cirkit Designer
Wi-Fi Controlled RGB LED and OLED Display with ESP8266
Image of ESP thermometer reciever: A project utilizing Pmod OLEDrgb in a practical application
This circuit features an ESP8266 microcontroller interfaced with a 128x64 OLED display via I2C for visual output and an RGB LED controlled through current-limiting resistors. The ESP8266 provides power and control signals to both the display and the LED, enabling visual feedback and status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Wi-Fi Enabled UV Monitoring System with OLED Display
Image of UV_DETECTOR_BREADBOARD: A project utilizing Pmod OLEDrgb in a practical application
This circuit features a PicoW microcontroller interfacing with a 0.96" OLED display, an ML8511 UV sensor, and a blue LED. The PicoW reads UV sensor data and can display information on the OLED while controlling the LED for visual feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Based Pong Game with OLED Display and Pushbutton Controls
Image of Sim test OLED Display: A project utilizing Pmod OLEDrgb in a practical application
This circuit features an Arduino UNO microcontroller connected to an OLED 128x64 I2C Monochrome Display for visual output and two pushbuttons for user input. The Arduino runs a Pong game, with the display showing the game and the pushbuttons used to control the paddle movement. The display is interfaced via I2C (SCL and SDA), and the pushbuttons are connected to digital pins D2 and D3 for input detection.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Pmod OLEDrgb

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of 1: A project utilizing Pmod OLEDrgb in a practical application
Arduino-Based RGB Color Detection System with OLED and LCD Displays
This circuit uses an Arduino UNO to interface with an Adafruit TCS34725 RGB color sensor, a 128x64 OLED display, and a 16x2 I2C LCD. The Arduino reads color data from the sensor and displays the color information on both the OLED and LCD screens.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP thermometer reciever: A project utilizing Pmod OLEDrgb in a practical application
Wi-Fi Controlled RGB LED and OLED Display with ESP8266
This circuit features an ESP8266 microcontroller interfaced with a 128x64 OLED display via I2C for visual output and an RGB LED controlled through current-limiting resistors. The ESP8266 provides power and control signals to both the display and the LED, enabling visual feedback and status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of UV_DETECTOR_BREADBOARD: A project utilizing Pmod OLEDrgb in a practical application
Wi-Fi Enabled UV Monitoring System with OLED Display
This circuit features a PicoW microcontroller interfacing with a 0.96" OLED display, an ML8511 UV sensor, and a blue LED. The PicoW reads UV sensor data and can display information on the OLED while controlling the LED for visual feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Sim test OLED Display: A project utilizing Pmod OLEDrgb in a practical application
Arduino UNO Based Pong Game with OLED Display and Pushbutton Controls
This circuit features an Arduino UNO microcontroller connected to an OLED 128x64 I2C Monochrome Display for visual output and two pushbuttons for user input. The Arduino runs a Pong game, with the display showing the game and the pushbuttons used to control the paddle movement. The display is interfaced via I2C (SCL and SDA), and the pushbuttons are connected to digital pins D2 and D3 for input detection.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Embedded systems requiring graphical user interfaces
  • Wearable devices with compact displays
  • Educational projects and prototyping
  • Low-power IoT devices with visual feedback
  • Portable diagnostic or monitoring tools

Technical Specifications

The Pmod OLEDrgb is designed to interface seamlessly with microcontrollers and FPGAs via SPI communication. Below are the key technical details:

Key Specifications

Parameter Value
Display Type RGB OLED
Resolution 96 x 64 pixels
Color Depth 65,536 colors (16-bit)
Communication Protocol SPI
Supply Voltage 3.3V
Power Consumption Low (varies with brightness)
Dimensions 1.6" x 0.8" (40.6mm x 20.3mm)

Pin Configuration

The Pmod OLEDrgb uses a 12-pin connector for interfacing. The pinout is as follows:

Pin Number Pin Name Description
1 GND Ground
2 VCC Power supply (3.3V)
3 SCL SPI Clock
4 SDA SPI Data
5 RES Reset signal
6 DC Data/Command select
7 CS Chip Select
8 NC Not Connected
9-12 NC Not Connected

Usage Instructions

The Pmod OLEDrgb is straightforward to use in embedded systems. Below are the steps to integrate it into your project:

Connecting the Pmod OLEDrgb

  1. Power Supply: Connect the VCC pin to a 3.3V power source and the GND pin to ground.
  2. SPI Interface: Connect the SCL (SPI Clock), SDA (SPI Data), CS (Chip Select), and DC (Data/Command) pins to the corresponding SPI pins on your microcontroller or FPGA.
  3. Reset Signal: Connect the RES pin to a GPIO pin on your microcontroller for resetting the display.

Example Code for Arduino UNO

Below is an example of how to use the Pmod OLEDrgb with an Arduino UNO. Note that the Arduino UNO operates at 5V logic, so a level shifter is required to interface with the 3.3V Pmod OLEDrgb.

#include <SPI.h>

// Pin definitions for the Pmod OLEDrgb
#define CS_PIN 10   // Chip Select pin
#define DC_PIN 9    // Data/Command pin
#define RES_PIN 8   // Reset pin

void setup() {
  // Initialize SPI communication
  SPI.begin();
  
  // Configure control pins as outputs
  pinMode(CS_PIN, OUTPUT);
  pinMode(DC_PIN, OUTPUT);
  pinMode(RES_PIN, OUTPUT);

  // Reset the display
  digitalWrite(RES_PIN, LOW);
  delay(10); // Hold reset low for 10ms
  digitalWrite(RES_PIN, HIGH);

  // Initialize the display (send initialization commands)
  initializeDisplay();
}

void loop() {
  // Example: Clear the screen and draw a red rectangle
  clearScreen();
  drawRectangle(10, 10, 50, 30, 0xF800); // Red color in 16-bit RGB565 format
}

void initializeDisplay() {
  // Send initialization commands to the SSD1331 driver
  digitalWrite(CS_PIN, LOW);
  digitalWrite(DC_PIN, LOW);
  SPI.transfer(0xAE); // Display OFF
  // Add other initialization commands as needed
  digitalWrite(CS_PIN, HIGH);
}

void clearScreen() {
  // Clear the display by filling it with black
  digitalWrite(CS_PIN, LOW);
  digitalWrite(DC_PIN, LOW);
  SPI.transfer(0x25); // Command to clear the screen
  digitalWrite(CS_PIN, HIGH);
}

void drawRectangle(uint8_t x, uint8_t y, uint8_t width, uint8_t height, 
                   uint16_t color) {
  // Draw a rectangle on the display
  digitalWrite(CS_PIN, LOW);
  digitalWrite(DC_PIN, LOW);
  SPI.transfer(0x22); // Command to draw a rectangle
  SPI.transfer(x);    // X start
  SPI.transfer(y);    // Y start
  SPI.transfer(x + width - 1); // X end
  SPI.transfer(y + height - 1); // Y end
  SPI.transfer(color >> 11);    // Red (5 bits)
  SPI.transfer((color >> 5) & 0x3F); // Green (6 bits)
  SPI.transfer(color & 0x1F);   // Blue (5 bits)
  digitalWrite(CS_PIN, HIGH);
}

Best Practices

  • Use a level shifter when interfacing with 5V logic devices like the Arduino UNO.
  • Avoid prolonged exposure to static images to prevent OLED burn-in.
  • Ensure proper power supply filtering to avoid noise affecting the display.

Troubleshooting and FAQs

Common Issues

  1. Display Not Turning On

    • Verify the power supply connections (VCC and GND).
    • Ensure the RES pin is toggled during initialization.
  2. No Output on the Display

    • Check the SPI connections (SCL, SDA, CS, and DC).
    • Confirm that the SPI clock speed is within the supported range of the SSD1331.
  3. Distorted or Incorrect Colors

    • Verify that the color data is sent in the correct RGB565 format.
    • Check for loose or incorrect wiring.

Tips for Troubleshooting

  • Use a logic analyzer to monitor SPI communication and verify that commands are sent correctly.
  • Refer to the SSD1331 datasheet for detailed command descriptions and timing requirements.
  • Test the display with a known working example to rule out hardware issues.

By following this documentation, you can effectively integrate the Pmod OLEDrgb into your projects and take full advantage of its vibrant display capabilities.