Update Readme.txt

This commit is contained in:
bitshen
2025-11-05 23:41:27 +08:00
committed by GitHub
parent a364d530ac
commit ec1fd3d3f4

View File

@@ -1,81 +1,96 @@
# 盒马时钟
盒马时钟
--------
---
此项目利用超市淘汰下来的价签的硬件,实现一个简单的时钟:
显示时间与日期
显示农历与节气和节假日
显示电池电量
蓝牙对时
蓝牙OTA
## 项目简介
本项目利用超市淘汰下来的 **盒马价签** 硬件,实现一个功能简单但实用的电子时钟,具有如下功能:
* ✅ 显示时间与日期
* ✅ 显示农历、节气与节假日
* ✅ 显示电池电量
* ✅ 蓝牙对时
* ✅ 蓝牙 OTA 更新
---
## 编译与烧写
请先下载 DA14585 的 [SDK](https://www.renesas.com/en/document/swo/sdk60221401-da1453x-da145856 "SDK") 包,目前使用 **6.0.22.1401** 版本。
1. 将本项目放置在:
```
SDK_PATH/projects/target_apps/ble_examples
```
2. 使用Keil打开项目进行编译。
3. 编译完成后:
* **调试模式运行一次**,固件会自动写入 Flash
* 或者使用 **SmartSnippets Toolbox** 将固件下载到 RAM 运行一次也可。
---
## 蓝牙对时
项目内置页面提供 **Web Bluetooth** 功能,可用于手动对时:
* 固件每隔 **整十分钟** 广播一次,持续 **30秒**
* 广播状态下,屏幕显示蓝牙图标与设备名后缀;
* 打开页面点击 “连接”,选中设备后,按 “对时” 即可完成同步。
![控制台](./images/ctrl.png)
首次上电会打开配对页面,扫码跳转网页可以进行配对。
![配对提示](./images/peiwang.png)
---
## 关于盒马价签
本项目使用到的盒马价签屏幕类型如下:
| 尺寸 | 颜色 | 屏幕连接方式 | 型号 | 主控芯片 | 分辨率 | 拆解难度 | LED | 测试点文件 |
| ------ | --- | ------ | ----------------- | ----------------- | ------- | ---- | --- | --------------- |
| 2.13 寸 | 黑白 | 焊接 | HINK-E0213A41/A55 | IL3897 / SSD1675B | 212×104 | 困难 | 有 | pinout_1/0.xlsx |
| 2.13 寸 | 黑白 | 插座 | OPM021B1 | IL3895 / SSD1673A | 250×122 | 困难 | 有 | pinout_0.xlsx |
| 2.13 寸 | 黑白红 | 焊接 | HINK-E0213A67 | IL3897 | 250×122 | 困难 | 三色 | pinout_0.xlsx |
| 2.9 寸 | 黑白红 | 插座 | HINK-E029A10 | IL3897 | 296×128 | 容易 | 有 | pinout_0.xlsx |
编译与烧写
----------
---
请先下载DA14585的SDK包。目前使用的版本是6.0.22.1401。
将本项目放置在SDK_PATH/projects/target_apps/ble_examples下面然后打开项目编译即可。
编译完成后以调试模式运行一次固件会自动写入Flash中。
或者使用SmartSnippets Toolbox将固件下载到RAM中运行一次即可。
### Flash存储信息
#### 屏幕引脚配置(地址 `0x39000`
蓝牙对时
--------
示例:
这里使用web bluetooth实现了一个简单的网页来设置时间。
为了省电,固件每隔整十分钟广播一次,持续半分钟。广播时,屏幕会显示蓝牙图标和设备名的后缀。
此时点击页面上的"连接"按钮,在弹出的页面选择对应的设备即可连接上。再点"对时"按钮完成对时。
```
09 01 FF FF FF FF FF FF 21 22 10 01 20 07 11 23
CS ?? RST CLK SDI DC BUSY PWR
```
* 第一个字节 `09`:屏幕类型
* 第二个字节 `01`:引脚配置启用标志(非 `01` 表示无效)
关于盒马价签
------------
#### 屏幕分辨率等信息(地址 `0x3a000`
我用过的有三种:
2.13寸黑白
第一种:
屏是直接焊接到主板上的,型号: HINK-E0213A41/A55, 主控IL3897分辨率212x104。
另外这种屏有少数用的主控是SSD1675B。这两种主控的LUT格式是不一样的。
很难无损拆解需从后盖处拆起。带一个LED空位。
此种型号有两种电路板:
5个测试点: pinout_1.xlsx
6个测试点: pinout_0.xlsx
示例:
第二种:
屏通过插座连接到主板上,型号: OPM021B1, 主控IL3895/SSD1673A分辨率250x122。
这种主控貌似没有内部OTP需要写入LUT才能工作。
很难无损拆解需从后盖处拆起。带一个LED空位。
此种型号的电路板:
6个测试点: pinout_0.xlsx
```
00 25 00 00 92 fa a8 fe 00 01 80 00 28 01 04 00
0080 0128 128x296 BWR
```
2.13寸黑白红:
屏是直接焊接到主板上的,型号: HINK-E0213A67主控IL3897分辨率250x122。
很难无损拆解需从面板处拆起。自带一个三色LED。
6个测试点: pinout_0.xlsx
---
2.9 寸黑白红: pinout_0.xlsx
屏通过插座连接到主板上,型号: HINK-E029A10, 主控IL3897分辨率296x128。
这个尺寸的价签比较好拆卡扣结构。带一个LED空位。
6个测试点: pinout_0.xlsx
这批价签看来都是从OTP启动的。但OTP里面放的只是一个二级BootLoader还是会从Flash加载APP启动的。
Flash中的固件符合SUOTA格式。
Flash的0x39000处存放有墨水屏所使用的IO的信息:
09 01 FF FF FF FF FF FF 21 22 10 01 20 07 11 23
CS ?? RST CLK SDI DC BUSY PWR
第一个字节"09"是所用屏的类别。固件内置了十几种屏的驱动,根据这里的类别来选择。
第二个字节"01"指示后面有IO的配置。非01的值则忽略后面的配置。
Flash的0x3a000处存放有墨水屏的分辨率等信息:
00 25 00 00 92 fa a8 fe 00 01 80 00 28 01 04 00
0080 0128 128x296 BWR
40 1f 00 00 f0 70 18 01 00 01 7a 00 fa 00 fc 07
007a 00fa 122x250 BWR
c4 0a 00 00 1a 4f ae 5a 00 00 68 00 d4 00 04 00
0068 00d4 104x212 BW
原版的固件,不知道什么原因,无法用蓝牙搜索到。否则可以无损更新固件了(但大多数价签的电池都是没电的,还是得拆开)。
## 其他说明
* 原版价签固件存放在 Flash 的 SUOTA 区域;
* 大多数价签使用 OTP 启动器,但会从 Flash 继续加载固件;
* Flash 中包含屏幕和引脚配置,因此新固件无需硬编码这些信息;
* 原生固件无法被蓝牙扫描到,因此难以通过 OTA 更新;
* 价签多数电池电量不足,因此建议拆机替换供电。