Air8101 LuatOS固件和Demo
作者:王棚嶙 | 最后修改:2026-05-08
特别说明
ram总大小:16MB
用户可用ram:2MB左右Lua 内存+200KB左右系统内存
可通过代码准确的获取可用ram:
查询 Lua 虚拟机内存(默认) local total_lua, used_lua, max_used_lua = rtos.meminfo("lua")
查询系统内存 local total_sys, used_sys, max_used_sys = rtos.meminfo("sys")
详细说明见:LuatOS 内存(RAM)使用分析 - 合宙模组资料中心
一、最新版本固件和demo
V2014
-
add: 添加106号固件,Air8101B模块型号的可用固件,拥有文件系统4096k,脚本区512k的分区。
-
add: lcd, rgb支持自定义命令
-
add: lcd, 添加conf中可配置lcd_clk_pin和lcd_sda_pin
-
add: videoplayer, 支持视频播放核心库,当前仅104/105/106号固件支持。
-
add: audio, 支持tts播放
-
add: mreport, 支持遥测功能
-
add: airui, 优化pc模拟器界面超出屏幕时自动缩放到90%屏幕处;支持拖拽自动缩放画面
-
add: airui, button增加get_text和set_disabled子方法
-
add: airui, 增加刷新消息重试超时时间以支持画面刷新重试
-
add: airui, 增加获取当前airui状态的接口"status"
-
add: airui, 增加设置图片旋转中心点的子方法
-
add: airui, 增加shape组件,当前支持直线、圆形、椭圆、矩形/圆角矩形绘制
-
update: log, 更改soc_log的输出格式
-
update: hmeta, 开机输出打印模组型号和硬件版本
-
update: lcd, 打开jpg解码功能
-
update: airui, 仅在调试模式下记录未处理消息的重试信息
-
update: airui, 所有组件的xywh位置自动向下取整
-
fix: uart, 修复UART驱动同步/异步TX路径竞态条件
-
fix: airui, 使用LUAT_USE_AIRUI_DISPLAY_BUFFER_SIZE_DIVISOR配置airui的缓存画面为一整个屏幕,解决组件滑动时分离问题
-
fix: airui, 组件采用共享缓存解决销毁组件被访问的问题和定位
-
fix: airui, 修复键盘预览框在键盘被销毁时没有一起被销毁
-
fix: airui, 修复键盘auto_hide失效的问题
-
fix: airui, 通过seq方案部分修复ui刷新消息丢失的问题
-
remove: airui, 彻底移除xml的支持
不同版本的区别
101号固件:主要以摄像头功能为主,支持camera(USB和DVP摄像头的拍照+录像功能)+TF卡存储+BLE蓝牙和airlink传输。以及各种加密和编解码库。进行搭配工作,不支持UI功能和矢量字体库。
102号固件:主要以UI操作功能为主:支持camera(只支持USB和DVP摄像头的拍照+大图片解码功能)+支持exeasyui+hzfont+TF卡存储+BLE蓝牙和airlink传输。
103号固件:IPC功能,具体功能暂定。
104号固件:主要以UI操作功能为主:支持camera(只支持USB和DVP摄像头的拍照+大图片解码功能)+支持exeasyui+hzfont+TF卡存储+BLE蓝牙和airlink传输。新增airUI核心库
105号固件:UI畅玩板专用,去除了蓝牙、camera、fft、fatfs、gmssl、hmeta等核心库,给AirUI预留足够的空间。
106号固件:Air8101B模块型号的可用固件,拥有文件系统4096k,脚本区512k的分区。
| 合宙wifi主推型号与固件版本对应关系 | Air810I | Air8101B | |||||
|---|---|---|---|---|---|---|---|
| 101号 | 102号 | 103号 IPC专业,待定 |
104号 | 105号 | 106号 | ||
| 脚本区 | 代码空间(客户可用) | 512KB | 512KB | 512KB | 512KB | 512KB | |
| fs | 文件系统(客户可用) | 256KB | 2M | 1752KB | 2.4M | 4M | |
| ram | 运行内存(客户可用) | 1.5M | 1.5M | 1.5M | 1.5M | 1.5M | |
| adc | 模数转换 | √ | √ | √ | √ | √ | |
| airlink | 设备间通讯协议 | √ | √ | √ | × | √ | |
| airUI | airui 人机交互处理界面 | × | × | × | × | √ | |
| audio | 音频多媒体核心库 | √ | √ | √ | √ | √ | |
| bit64 | 32位数据对64位数据的运算 | √ | √ | √ | √ | √ | |
| ble | 蓝牙功能 | √ | √ | √ | × | √ | |
| camera | 摄像头 | √ | √ | √ | × | √ | |
| can | can操作库 | √ | √ | √ | √ | √ | |
| crypto | 加解密和hash函数 | √ | √ | √ | √ | √ | |
| errDump | 错误上报 | √ | √ | √ | √ | √ | |
| fastlz | FastLZ压缩 | √ | √ | √ | √ | √ | |
| fatfs | SD&TF卡的接口 | √ | √ | √ | × | √ | |
| fft | 傅里叶变换(非必须) | √ | × | × | × | √ | |
| fota | 底层固件升级 | √ | √ | √ | √ | √ | |
| fskv | kv数据库,掉电不丢数据 | √ | √ | √ | √ | √ | |
| ftp | ftp 客户端 | √ | √ | √ | √ | √ | |
| gpio | GPIO操作 | √ | √ | √ | √ | √ | |
| gmssl | 国密算法(SM2/SM3/SM4) | √ | √ | √ | × | √ | |
| hmeta | 硬件元数据 | √ | √ | √ | √ | √ | |
| http | http 客户端 | √ | √ | √ | √ | √ | |
| httpsrv | http服务端 | √ | √ | √ | √ | √ | |
| hzfont | 合宙字库 | × | √ | √ | √ | √ | |
| i2c | I2C操作 | √ | √ | √ | √ | √ | |
| iconv | iconv操作(非必须) | √ | × | × | × | √ | |
| io | io操作(扩展) | √ | √ | √ | √ | √ | |
| iotauth | iot鉴权库, 用于生成各种云平台的参数 | √ | √ | √ | × | √ | |
| iperf | 吞吐量测试 | √ | √ | √ | × | √ | |
| json | json生成和解析库 | √ | √ | √ | √ | √ | |
| lcd | lcd驱动模块 | √ | √ | √ | √ | √ | |
| lcd | lcd解码大图片 | √ | √ | √ | √ | √ | |
| little f | NAND flash操作 | √ | √ | √ | √ | √ | |
| log | 日志库 | √ | √ | √ | √ | √ | |
| lora2 | lora2驱动模块(支持多挂, 非必须) | √ | √ | √ | × | √ | |
| mcu | 封装mcu一些特殊操作 | √ | √ | √ | √ | √ | |
| miniz | 简易zlib压缩 | √ | √ | √ | √ | √ | |
| mqtt | mqtt客户端 | √ | √ | √ | √ | √ | |
| netdrv | 网络设备管理 | √ | √ | √ | √ | √ | |
| os | os操作 | √ | √ | √ | √ | √ | |
| otp | OTP操作库 | √ | √ | √ | √ | √ | |
| pack | 打包和解包格式串 | √ | √ | √ | √ | √ | |
| pins | 管脚复用 | √ | √ | √ | √ | √ | |
| pm | 电源管理 | √ | √ | √ | √ | √ | |
| protobuf | ProtoBuffs编解码(非必须) | √ | × | × | × | √ | |
| pwm | PWM模块 | √ | √ | √ | √ | √ | |
| rsa | RSA加密解密(非必须) | √ | × | × | × | √ | |
| rtc | 实时时钟 | √ | √ | √ | √ | √ | |
| rtos | RTOS底层操作库 | √ | √ | √ | √ | √ | |
| socket | 网络接口 | √ | √ | √ | √ | √ | |
| spi | spi操作库 | √ | √ | √ | √ | √ | |
| string | 字符串操作函数 | √ | √ | √ | √ | √ | |
| sys | sys库 | √ | √ | √ | √ | √ | |
| sysplus | sys库的强力补充 | √ | √ | √ | √ | √ | |
| tp | 触摸屏 | √ | √ | √ | √ | √ | |
| tts | 文字转语音 | × | × | × | × | √ | |
| uart | 串口操作库 | √ | √ | √ | √ | √ | |
| u8g2 | u8g2 | √ | √ | √ | × | √ | |
| websocke | websocket客户端 | √ | √ | √ | √ | √ | |
| wdt | watchdog操作库 | √ | √ | √ | √ | √ | |
| wlan | 局域网操作 | √ | √ | √ | √ | √ | |
| xxtea | xxtea加密解密(非必须) | √ | × | × | × | √ | |
| zbuff | c内存数据操作库 | √ | √ | √ | √ | √ | |
二、历史版本固件
V2012
-
add: 添加105号固件,UI畅玩板专用,去除了蓝牙、camera、fft、fatfs、gmssl、hmeta等核心库,给AirUI预留足够的空间
-
add: audio, 添加音频多媒体核心库
-
add: tp, 支持gt927触屏
-
add: airui, 支持table插入行或者列; 支持跳转或者跑马灯两种自动滚动方式
-
add: airui, 增加table组件支持样式设置; 增加或者移除一行或者一列
-
add: airui, 增加button、dropdown、keyboard、table、tabview、win组件中字号任意大小的设置能力
-
add: airui, 添加animimg组件
-
add: airui, TabView组件支持获取标签页数量、添加新标签页和移除指定标签页的功能
-
add: airui, table支持边框宽度、单元格文本对齐和垂直对齐属性设置
-
add: airui, 支持lvgl原生旋转功能
-
add: airui, 容器组件增加移动的接口
-
add: miniz, 新增unzip函数,支持目录解压
-
add: airui, 增加video组件,当前只支持mjpg解码
-
add: airui, 给button、image、label增加移动的子方法
-
add: airui, 增加spinner组件
-
update: airui, 优化内存管理
-
update: airui, 优化textarea代码布局
-
update: airui, 调高分配缓存为1/2屏幕,能有效提高旋转屏幕刷新效率
-
update: airui, 调整hzfont的默认缓存数量为1024
-
update: aiui,log, 关闭airui日志系统,减少固件大小
-
update: wlan, STA连接时的状态码调整为和Air8000的状态码统一
-
update: wlan, 获取wifi扫描结果不再刷新旧的数据
-
update: ble, 优化蓝牙断开上报事件
-
update: network,log, TLS握手失败的日志,改成hex值输出
-
update: network,log, 当指定网卡未就绪时,打印一下日志
-
update: websocket,log, 调试日志关闭
-
update: dhcp,log, 隐藏ip4_dhcp_run的周期性日志
-
update: miniz, unzip的目标路径,强制要求必须/结尾
-
update: miniz, unzip解压文件时,将路径分割符一律替换成/,增强zip解压兼容性
-
fix: airui, 修复spi屏幕上出现颜色反转问题
-
fix: airui, 修复animimg组件play播放异常的问题
-
fix: airui, 修复airui长时间计算时会导致真机没有时间喂狗死机的问题
-
fix: airui, 修复键盘预览框光标无法被选择的问题
-
fix: airui, 修复hw循环解码时,硬解码器中间没有释放的问题
-
fix: websocket,请求的headers改成一次性发出,改善对非标服务器的兼容性
-
fix: vfs,mem, 修正/ram/的lsdir无法正常工作的问题
V2010
-
add: rtmp, 检测到netif的link down时,会主动断开链接
-
add: rtmp, rtmp.create接口,增加网络适配器参数绑定
-
add: rtmp, 添加STATE_DISCONNECTED常量,表示RTMP连接已断开
-
add: airui, 支持jpg硬件解码
-
add: airui, 添加win标题对齐方式配置支持
-
add: airui, table组件增加行高设置功能,也支持单独设置列宽
-
update: airui, 支持图片缓存,默认最大1MB缓存大小
-
update: airui, jpg图片支持旋转、透明、缩放等功能
-
update: airui, 下拉框组件增加获取当前内容的子方法
-
update: airui, 添加libjpeg-turbo支持用于PC模拟器的JPEG解码
-
update: airui, 图表组件没有值时默认为空
-
update: airui, wakeup支持配置是否唤醒后自动刷新
-
update: airui, 键盘组件的选字候选框从5%高度提高到10%
-
update: airui, 休眠时增加power_down_lcd参数控制是否关闭lcd电源
-
update: airui, 更新hzfont设置字体大小的底层设计,同时增加button支持自定义字体和大小
-
update: airui, 缓冲区大小调整为2*四分之一屏幕,减少内存占用
-
update: airui, 将XML支持的配置移至LUAT_USE_AIRUI_XML宏下,作为可选配置
-
update: lf, little_flash库, lf.getInfo(flash) 接口,添加擦除最小大小返回
-
update: sfud, 同步更新 sfud.getInfo(flash) 接口,添加擦除最小大小返回
-
update: dac,只支持16bit播放
-
fix: airui, 修复tabview回调函数参数index会始终为nil,而不是页面标签
-
fix: airui, 修复二维码组件设置颜色和大小失效的问题
-
fix: airui, 修复textarea组件处理text文本慢的问题
-
fix: lcd, 增加双缓冲刷新机制,修复屏幕撕裂问题
-
fix: netdrv,ch390, 中断模式数据延迟的问题
-
fix: dac,修复dac dma通道关闭异常的问题
-
fix: dac,修复dac播放异常
V2008
-
add: airui,容器组件增加点击回调子方法
-
add: airui,支持LUAT_USE_AIRUI_MISANS_FONT_16打开airui中点阵字体
-
add: airui,图表组件支持多曲线、坐标设置
-
add: airui,增加标签组件对齐功能,支持左、中、右对齐
-
add: airui,图表组件增加柱状图
-
add: airui,添加二维码组件
-
add: airui,增加键盘组件输入预览功能
-
add: airui,增加hzfont和默认字体同时使用的支持
-
add: airui,增加按钮组件样式设置功能,支持自定义样式属性
-
add: airui,增加图像组件旋转功能,支持设置旋转角度
-
change: airui,优化触摸tp数据处理
-
change: airui,修改键盘组件背景从默认透明改为有颜色;将预览框间距改为0
-
change: hzfont,增加定点计算模式, 解决在没有fpu的单片机渲染速度非常慢的问题
-
change: hzfont,优化抗锯齿算法
-
change: netdrv,ch390,隐藏"lwip待发送到硬件层 xx "的底层日志
-
change: lf,大数组循环擦写添加busy等待,极大程度提升稳定性
-
fix: airui,修复tp在airui中旋转异常
-
fix: airui,修复键盘输入大写字符计算导致越界死机问题
-
fix: airui,修复label组件在hzfont为全局时字体设置失效和hzfont.debug异常
-
fix: airui,修复图表x坐标异常,以及坐标单位遮挡的问题
-
fix: airui,图标回调绑定从AIRUI_EVENT_CLICKED改为AIRUI_EVENT_PRESSED修复pressed_point_id一直为-1的问题
-
fix: tp,修复ft3x68型号tp适配airui异常的问题
-
fix: http,请求失败后超时时间失效,不会触发失败回调
-
fix: http,防御重复close和free
-
fix: spi,接收的时候,指定传输长度,以避免产生多余的时钟
V2006
固件:LuatOS-SoC_V2006_Air8101.zip
固件更新说明 (2026-03-1)
因为flash 空间有限,LuatOS 的功能又太多,一个固件放不下全部的功能,所以必须用不同的固件种类,装载不同的核心库组合
1. airui, 添加lv_font_misans_16字体支持,字符范围为gb2312
2. airui, 添加Chart组件实现
3. airui, 增加airui.debug接口,用于调试airui性能
4. netdrv, openvpn 添加重试参数
5. httpsrv, 真实处理请求的headers,返回到lua层
6. tp, tp.init接口添加direction参数配置
7. tp, tp.init接口添加swap_xy参数配置
8. rtmp,添加stop函数
9. camera, 适配i2cid传入,默认为1
10. airui, 调整自动刷新周期至33ms,也就是每秒30帧
11. airui, 更新14和20号misans字符范围为gb2312,同时支持备用lvgl默认字体
12. airui, 添加多个组件元类型定义,支持组件回调时使用self自引用
13. airui, 修改luatos真机按键LVGL键值和sdl模拟器一致,在模块真机上面也能使用按键功能了
14. http, 隐藏idp日志
15. http,fota, 在fota下载的时候加些打印,打印出长度
16. camera, dvp摄像头没传入i2cid的时候,默认为0xFF
17. fatfs,sdio, 优化初始化gpio的打印
18. sdio,命令响应超时设置1000ms太长了,改成200ms
19. airui, 修复加载hzfont字体时画面卡顿问题,同时添加hzfont调试统计功能,支持字符串渲染耗时统计并输出日志
20. airui, 修复键盘自动隐藏失败的问题
21. airui, 修复win组件点击关闭后关闭整个win而不是标题
22. netdrv,ch390, 修改中断为下降沿触发
23. rtmp, 在重连时会因为chunk_size没有改回默认值128,导致服务器认为连接地址有问题造成重连失败
24. rtmp, 重连连接不成功,需要在连接之前把握手状态初始化一下,顺带把缓冲区也恢复了
25. http, 修复air8101会在http正常关闭连接后执行一次回调,导致死机
26. fatfs,sdio, 8101当sd/tf卡掉电后,再重新挂载,会出现挂载失败重试的问题已修复
27. fota, 实际长度判断偏小,少算了 RBL 头部的几十字节,导致概率出现fota升级失败的问题已修复
28. log, 输出日志时当ticks变成10位之后,就会出现栈内存溢出死机的问题已修复
29. wdt,在lua软狗超时的时候,会出现栈异常重启的问题已修复
V2004
固件:LuatOS-SoC_V2004_Air8101.zip
固件更新说明 (2026-02-6)
因为flash 空间有限,LuatOS 的功能又太多,一个固件放不下全部的功能,所以必须用不同的固件种类,装载不同的核心库组合
1. gpio,增加wakeup功能
2. dac,添加支持dac
3. camera,动态调整h264画质
4. camera,支持DVP摄像头200万静态拍照
5. airlink,添加支持airlink从机功能
6. tp,添加tp.sleep接口,已适配的tp ic:GT911
7. fskv,初始化成功,但读写失败
8. fs,读取fsstat时,luadb的总大小不正确
9. adc,实际返回的值已经是毫伏,不需要*1000了
10. rtc,时区功能未实现
11. can,pins,修复初始化can时tx没有数据
12. can,修正64bit固件取id值出错的问题
13. ble,修复ble 通知 (Notify) 或指示 (Indicate) 开关功能
14. ble,修复描述符handle查找异常
15. ble,修复indicate¬ify 开关异常
16. camera,解决dvp卡死的问题
17. ftp,修复ftp上传大小异常时候返回true问题
18. http,在下载chunked编码格式的文件时,会出现异常关闭链接的情况
19. http,兼容headers中匹配"Content-Length: xxx"格式不标准,导致底层获取不到正确长度
20. http,body数据接收完整之后,没有将检测完整的状态变量同步,导致下载文件结束后认为数据没有接收完,就把文件删除了
21. http,chunked下载文件,headers没有Content-Length时 文件下载失败
22. http,判断响应没有接收完整数据以及是否处于下载模式才会关闭文件并删除
23. pm,io电平不再支持设置
24. dac,使用16bit传输
25. camera,摄像头录像,dvp可以达到21fps的,所以录制帧率需要设置高一些
26. wlan,通知luatos的IP_READY前,先按dhcp的dns服务器信息,调整注册的默认dns服务器
V2002
固件:LuatOS-SoC_V2002_Air8101.zip
固件更新说明 (2026-01-16)
1. 因为flash 空间有限,LuatOS 的功能又太多,一个固件放不下全部的功能,所以必须用不同的固件种类,装载不同的核心库组合
2. 变成1/2/号固件, 满足不同场景的需求
3. 可支持200万像素静态拍照(目前仅USB摄像头)
4. 可支持合宙字库hzfont
5. 可支持USB摄像头,DVP摄像头rtmp推流到合宙音视频后台https://mp.weixin.qq.com/s/m0vAerCI36cLywfN6vq0Zg
6. 更改了整体架构,使得功能空间分配更合理,差分升级只能在同类固件之间进行,v2002今后只能和v20xx的版本固件进行升级
固件后缀编号_101 只能差分升级为新版本的_101号固件
固件后缀编号_102 只能差分升级为新版本的_102号固件
V1xxx版本内核固件无法通过fota升级至V2xxx版本固件,只能通过USB升级
7. 解决了大文件上传失败的问题
8. 解决了BLE蓝牙与录像功能无法共存的问题
不同版本的区别
特别说明
1.v2002版本固件为尝鲜版临时固件,未经过完整的内部测试
2.v2002版本固件暂时未做实际功耗测试,各位在测试中发现功耗相关问题,随时反馈。
3.v2002版本固件暂时未支持音频相关功能,核心原因为Air8101 wifisoc空间较小,后续会在我们的Air8101B wifsoc上实现完整功能,请各位敬请期待,16+16大空间,预计三月与各位见面呢,与Air8101完全兼容。
4. 可支持合宙字库hzfont
5.在该版本固件上,Air8101 wifisoc搭配dvp/usb摄像头向合宙音视频后台进行RTMP推流会出现自动重连失败的情况,下个版本会修复
6.在该版本固件上,Air8101 wifisoc无法做为从机连接合宙的4G模块,下个版本会修复
7.V1xxx版本内核固件 无法FOTA到 V2xxx版本内核固件,只能通过USB升级
101号固件:主要以摄像头功能为主,支持camera(USB和DVP摄像头的拍照+录像功能)+TF卡存储+BLE蓝牙和airlink传输。以及各种加密和编解码库。进行搭配工作,不支持UI功能和矢量字体库。
102号固件:主要以UI操作功能为主:支持camera(只支持USB和DVP摄像头的拍照+大图片解码功能)+支持exeasyui+hzfont+TF卡存储+BLE蓝牙和airlink传输。
不支持录像功能,不支持预览的旋转缩放功能,不支持各类非必要的库。
V1006
固件:LuatOS-SoC_V1006_Air8101.zip
固件更新说明 (2025-08-31)
1. 因为flash 空间有限,LuatOS 的功能又太多,一个固件放不下全部的功能,所以必须用不同的固件种类,装载不同的核心库组合。
2. 变成1/2/3号固件, 满足不同场景的需求
3. USB摄像头支持异步初始化
4. 添加获取ble的mac地址的函数 ble.mac()
5. 调整日志输出格式
6. 不再内部自动控制GPIO7,GPIO13
7. 优化内存分配机制
8. 修复某些情况下psram导致死机重启
9. 修复tf卡遍历子目录获取不到文件大小
10. 优化CH390中断模式,提高传输速率
11. 优化NAPT的兼容性, 优化DHCP兼容性
V1004
固件:LuatOS-SoC_V1004_Air8101.zip
固件更新说明 (2025-06-15)
1. 支持USB摄像头预览功能
2. 支持矢量字体功能,需要通过SPI外挂矢量字库芯片
3. 支持 “AP模式下,允许10路STA同时接入”的功能
4. 修复“USB摄像头启动后,UART1无法使用”的问题
5. 修复“USB摄像头启动后,UART2有额外数据”的问题
6. 修复“特定条件下,wdt功能模块无法自动重启”的问题
V1003
固件更新说明 (2025-04-30)
1. 支持tf卡
2. 支持usb hub
3. 支持录制成mp4文件
4. 支持dvp摄像头
5. 支持通过air780epm联网
6. websocket支持最大32k的payload
7. 加速fota写入速度
V1002
固件更新说明 (2025-02-13)
1. 支持USB摄像头拍照(jpg格式)
2. 支持以太网, 需要搭配LAN8720
3. 支持RGB屏幕
4. http库的默认超时时长变更为1分钟
三、Luatools工具使用教程(点击此处,跳转阅读)
可以通过Luatools工具,对内核固件进行下载,步骤如下
1.打开Luatools工具,点击左上角的 “账户” 按钮,点击 “打开资源下载”(直接打开luatools工具的时候,也会自动弹出)

2.在弹出的窗口中,选择您所需要的内核固件版本,点击 “开始下载”

3.下载完成后,会有提示,点击 “OK”

4.点击 “打开本地资源目录” ,按路径找到已经下载好的内核固件,

