LCDWIKI MC130VX IIC OLED Module User Manual
- June 15, 2024
- LCDWIKI
Table of Contents
LCDWIKI MC130VX IIC OLED Module
Product Information
Specifications
- Name: OLED Module MC01506
- Display Color: Black white / black blue
- Screen Size: 1.5 inch
- Type: OLED
- Driver IC: SH1107
- Resolution: 128×128
- Module Interface: IIC
- Active Area: TDB
- Touch Screen Type: Not available
- Touch IC: Not available
- Module PCB Size: 15(g)
- Visual Angle : Not specified
- Operating Temperature: Not specified
- Storage Temperature: Not specified
- Operating Voltage: Wide voltage supply (3V~5V), compatible with 3.3V and 5V logic levels, no level shifting chip required
- Power Consumption: Ultra-low power consumption, normal display is only 0.06W
- Product Weight (With packaging): Not specified
Introduction to OLED
OLED is an Organic Light-Emitting Diode (OLED). OLED display technology has
the advantages of self-illumination, wide viewing angle, almost infinite
contrast, low power consumption, high reaction speed, flexible panel, wide
temperature range, simple structure and process, etc. A generation of flat
panel display emerging application technology. OLED display is different from
traditional LCD display, it can self-illuminate, so no backlight is needed,
which makes OLED display The display is thinner than the LCD display and has
a better display. The OLED module has a display size of 1.5″ and has a
128×128 resolution for black and white or black and blue. It adopts IIC
communication mode and the internal driver IC is SH1107.
Product Description
The OLED module is a 1.5 inch display with a resolution of 128×128. It uses
IIC communication mode and the internal driver IC is SH1107. The OLED display
technology provides self-illumination, wide viewing angle, almost infinite
contrast, low power consumption, high reaction speed, flexible panel, wide
temperature range, simple structure, and process.
Product Features
- Wide voltage supply (3V~5V), compatible with 3.3V and 5V logic levels, no level shifting chip required
- With IIC bus, only a few IOs can be used to light up the display
- Ultra-low power consumption: normal display is only 0.06W (far below the TFT display)
- Military-grade process standards, long-term stable work
- Provides a rich sample program for STM32, C51, Arduino, Raspberry Pi platforms
- Provide underlying driver technical support
- 1.5 inch OLED screen with black and white or black and blue color display
- 128×128 resolution for clear display and high contrast
- Large viewing angle: greater than 160° (one screen with the largest viewing angle in the display)
- Wide voltage supply (3V~5V), compatible with 3.3V and 5V logic levels, no level shifting chip required
- With IIC bus, only a few IOs can be used to light up the display
- Ultra-low power consumption: normal display is only 0.06W (far below the TFT display)
- Military-grade process standards, long-term stable work
- Provides a rich sample program for STM32, C51, Arduino, Raspberry Pi platforms
- Provide underlying driver technical support
Product Parameters
Name | Description |
---|---|
Display Color | Black white / black blue |
SKU | MC01506 |
Screen Size | 1.5(inch) |
Type | OLED |
Driver IC | SH1107 |
Resolution | 128*128(Pixel) |
Module Interface | IIC interface |
Active Area | 26.86×26.86(mm) |
Touch Screen type | No touch screen |
Touch IC | No touch IC |
Module PCB Size | 45.50×34.30(mm) |
Visual angle | >160° |
Operating Temperature | -10℃~60℃ |
Storage Temperature | -10℃~70℃ |
Operating Voltage | 3.3V / 5V |
Power Consumption | TDB |
Product Weight(With packaging) | 15(g) |
Interface Description
The module has four pins for the interface:
- GND: OLED power ground
- VCC: OLED power positive (3.3V~5V)
- SCL: OLED IIC bus clock signal
- SDA: OLED IIC bus data signal
Module pin silk screen
Rear view of the module
NOTE:
- This module supports IIC slave device address switching (shown in red box in Picture 4), as follows:
- Solder the 0x78 side resistance, disconnect the 0x7A side, then select the 0x78 slave address (default);
- Solder the 0x7A side resistance, disconnect the 0x78 side, then select the 0x7A slave address;
- The hardware switches the IIC from the set address, and the software also needs to be modified accordingly. For the specific modification method, see the following IIC slave device address modification instructions.
Number | Module Pin | Pin description |
---|---|---|
1 | GND | OLED power ground |
2 | VCC | OLED power positive (3.3V~5V) |
3 | SCL | OLED IIC bus clock signal |
4 | SDA | OLED IIC bus data signal |
Hardware Configuration
The OLED module does not have a backlight control circuit. It only has the
OLED display control circuit and the IIC slave device address selection
control circuit. Since the OLED can self-illuminate, the OLED module has no
backlight control circuit and only the OLED display control circuit and the
IIC slave device address selection control circuit (as shown in the red box of
Figure 3). The OLED display control circuit is mainly used to control OLED
display, including chip selection, reset, and data and command transmission
control. The IIC slave device address selection control circuit is used to
select different slave device addresses. DC-DC boost circuit is used to
provide stable power supply. The OLED module adopts IIC communication mode,
and the hardware is configured with two pins: SCL (IIC data pin) and SDA (IIC
clock pin). The IIC data transfer can be completed by controlling the two pins
according to the IIC working timing.
working principle
Introduction to SH1107 Controller
The SH1107 is an OLED/PLED controller that supports a maximum resolution of
128*128 and a 2048-byte GRAM. Support 8-bit 6800 and 8-bit 8080 parallel port
data bus, also supports 3-wire and 4-wire SPI serial bus and I2C bus. Since
parallel control requires a large number of IO ports, the most commonly used
are the SPI serial bus and the I2C bus. It supports vertical scrolling and can
be used in small portable devices such as mobile phones, MP3 players and more.
The SH1107 controller uses 1 bit to control a pixel display, so each pixel can
only display black and white or black and blue. The displayed RAM is divided
into 16 pages, with 8 lines per page and 128 pixels per line. When setting
pixel data, you need to specify the page address first, and then specify the
column low address and column height address respectively, so set 8 pixels in
the vertical direction at the same time. In order to be able to flexibly
control the pixel points at any position, the software first sets a global
one-dimensional array of the same size as the display RAM, first maps the
pixel point data to the global array, and the process uses the OR or the
operation to ensure that the global array is written before. The data is not
corrupted, and the data of the global array is then written to the GRAM so
that it can be displayed through the OLED.
Introduction to IIC Communication Protocol
The process of writing data on the IIC bus is shown in the following figure:
After the IIC bus starts working, the slave device address is sent first. After receiving the slave device response, it then sends a control byte to inform the slave device whether the next data to be sent is a command written to the IC register or written. The RAM data, after receiving the slave device response, then sends a value of multiple bytes until the transmission is completed and the IIC bus stops working.
among them:
C0=0: This is the last control byte, and all the data bytes sent in the
following are all data bytes.
- C0=1: The next two bytes to be sent are the data byte and another control byte.
- D/C(——)=0: is the register command operation byte
- D/C(——)=1: operation byte for RAM data
The IIC start and stop timing diagrams are as follows:
When the data line and the clock line of the IIC are both kept at a high level, the IIC is in an idle state. At this time, the data line changes from a high level to a low level, and the clock line continues to be at a high level, and the IIC bus starts data transmission. When the clock line is held high, the data line changes from low to high, and the IIC bus stops data transmission.
The timing diagram for the IIC to send a bit of data is as follows:
Each clock pulse (the process of pulling high and pulling low) sends 1 bit of data. When the clock line is high, the data line must remain stable, and the data line is allowed to change when the clock line is low.
The ACK transmission timing diagram is as follows:
When the master waits for the ACK of the slave, it needs to keep the clock line high. When the slave sends an ACK, keep the data line low.
Instructions for use
Arduino instructions
Wiring instructions:
See the interface description for pin assignments.
Arduino UNO microcontroller test program wiring instructions
Number| Module Pin| Corresponding to UNO development board
wiring pins
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| A5
4| SDA| A4
Arduino MEGA2560 microcontroller test program wiring
instructions
Number| Module Pin| Corresponding to MEGA2560 development board
wiring pins
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| 21
| | 20
---|---|---
4| SDA
Operating Steps:
-
Connect the OLED module and the Arduino MCU according to the above wiring instructions, and power on;
-
Select the example you want to test, as shown below:
(Please refer to the test program description document for test program description) -
Open the selected sample project, compile and download.
The specific operation methods for the Arduino test program relying on library copy, compile and download are as follows:
http://www.lcdwiki.com/res/PublicFile/Arduino_IDE_Use_Illustration_EN.pdf -
If the OLED module displays characters and graphics normally, the program runs Successfully;
RaspberryPi instructions
Wiring instructions:
See the interface description for pin assignments.
NOTE:
Physical pin refers to the GPIO pin code of the RaspBerry Pi development
board. BCM encoding refers to the GPIO pin coding when using the BCM2835 GPIO
library. WiringPi coding refers to the GPIO pin coding when using the wiringPi
GPIO library. Which GPIO library is used in the code, the pin definition needs
to use the corresponding GPIO library code, see Picture 1 GPIO map table for
details.
GPIO map
Raspberry Pi test program wiring instructions
Number| **Module Pin| Corresponding to development board
wiring pin
1| GND| GND
(Physical pin : 6,9,14,20,25,30,34,39)
2| VCC| 5V/3.3V
( Physical pin : 1,2,4 )
** 3| **SCL| Physical pin : 5 BCM coding : 3
wiringPi coding : 9
---|---|---
** 4| **SDA| Physical pin : 3 BCM coding : 2
wiring Pi coding : 8**
Operating Steps:
-
open the IIC function of RaspberryPi
Log in to the RaspberryPi using a serial terminal tool (such as putty) and enter the following command:
sudo raspi-config
Select Interfacing Options->I2C->YES
Start RaspberryPi’s I2C kernel driver -
install the function library
For detailed installation methods of the bcm2835, wiringPi function libraries of RaspberryPi, see the following documents:
http://www.lcdwiki.com/res/PublicFile/Raspberrypi_Use_Illustration_EN.pdf -
select the example that needs to be tested, as shown below: (Please refer to the test program description document for test program description)
-
bcm2835 instructions
-
Connect the OLED module to the RaspberryPi development board according to the above wiring
-
Copy the test program directory
Demo_1.5inch_OLED_128x128_SH1107_bcm2835_IIC to RaspberryPi (can be copied via SD card or via FTP tool (such as FileZilla)) -
Run the following command to run the bcm2835 test program:
cd Demo_1.5inch_OLED_128x128_SH1107_bcm2835_IIC make sudo ./ 1.5_IIC_OLED
As shown below:
-
-
wiringPi instructions
- Connect the OLED module to the RaspberryPi development board according to the above wiring
- Copy the test program directory Demo_1.5inch_OLED_128x128_SH1107_wiringPi_IIC to RaspberryPi (can be copied via SD card or via FTP tool (such as FileZilla))
- Run the following command to run the wiringPi test program: cd Demo_1.5inch_OLED_128x128_SH1107_wiringPi_IIC make sudo ./ 1.5_IIC_OLED
As shown below: If you want to modify the IIC transfer rate, you need to add the following content to the /boot/config.txt file, then restart raspberryPi
, i2c_arm_baudrate=2000000 (note that the comma is also required)
As shown below (the red box is the added content, the number 2000000 is the set rate, can be changed):
STM32 instructions
Wiring instructions:
See the interface description for pin assignments.
STM32F103C8T6 microcontroller test program wiring instructions
Number| Module Pin| Corresponding to the F103C8T6 development
board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| PA5
4| SDA| PA7
STM32F103RCT6 microcontroller test program wiring
instructions
Number| Module Pin| Corresponding to the MiniSTM32 development
board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| PB13
4| SDA| PB15
STM32F103ZET6 microcontroller test program wiring
instructions
Number| Module Pin| Corresponding to the Elite STM32
development board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| PB13
4| SDA| PB15
STM32F407ZGT6 microcontroller test program wiring
instructions
Number| Module Pin| Corresponding to the Explorer STM32F4
development board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| PB3
4| SDA| PB5
STM32F429IGT6 microcontroller test program wiring
instructions
Number| Module Pin| Corresponding to the Apollo STM32F4/F7
development board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| PF7
4| SDA| PF9
Operating Steps:
-
Connect the LCD module and the STM32 MCU according to the above wiring instructions, and power on;
-
Open the directory where the STM32 test program is located and select the example to be tested, as shown below:
(Please refer to the test program description document for test program description) -
Open the selected test program project, compile and download;
detailed description of the STM32 test program compilation and download can be found in the following document:
http://www.lcdwiki.com/res/PublicFile/STM32_Keil_Use_Illustration_EN.pdf -
If the OLED module displays characters and graphics normally, the program runs successfully;
C51 instructions
Wiring instructions:
See the interface description for pin assignments.
STC89C52RC and STC12C5A60S2 microcontroller test program wiring instructions
Number| Module Pin| Corresponding to STC89/STC12 development
board wiring pin
1| GND| GND
2| VCC| 5V/3.3V
3| SCL| P17
4| SDA| P15
Operating Steps:
-
Connect the LCD module and the C51 MCU according to the above wiring instructions, and power on;
-
Open the directory where the C51 test program is located and select the example to be tested, as shown below: (Please refer to the test program description document for test program description)
-
Open the selected test program project, compile and download; detailed description of the C51 test program compilation and download can be found in the following document:
http://www.lcdwiki.com/res/PublicFile/C51_Keil%26stc- isp_Use_Illustration_EN.pdf -
If the OLED module displays characters and graphics normally, the program runs successfully;
Software Description
Code Architecture
Arduino code architecture description
The code architecture is shown below
Arduino’s test program code consists of two parts: the U8g2_Arduino library
and application code. The U8g2_Arduino library contains a variety of control
IC configurations, mainly responsible for operating registers, including
hardware module initialization, data and command transfer, pixel coordinates
and color settings, display mode configuration, etc. The application contains
several test examples, each of which contains different test content. It uses
the API provided by the U8glib library, writes some test examples,
and implements some aspects of the test function.
- RaspberryPi code architecture description
The bcm2835 and wiring Pi test program code architecture is as follows follows:
The Demo API code for the main program runtime is included in the test code; OLED initialization and related operations are included in the OLED code; Drawing points, lines, graphics, and Chinese and English character display related operations are included in the GUI code; The GPIO library pro vides GPIO operations; The main function implements the application to run; Platform code varies by platform; IIC initialization and configuration related operations are included in the IIC code;
C51, STM32 code architecture description
The code architectu re is shown below:
The Demo API code for the main program runtime is included in the test code
code; OLED initialization and related bin parallel port write data operations
are included in
the OLED codecode; Drawing points, lines, graphics, and Chinese and English
character display related operations are included in the GUI code code; The
main function implements the application to run run; Platform code varies by
platform platform; IIC initialization and configuration related operations are
included in the IIC code code;
GPIO definition description
-
Arduino test program GPIO definition description
The Arduino test program uses the hardware IIC function, and the GPIO is fixed fixed. -
RaspberryPi test program GPIO definition description
The RaspberryPi test program uses the hardware IIC function, and the GPIO is fixed fixed. -
STM32 test program GPIO definition description
The STM32 test program uses the software simulation IIC function, and the GPIO definition is placed in the iic.h file, a s shown in the following figure figure:
OLED_SDA and OLED_SCL can be defined as any idle GPIO GPIO.
- C51 test program GPIO definition description
The C51 test program uses the software simulation IIC function, and the GPIO definition is placed in the iic.h file, a s shown in the following figure figure:
OLED_SDA and OLED_SCL can be defined as any idle GPIO GPIO.
IIC slave device address modification
- Arduino test program IIC modified from device address
Use the setI2CAddress function to modify the I2C slave device address as follows:
Open the test program, find the setup function, and add the setI2CAddress function before the begin function, as shown in the following figure:
The above operation is to set the IIC slave device address to 0x3d 2 (0x3c 2 by default).
- RaspberryPi test program IIC modified from device address
The slave address of bcm2835 and wiringPi test program IIC is defined in the iic.h file, as shown in the following figure:
Directly modify IIC_SLAVE_ADDR(default is 0x3C (corresponding to 0x78)). For example, change to 0x3D, then the IIC slave address is 0x3D (corresponding to 0x7A);
- STM32 and C51 test program IIC modified from device address
The slave device address of the STM32 and C51 test program IIC is defined in the iic.h file, as shown in the following figure figure:
Directly modify IIC_SLAVE_ADDR (default is 0x78).For example, change to 0x7A, then the IIC slave address is 0x7A.
IIC communication code implementation
RaspberryPi test program IIC communication code implementation
wiringPi test program IIC communication code is implemented in iic.c, as shown
First call IIC_init to initialize, set the IIC slave address, get the IIC device file descriptor, and then use the IIC device file descriptor to write the register command and memory data respectively. The bcm2835 test program IIC communication code is implemented in iic.c, as shown below:
First call IIC_init to initialize, set the IIC slave address, get the IIC
device file descriptor, and then use the IIC device file descriptor to write
the register command and memory
data respectively.
Arduino test program IIC communication code implementation
Arduino test program IIC communication code is implemented by U8glib, the
specific implementation method can refer to U8glib code
STM32 test program IIC communication code implementation
The STM32 test program IIC communication code is implemented in iic.c (there
are subtle differences between different MCU implementations), as shown in the
following figure:
C51 test program IIC communication code implementation
C51 test program IIC communication code is implemented in iic.c, as shown
below:
Common software
This set of test examples needs to display Chinese and English, symbols and
pictures, so PCtoLCD2002 modulo software is used. Here, the setting of the
modulo software is explained only for the test program. The PCtoLCD2002 modulo
software settings are as follows: Dot matrix format select Dark code the
modulo mode select the progressive mode (C51 test program needs to choose
determinant) Take the model to choose the direction (high position first) (C51
test program needs to choose reverse (low position first)) Output number
system selects hexadecimal number Custom format selection C51 format The
specific setting method is as follows follows:
http://www.lcdwiki.com/Chinese_and_English_display_modulo_settings
FAQ
Can I use this module with a voltage other than 3V~5V?
No, this module is specifically designed to work with a voltage supply
between 3V and 5V.
Can I use this module with a touchscreen?
No, this module does not support touch screen functionality.
Website: www.lcdwiki.com
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>