起因
想看下家里服务器和冰箱的功耗,就在淘宝咸鱼在看带电量统计的插座,后来🐟上看到一个智能插座带电量计,远程控制开关功能,貌似是中国移动合家亲的库存产品,才16一个,惠桔X1S,貌似可以接入HA,买了两个
拆机
这个比较容易拆,用小刀按照缝隙往里面切,先切开一个缝,然后用撬片往外撬。
PCB
硬件与固件
忘了拍照了,借用tianqiraf的图
主控芯片是BK7231M,技术参数:
- ARM968E-S (ARMv5TE) CPU (120 MHz)
- 256 KiB SRAM
- built-in 2 MiB SPI flash with XiP
- 802.11b/g/n Wi-Fi
这个模块可以替换成ESP02S,不在本片赘述,本篇就说这怎么0硬件成本接入HA
按照以下点位图连接至串口烧录器,
注意图上标注的Tx,Rx为模块的端口,也就是Tx接入串口烧录器的Rx,Rx接入Tx
连接后插入电脑,下载openshwprojects
这个项目的Release文件解压
打开后如图所示先备份固件,备份的固件放在程序目录的backup文件夹,名字随意取,注意串口速率根据自己的情况调整,我的在115200处可以正常读取再快就不行了
刷入LibreTiny Platform
根据ESPHOME的文档(https://esphome.io/components/libretiny.html)[https://esphome.io/components/libretiny.html]
需要刷入LibreTiny Platform
下载GUI版本的刷写工具https://docs.libretiny.eu/docs/flashing/tools/ltchiptool/
按照如图的选项,转储固件
在刷新自定义固件之前,最好转储设备的库存固件(完整闪存内容)。
- 选择Read Flash选项。如果之前选择了输入或输出文件,它将根据当前时间戳和芯片类型生成转储文件名。否则,单击并选择输出文件
Read flashBrowse
- 选择芯片的“系列”(芯片型号)。如果选择错误的选项,该过程将失败,但设备不会被砖。
- 现在,连接到PC。选择 UART 适配器正在使用的 COM 端口。
- 默认情况下,该工具将尝试读取整个闪存芯片(通常为 2 MiB)。无需更改默认值。
- 点击Start,该工具将尝试连接到所选 UART 端口上的芯片。黑色日志窗口将打印任何警告/错误。dump过程应很快开始
Firmware output files
These files are present in the build directory after successful compilation:
File | Description |
---|---|
firmware.uf2 | UF2 package for UART and OTA upload |
image_bk7231t_app.ota.rbl | Beken OTA package (e.g. OpenBeken) |
image_bk7231t_app.ota.ug.bin | Tuya OTA package (incl. Cloudcutter) |
image_bk7231t_app.0x011000.rbl | App partition - flashable at 0x11000 |
image_bk7231t_app.0x011000.crc | Encrypted app image - not for flashing |
image_bk7231t_app.0x129F0A.rblh | RBL header - not for flashing |
下载固件https://github.com/libretiny-eu/esphome-kickstart/releases/tag/v23.12.15 选择 kickstart-bk7231n-2023-12-15.uf2 |
vim docker-compose.yml
version: "3"
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome:latest
volumes:
- ./configs:/config:rw
- /etc/localtime:/etc/localtime:ro
restart: always
privileged: false
network_mode: host