MicroPython[ESP32-S3]:刷入LVGL+MicroPython固件支持16M 外扩flash/8M PSRAM

NO.1
ESP开发板选择

选择ESP32什么型号?

本文选择ESP32-S3 N16R8

也可以选择其他ESP32-S3,区别只是内存闪存性能不同

为什么选择ESP32-S3?

因为在显示LVGL图形时,同时连接WIFI+MQTT等,会造成以下错误提示

没有足够的DMA可用的内存来分配显示缓冲区

RuntimeError: Not enough DMA-able memory to allocate display buffer

mpn
内置sram
内置rom
外扩psram
外扩flash
ESP32-S3-WROOM-1-N4
512K
384K
0M
4M
ESP32-S3-WROOM-1-N8 512K 384K 0M 8M
ESP32-S3-WROOM-1-N16 512K 384K 0M 16M
ESP32-S3-WROOM-1-N4R8 512K 384K 8M 4M
ESP32-S3-WROOM-1-N4R2 512K 384K 2M 4M
ESP32-S3-WROOM-1-N8R2 512K 384K 2M 8M
ESP32-S3-WROOM-1-N16R2 512K 384K 2M 16M
ESP32-S3-WROOM-1-N8R8 512K 384K 8M 8M
ESP32-S3-WROOM-1-N16R8 512K 384K 8M 16M

此图片的alt属性为空;文件名为image-809.png

NO.2
MicroPython固件选择

选择编译好的固件MicroPython+LVGL

刷入到ESP32-S3后,无需再单独引入LVGL,因为固件已默认包含

注意事项

本文有两种固件

一种是lv_micropython_esps3n16r8_color16.bin(色深16)

一种是lv_micropython_esps3n16r8_color32.bin(色深32)

使用 IL9341 驱动时,需要设置颜色深度以匹配 ILI9341,也就是构建固件时就要指定

-DLV_COLOR_DEPTH=16

其他的驱动如ili9488,则使用COLOR_DEPTH=32就好了

-DLV_COLOR_DEPTH=32

本合集主要演示显示驱动ili9488+触摸驱动ft6x36,所以需要下载固件为lv_micropython_esps3n16r8_color32.bin

同时也要注意,MicriPyhton官网的ESP-S3固件

  1. 只支持MicroPython,不支持LVGL

  2. 最高只支持R8N8(外存8M,内存8M),不支持R16N8(外存16M内存8M)

本文的固件是支持R16N8的,不用担心买了高配置,但是只能使用了部分性能的场景

NO.3
屏幕选择

本文使用的显示屏为

3.5寸TFT液晶显示屏模块串口SPI驱动ILI9488带电容触摸RGB320*480

正面展示

此图片的alt属性为空;文件名为image-810.png

反面展示

此图片的alt属性为空;文件名为image-811.png

产品介绍

  • 3.5寸彩屏,支持65K色显示,显示色彩丰富

  • 480X320高清分辨率,带电容触摸功能

  • 采用SPI串行总线,只需几个IO即可点亮显示

  • 带SD卡槽方便扩展实验

  • 提供丰富的示例程序

  • 军工级工艺标准,长期稳定工作

  • 提供底层驱动技术支持

产品参数

名称 参数
SKU
尺寸 3.5(inch)
类型 TFT
驱动芯片 屏幕ILI9488-触摸FT6236
分辨率 480*320 (Pixel)
模块接口 4-wire SPI interface
有效显示区域(AA区) 48.96×73.44(mm)
模块PCB底板尺寸 55.1×96.18(mm)
VCC电源电压 3.3V~5V
逻辑IO口电压 3.3V(TTL)
功耗 约为90mA
产品重量 30(g)

接口定义

序号 标号 引脚说明
1 VCC 电源输入(3.3V~5V)
2 GND 电源地
3 CS LCD片选
4 RESET LCD复位
5 DC LCD总线命令/数据选择
6 SDI(MOSI) LCD SPI 显示总线数据输入
7 SCK LCD SPI 显示总线时钟信号
8 LED LCD背光控制(高电平点亮)
9 SDO(MISO) LCD SPI 显示总线数据输入出
10 NC/3V3
11 CTP-SDA 电容触摸   数据输出
12 CTP-SCL 电容触摸   时钟信号
13 CTP-INT 电容触摸   中断信号
14 CTP-RST 电容触摸   片选信号

注意事项

一定要买屏幕时候,看清屏幕支持的参数

  1. 串口SPI

  2. 驱动ILI9488

  3. 触摸FT6236

  4. 480*320

因为有些屏幕外观一样,功能一致,但是驱动不一样,引脚不一样

要跟着本合集运行项目,建议保持显示驱动,触摸驱动,尺寸一致

NO.4
其他配件

除了上述主体物品(ESP32-S3,3.5寸触控屏)外

还需要以下物品

  1. USB数据线(建议在买ESP32-S3的时候搭配卖家的配套USB一起买,保证可以正常可以传输数据,而不是只有充电的作用)

  2. 杜邦线(母对母)(用来连接ESP32-S3和触控屏)

此图片的alt属性为空;文件名为image-812.png

NO.5
Tips

简单总结

本文记录本合集需要准备的实物物品

  1. ESP32-S3 R16N8(其他ESP32-S3 R8N8 N8R2也行,但是没有测试过)

  2. 3.5寸TFT液晶显示屏模块串口SPI驱动ILI9488带电容触摸RGB320*480(重点驱动ILI9488+触摸ft6x36)

  3. USB数据线(可传输数据,用来刷入固件)

  4. 杜邦线(母对母)(需要延长,可以另外再买母对公,公对公)


固件

ESP32-S3 R16N8 +MicroPython+LVGL固件(COLOR_DEPTH=32)

注意这个固件MicroPython官方和LVGL官方都没有提供,只有网友自己编译的,市面上很难找到

成本预算

以下为我在淘宝买的物品价格

物品名称
参考价格
备份
ESP32-S3 R16N8开发板+USB数据线
59元+8元

8元为快递费用

3.5寸TFT触控屏(电容屏)

59元+5元
5元为快递费用
杜邦线(母对母)
1.93元
免运费
总计
132.93元
仅供参考

初步效果

  1. 当前时间显示+天气预报(HTTP+中文字体

  2. 哔哩哔哩计数器(LVGL GIF动图)

  3. 网站实时在线人数(LVGL PNG图片+MQTT)

  4. 温湿度仪表盘(LVGL小摆件+动画)

此图片的alt属性为空;文件名为image-813-1024x655.png

END