搜索
bottom↓
回复: 16

08 墨水屏开发及烧写环境搭建

[复制链接]

出10入18汤圆

发表于 2021-2-18 15:18:19 | 显示全部楼层 |阅读模式
本帖最后由 qtechzdh 于 2021-2-18 15:49 编辑

对于想进行代码编写的,可以进行开发环境搭建,如果只需要使用屏幕,无需搭建开发环境,直接跳到第6节,离线烧写即可。
1         涉及到的软件
ArdunioIDE,下载链接
https://www.arduino.cc/en/software
ESP32烧写工具
https://www.espressif.com/en/support/download/other-tools
2        硬件定义
硬件定义如下:
        供电开关

        按键定义如下

3        Arduino环境搭建
3.1        原理
Arduino是开发环境,默认是针对标准版的arduino进行开发,如果要支持ESP32开发,需要下载esp32的开发环境和编译器、工具等,这部分本文中称其为ESP32 API包。

3.2        安装ARDUINO
没什么可说的。一路NEXT即可。
3.3        安装esp32 API包
ESP32的包可以使用arduinoIDE种根据json连接自动获取,但是这种方式受限于网络状态,有时候可能比较慢。
第二种方式是直接从其他途径(如百度网盘GITHUB)等先把离线安装包下载到本地,再手动配置。
3.3.1        方式1
添加json源:
https://dl.espressif.com/dl/package_esp32_index.json
具体参考:
https://blog.csdn.net/finedayforu/article/details/108464784
此方式下载根据网络环境,可能比较慢。
完成后即达到编译esp32的需求
3.3.2        方式2
直接下载安装包。
(gitcloneESP32的IDF包方式)
https://blog.csdn.net/agony_isolate/article/details/110739711
(直接离线下载IDF包)
https://www.qutaojiao.com/1244.html
需要注意的是自动安装和手动安装的路径是不一样的,自动安装的路径一般在用户文件目录的appdata里面。
4        墨水屏环境搭建
对于想进行代码编写的,可以进行开发环境搭建,如果只需要使用屏幕,无需搭建开发环境,直接跳到第6节,离线烧写即可。
4.1        安装依赖的库
代码里面调用了不少第三方库,名称及版本如下。编译前需要手动更新。
        Arduino-sht  1.1.0
        ArduinoJson 6.16.1
        I2C BM8563 RTC
        QRcode 0.0.1
4.2        Spiffs插件安装
目前代码使用了spiffs的文件系统,文件系统使用spiffs工具进行文件传输,需要更新spiffs插件。请参考如下链接。
注意:Arduino需要的是.jar而不是java源码。操作过程
https://blog.csdn.net/leonvan0809/article/details/104614403
下载链接:
https://github.com/me-no-dev/ard ... in/releases/tag/1.0
更新插件后,可以在菜单->工具中找到ESP32 Sketch Data Upload菜单项。
4.3        开发板设置和分区设置
4.3.1        分区设置
分区表用来设置esp32的各个软件部分在Flash的分布和大小。保存方式为.csv文件。存储位置如下:
C:\Users\ThinkPad\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions
(注意,自动下载的ESP32IDF和手动添加的路径有差异,手动添加的请关注\esp32\hardware\esp32\1.0.4\tools\partitions)
复制一份default,更名为default_EPD.csv(或直接使用代码压缩包的文件)

打开后更改为:
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x280000,
spiffs,   data, spiffs,  0x290000,0x100000,
(注意,此文件在代码更新过程中可能有更新,以代码打包文件夹中的文件为准)
4.3.2        开发板选择
Arduino提供了很多开发板的选型以完成Flash的配置,本项目可以手动建立一个,方便在菜单中选择。
C:\Users\ThinkPad\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4
此文件下的boards.txt配置了Arduino的flash分区的partition的文件路径和菜单显示项目。
可以根据下面图片,找到此位置,添加三行内容。
注意,中间一行需要和partitions文件夹下建立的csv文件名一致。

        添加完毕,保存关闭后,打开Arduino,会自动识别新添加的内容,按照如下图进行更新(注意,COM根据电脑实际情况选择)。

5        初步开发
以上工作完成后,可以进行下一步的开发,在开发代码之前,还有几个问题需要处理:
5.1        SPIFFS文件传输
代码中仍然使用了SPIFFS的文件,需要将文件下载到屏幕上。每个版本的代码中已经设计好了data文件夹,直接启动菜单项,按住复位+KEY0,先松开复位,再松开KEY0,即可进行下载。
注意spiffs下载时,任何串口工具都应该关闭,包括arduino的串口监视器



5.2        字库下载
字库是单独存储在Flash种的,需要使用EPS32 FLASH TOOLS工具烧写。文件分布如下:
fontcn12.bin                0x590000
fontcn8.bin                0x710000
fontcn16.bin                0x390000
fontnum48.bin                0x790000       
下载和操作spiffs一样。
(如果直接把代码对应版本的16M的Bin烧录进去,此部分字库即已经烧录进去了,无需本步。)

5.3        代码编辑和烧写
Spiffs和字库烧写完毕后,可以进行代码的开发。开发按照arduino的方式即可。
        硬件没有设计自动启动烧写,需要手动按键。按键方式同样和spiffs一样,先按住复位+key0,再松开复位,然后松开KEY0。
6        离线烧写
屏幕固件会以bin文件方式发布,并且打包为16M的存储格式,直接烧写进入芯片FLASH。
烧写方法:
打开Flash Download Tools 操作软件按照下图操作。


点击START后,按住复位+KEY0,松开复位,再松开KEY0,即可进入烧写状态。烧写过程可能持续几分钟。
7        设备操作
7.1        设备配置
设备复位后需要记录ID,为16进制字符串,长度在10-12个字符。请在小程序中添加。
注意,需要先在小程序添加后再进行WIFI配置。否则无法正确获取到数据。
7.2        设备操作
设备操作目前流程尚未固定目前版本(207操作如下)
        复位:设备重新启动
        KEY0:短按,切换显示选择,长按,未定义。
        KEY2:         短按,立刻获取留言和todo信息,并显示。
        KEY2:长按,进入WIFI初始化状态。
8        小程序
小程序二维码为:


9        汉字显示
字库处理
UTF8转Unicode  系统内置了8/12/16的全字库和48号的数字字库。

10        图片提取
图片取模方式为横向取模,字节倒序。


11        字库提取



12        一些其他资料
12.1        资源
字体大全
https://www.dafont.com/theme.php ... amp;text=0123456789
12.2        屏幕操作的注意事项
X可以写为非8整位置
Y可以写为非8整位置
更新需要为8的整数倍位置

13 todo 墨水屏的初衷是实现todo的关联
关联todo,需要自行注册todoist的账,使用网页、chrome插件,安卓app或者苹果app的任意一个软件。并且在小程序->我的->todo绑定中,根据提示,获取到todo的token,并复制到下面文本框种(注意,todo的token包括整行字符,包括Bearea字符)



===============网盘资料====================
https://pan.baidu.com/s/1IffNfh15OcE3HVzq0hVtMA
提取码4EPD

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-2-18 17:30:29 | 显示全部楼层
谢谢楼主的资料

出0入0汤圆

发表于 2021-2-18 18:37:15 | 显示全部楼层
谢谢楼主的资料,楼主辛苦

出0入0汤圆

发表于 2021-2-18 20:52:50 | 显示全部楼层
v2.07 bug反馈。  短按KEY2有时候同步不了TODO和留言

出0入0汤圆

发表于 2021-2-18 21:12:26 | 显示全部楼层
多谢,楼主辛苦了....

出10入18汤圆

 楼主| 发表于 2021-2-18 21:27:02 来自手机 | 显示全部楼层
Kengcc 发表于 2021-2-18 20:52
v2.07 bug反馈。  短按KEY2有时候同步不了TODO和留言

收到,还是网络问题呢

出0入4汤圆

发表于 2021-2-19 09:05:58 | 显示全部楼层
连接后发现电脑没有usb驱动,上传一个usb驱动

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2021-2-19 20:33:19 | 显示全部楼层
好耍,等上车,等新货。

出0入4汤圆

发表于 2021-3-13 15:42:24 | 显示全部楼层
为啥我的C:\Users\CURRENT_USER\AppData下  没有楼主那没路径? Arduino已经安装好了的。我的是win10系统

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入18汤圆

 楼主| 发表于 2021-3-13 16:21:05 | 显示全部楼层
fbwcpu 发表于 2021-3-13 15:42
为啥我的C:%users\CURRENT_USER\AppData下  没有楼主那没路径? Arduino已经安装好了的。我的是win10系统 ...

直接搜一下这个文件夹,看看他在哪儿,有可能装在program file文件夹了。

出20入0汤圆

发表于 2021-3-14 08:04:16 | 显示全部楼层
todo是不是免费的?

出0入0汤圆

发表于 2021-5-7 16:27:01 | 显示全部楼层
收到屏幕,接上电源后,有红色指示灯亮,但是屏幕还是没更新,按REST后,也没有显示序号,如何处理?

出10入18汤圆

 楼主| 发表于 2021-5-7 19:38:33 | 显示全部楼层
windboy 发表于 2021-5-7 16:27
收到屏幕,接上电源后,有红色指示灯亮,但是屏幕还是没更新,按REST后,也没有显示序号,如何处理? ...

电源开关打开了吗

出0入0汤圆

发表于 2021-5-8 22:31:02 | 显示全部楼层
反馈个问题,就是刚刷新完界面很清晰,慢慢的就越来越浅。
另外遇到过两个bug,电池刚刚充满电,大约1个小时候,突然界面花屏,按键都不管用了,然后用电源线充电后,屏幕恢复显示终端号的界面,然后显示出电源电压从4.2V,突然间变为了3.1V。’
第二个就是会在热点界面达到几个小时后跳转到日历,还有就是偶尔会跳转到了显示终端号的界面

出0入0汤圆

发表于 2021-9-30 09:55:09 | 显示全部楼层
没有小程序和后台的源码吗?

出0入50汤圆

发表于 2022-1-8 12:02:01 | 显示全部楼层
楼主,按一楼过程配完,209的版本编译后,没起来,可能是什么原因?
详细日志如下,不停重启打印:

System Start up
Wakeup was not caused by deep sleep: 0
----------Start_Init_EPD()-----------
Init Epd Port
HSPI Init OK
E (31) ledc: requested frequency and duty resolution can not be achieved, try reducing freq_hz or duty_resolution. div_param=128
Guru Meditation Error: Core  1 panic'ed (IntegerDivideByZero). Exception was unhandled.

Core  1 register dump:
PC      : 0x4000d099  PS      : 0x00060530  A0      : 0x800e79a2  A1      : 0x3ffb26a0  
A2      : 0x0f424000  A3      : 0x00000000  A4      : 0x00000000  A5      : 0x00000000  
A6      : 0x00060520  A7      : 0x00000001  A8      : 0x00000001  A9      : 0x00000000  
A10     : 0x00000000  A11     : 0x0f424000  A12     : 0x00060520  A13     : 0x3ffb2640  
A14     : 0x007bdd74  A15     : 0x003fffff  SAR     : 0x00000001  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x4008b45d  LEND    : 0x4008b46d  LCOUNT  : 0xfffffffe  


Backtrace:0x4000d096:0x3ffb26a00x400e799f:0x3ffb26c0 0x400e269d:0x3ffb2700 0x400d8a77:0x3ffb2740 0x400d2a07:0x3ffb2760 0x400d79ad:0x3ffb27a0 0x400d7c8f:0x3ffb27c0 0x400e485e:0x3ffb2820


出10入18汤圆

 楼主| 发表于 2022-1-9 10:45:14 | 显示全部楼层
span42 发表于 2022-1-8 12:02
楼主,按一楼过程配完,209的版本编译后,没起来,可能是什么原因?
详细日志如下,不停重启打印:

你下载一个16M的固件试试。有可能字库不全或者boot区配置不一样
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-3 04:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表