ESP32-S3-LCD-1.69
| ||
Overview
Introduction
ESP32-S3-LCD-1.69 is a low-cost, high-performance MCU board designed by Waveshare, embedded with 240MHz dual-core processor, tiny size, with onboard 1.69inch 262K LCD display, Lithium battery recharge manager, 6-axis sensor (3-axis accelerometer and 3-axis gyroscope), WiFi/Bluetooth antenna, RTC, and so on, which makes it easy for you to develop and integrate it into products quickly.
Features
- Equipped with high-performance Xtensa®32-bit LX7 dual-core processor, main frequency running up to 240MHz.
- Support 2.4 GHz Wi-Fi (802.11 b/g/n) and Bluetooth® 5 (LE), and onboard antenna.
- Built-in 512KB SRAM and 384KB ROM, 8MB PSRAM, and external 16MB Flash.
- Onboard 1.69-inch capacitive touch LCD screen, 240×280 resolution, 262K colors, can clearly display color pictures.
Hardware Description
- Onboard patch antenna, uses 0 ohm shorted optional external antennas, as shown in ⑩.
- Onboard PCF85063 RTC chip with reserved SH1.0 RTC battery header (support charging), supports timing function, as shown in ③ and ⑨.
- Onboard QMI8658C 6-axis Inertial Measurement Unit (IMU), including a 3-axis gyroscope and a 3-axis accelerator, as shown in ④.
- Onboard ETA6089 high-performance Lithium battery charging chip, M1.25 Lithium battery interface, easy to install lithium batteries charge and discharge for long-term usage, as shown in ⑤ and ⑥.
- Onboard buzzer can be utilized as an audio peripheral, as shown in ⑧.
- Onboard Type-C interface, connect to ESP32-S3 USB for demo programming and log printing, as shown in ⑦.
- Onboard BOOT and RST function buttons, easy to reset and enter the download mode, as shown in ⑫ and ⑬.
- Onboard function circuit button, can be customized as the power-on button, and can identify single pressing, double pressing, and long pressing, as shown in ⑪.
Pinout Definition
When using the GPIO header reserved on the ESP32-S3-LCD-1.69 board, please pay attention to the wiring colors and corresponding functions.
Please avoid wrong wiring as it may cause the burning of the board.
Dimensions
Development Environment Setup
- The following development system is Windows by default.
ESP-IDF
- It is recommended to develop with the VSC plug-in.
Develop with VSCode Plug-in
Install VSCode
- 1. Open the download page of the official VSCode website, and select the corresponding system and system bit to download.
- 2. After running the installation package, the rest can be installed by default, but here for the subsequent experience, it is recommended to check boxes 1, 2, and 3.
- After the first and second items are enabled, you can open VSCode directly by right-clicking files or directories, which can improve the subsequent user experience.
- After the third item is enabled, you can select VSCode directly when you choose how to open it.
Install Espressif IDF Plug-in
- Note: The latest version of the current plug-in is V1.6.0, for a consistent experience, users can choose the same version as us.
- 1. Open VSCode and use the shortcut key Shift + Ctrl + X to enter the plugin manager.
- 2. In the search bar, type Espressif IDF, select the corresponding plug-in, and click install.
- 3. Press F1 to enter:
esp-idf: configure esp-idf extension
- 4. Choose express (This tutorial is for first-time users, so only the first general installation tutorial is covered.)
- 5. Open and display this screen.
- 6. Choose a server to download.
- 7. Select the ESP-IDF version you want now, we choose the latest V5.0.1 (note that ESP-IDF started to support ESP32-S3 only after V4.4).
- 8. The following two are the ESP-IDF directory installation address and the ESP-IDF required tools installation address respectively.
- Note: If you have installed ESP-IDF before, or if it has failed, please make sure to delete the file completely or create a new path.
- 9. Once the configuration is finished, click "install" to download.
- 10. Enter the download page, and it will automatically install the corresponding tools and environment, just wait a moment.
- 11. After the installation is completed, it will enter the following screen, indicating that the installation is finished.
Official Demo Usage
- Click here to view more details provided by the official ESP.
Creating a Demo
- 1. Using the shortcut F1, type:
esp-idf:show examples projects
- 2. Choose your current IDF version:
- 3. Take "Hello World" as an example:
- 4. Choose the corresponding demo.
- 5. The readme file will explain which chip the demo is suitable for (the following section will introduce how to use the demo and its file structure, which is omitted here).
- 6. Click to create the demo.
- 7. Choose the path to place the demo and ensure that there is no folder with the same name as the demo.
Modify COM Port
- 1. The corresponding COM port is displayed here, click on it to modify.
- 2. We check the device manager COM port, and select COM5, please select your corresponding COM port:
- 3. Choose the project and demo.
- 4. Then the COM port is modified.
Modify the Driver
- 1. Here shows the driver used, click here to modify the corresponding driver:
- 2. Choose the project or demo:
- 3. Wait for a few seconds after clicking.
- 4. Choose the driver we need, that is, the main chip ESP32S3.
- 5. Choose the openocd path, we can just choose one at random as it doesn't matter.
The Rest of the Status Bar Introduction
- ① SDK configuration editor: many functions and configurations of ESP-IDF can be modified within it.
- ② Clean up everything and delete all compiled files.
- ③ Compile.
- ④ Current download method, default is UART.
- ⑤ Program the current firmware, please do it after compiling.
- ⑥ Open the serial monitor to view serial information.
- ⑦ Combined button for compiling, programming, and opening the serial monitor (most commonly used during debugging).
Compile, Program, and Serial Port Monitoring
- 1. Click on the Compile, Program, and Open Serial Monitor buttons we described earlier.
- 2. It may take a long time to compile, especially for the first time.
- During this process, ESP-IDF may take up a lot of CPU resources and therefore may cause system lag.
- 3. Because we use CH343 as a USB to serial port chip, and the on-board automatic download circuit, it can be downloaded automatically without manual operation.
- 4. After successful download, it will automatically enter the serial monitor, and you can see the corresponding information output from the chip and prompt to reboot after 10s.
Arduino
- If you do not use arduino-esp32 before, you can refer to this link.
Install Arduino IDE
- 1. Open the official software download webpage, and choose the corresponding system and system bits to download.
- 2. You can choose "Just Download", or "Contribute & Download".
- 3. Run to install the program and install it all by default.
Install arduino-esp32 Online
- 1. Open Preferences.
- 2. Add the corresponding board manager URLs and click the button.
- 3. Add the following content in the first blank.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 4. Save the setting.
- 5. Open the board manager, enter ESP32 in the search bar, and select version 2.0.11.
- 6. Wait for downloading.
- 7. arduino-esp32 is downloaded.
Use Arduino Demo
- 1. Select the demo, here we choose the demo to get the chip ID.
- 2. Select the board as ESP32S3 Dev Module.
- 3. Choose the COM5 port of ESP32-S3 USB.
- 4. Click the download button, then it compiles and downloads automatically.
- 5. Finish.
- 6. Open the Serial Port Monitor.
- 7. See the chip ID of the loop output.
Note: This product uses USB to connect Type-C, if there is a situation where the chip information cannot be output, please modify the Serial.print function in the code to "printf" function to output directly to the USB.
LCD Description
LCD & Controller
- The built-in controller of this LCD is ST7789V2, which is an LCD controller with 240 × RGB × 320 pixels, and the pixels of this LCD are 240(H) × RGB × 280(V), so you can see the internal RAM of this LCD is not fully used.
- The LCD supports 12-bit, 16-bit, and 18-bit per pixel input color formats, i.e., RGB444, RGB565, and RGB666, and this demo uses the RGB565 color format, which is also the commonly used RGB format.
- The LCD adopts the 4-wire SPI communication interface, which can greatly reduce GPIO ports and the communication speed is faster.
- The resolution of this module is 240(H) × RGB × 280(V). As its four corners are round (#Dimensions), some of the input images will be partially undisplayed.
Communication Protocol
Note: The difference from the traditional SPI protocol is that the data line sent from the slave to the host is hidden because it only needs to be displayed. Please refer to Datasheet Page 66 for the table.
RESX is reset, it is pulled low when the module is powered on, usually set to 1;
CSX is the slave chip select, and the chip will be enabled only when CS is low.
D/CX is the data/command control pin of the chip, when DC = 0, write command, when DC = 1, write data.
SDA is the transmitted data, that is, RGB data;
SCL is the SPI communication clock.
For SPI communication, data is transmitted with timing, that is, the combination of clock phase (CPHA) and clock polarity (CPOL):
The level of CPHA determines whether the serial synchronization clock is collected on the first clock transition edge or the second clock transition edge. When CPHA = 0, data acquisition is performed on the first transition edge;
The level of CPOL determines the idle state level of the serial synchronous clock. CPOL = 0, which is a low level.
As can be seen from the figure, when the first falling edge of SCLK starts to transmit data, 8-bit data is transmitted in one clock cycle, using SPI0, bit-by-bit transmission, high-order first, and low-order last.
Sample Demo
Library Installation
When using the LVGL library, you need to modify the configuration of the corresponding screen, it is recommended to directly use the "lib" library in the sample demo. Copy the library folder to the C:\Users\xxxxx\Documents\Arduino\libraries directory, and note that xxxx represents the user name of your computer.
ST7789V2 Screen Example
Arduino
The provided lib is in "lib\TFT_eSPI_Setups\Setup208_ST7789.h", and you can set the parameters.
Open Arduino IDE, and click on File -> Examples -> TFT_eSPI (in the customization library at the bottom) -> Test and diagnostics -> Colour_Test demo, then compile and upload.
ESP-IDF
Provides esp-idf-st7789 example of ESP-IDF driver ST7789V2.
Required ESP-IDF version is ESP-IDF V5.x.
Arduino
LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library designed for embedded systems and is ideal for use on resource-limited devices such as the ESP32-S3. In the sample demo, you can use LVGL_Arduino to quickly verify the screen effect.
LVGL Usage
When developing with the LVGL framework, you can call the components according to the component descriptions provided by LVGL8.3 Documents.
The following is LVGL example in the Arduino IDE.
Customized Button PWR_Key
This function button is designed to solve the problem of peripheral buttons with fewer functions, the working principle is as follows:
After pressing the PWR can make the battery power supply, at this time the system starts, the system should be defined GPIO35 continuous output high level to maintain the effect of the power-up, at this time to release the PWR will not power-off. PWR at this time the function that can be pulled down GPIO36, the system detects the GPIO36 pressed, continuous press and long press, you can customize the shutdown control operation, such as long press mode the system to set the GPIO35 low level Disconnect the battery power supply, you can complete the multi-function button use.
Voltage Divider
The board is reserved for voltage divider, use GPIO1 to read the analog value and learn the battery voltage through the voltage divider formula.
PCF85063 RTC Clock Chip
PCF85063 RTC clock provides functions such as timed tasks, accurate time tracking, and low-power wake-up and so on.
The RTC function can be easily enabled with the sample demo.
QMI8658 6-Axis IMU
QMI8658 provides applications such as posture detection, gait analysis, fall detection, and so on. Also, you can integrate it into your smart wearable devices.
You can verify multi-axis acceleration change through the sample demo, and the data can be observed directly through the view meter.
Buzzer Function
Timed tasks, timed alarms and other applications can be realized by combining RTC.
Resource
Document
- Schematic
- ESP-IDF Website
- arduino-esp32
- ESP32 Arduino Core’s documentation
- MicroPython Development Tutorial
3D Drawing
Datasheet
Demo
Software
FAQ
Please check whether the version of esp32 hardware library is 2.0.11, after confirming the version, select the corresponding development board to compile and burn in, please note that after selecting the corresponding development board through Tools, the option of Zigbee will not appear, or else the environment of esp32 hardware library is not effective.
{{{5}}}
1. When you find the board is hot, please make sure to pull down the GPIO33 first, and pull down the buzzer pin, otherwise the passive buzzer is like a resistor that consumes power all the time, which leads to the LDO current pressure is very hot.
2. If you also use WiFi/Bluetooth function, hot is unavoidable, ESP32-S3 open wireless function related to power consumption will increase, resulting in heat.
3. It is not recommended to turn on the PSRAM function, if it is turned on, in the ESP-IDF and other scenarios may not pull down the GPIO33 or affect the display, at this time, we recommend removing the buzzer resistor to disconnect its function.
4. In the Arduino IDE environment, turn on the PSRAM, use external Flash, pull down the GPIO33, it will still cause a lot of heat, it is recommended to use a low-power program to play!
{{{5}}}
The LCD screen display chip used in this product is ST7789V2, and the touch chip is CST816T, there are drivers for the two chips in the libs we provided, for the display driver, please refer to TFT_eSPI enable, and for the touch driver, please refer to the Arduino_LVGL sample demo.
{{{5}}}
This product is a development board and is not an end product. The product ecology is ESP32 core, and the ecology is very mature, the development environment is also very friendly, we do not assist in modifying the code, so creators, and geeks can play with their own DIY ability, if you have any questions you can ask the development engineers to answer for you.
If you think our products are good, and hope to batch customized hardware, customized shell, customized software, etc., welcome to contact the development engineers!
{{{5}}}
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)