本帖最后由 tianqiraf 于 2024-5-11 19:49 编辑
惠桔和家亲X1S智能插座免拆烧录esphome指南来啦!
闲鱼上超便宜的智能插座:惠桔和家亲X1S智能插座,带电量统计,只能用和家亲APP控制。5个75块钱包邮。拆开后发现是cb2s模组,不过芯片用的是BK7231M,目前的烧录工具似乎还没适配,只能当BK7231N来刷,不过也是可以烧录esphome固件,接入HA没有问题。
尝试通过截取MQTT消息的方式接入HA,最后发现还是直接烧录更简单。
拆了两个我算是发现了,这玩意只要拆开了,不管拆得多好,都装不牢固,只能用胶水粘紧,非常难受,最终发现免拆烧录的办法,无私分享出来,希望插座不会涨价。。。
拆开后的芯片图:
免拆烧录指南:
首先至少要拆一个,不然后面就是纯纯瞎戳。这里也放一下拆机后的烧录点位。
重点来了,这个插座里CB2S模组的焊点全都在插座正面,意味着可以从正面打孔来烧录固件。
找根钢丝,用打火机烧热,就可以烫出洞来,多烫几个就可以连成线。位置可以参考我的图。然后用4根杜邦线按上去,从下到上依次是芯片的3V3、GND、TX1、RX1,连上usb转ttl就可以开始烧录。
建议先用itchiptool的get chip info功能验证杜邦线是否正确连接到芯片上的焊点。整个操作比较考验耐心,费手指,没连上的话就多捅捅,熟练了只要15分钟就能完成烫洞+烧录。
(本来只想烫4个洞,但是杜邦线死活按不对位置,没有烧录探针,不知道会不会更方便)
敲重点,准备BK7231flasher(我的版本1.1.6),itchiptool(我的版本4.11.1)。 1. BK7231flasher选择BK7231N型号,备份并烧录; 2. 从esphome上获取后缀为rbl的固件,esphome中开发板型号选generic-bk7231n-qfn32-tuya,配置在后面。 3. itchiptool 写入rbl,起始地址设为0x11000,偏移0x0,写入长度默认不改。 4. itchiptool 写入之前备份的原厂固件,后缀bin,芯片选beken72xx,起始地址0x0,偏移0x0,写入长度0x11000 搞定!
不进行1的话,itchiptool似乎无法刷入其它固件。3、4步的关键可能就在原固件的bootloader,所以刷入rbl后,再用原固件的bootloader来覆盖。 买了5个拆了2个,打孔刷了3个,目前未发现任何问题,而且打孔小,不影响外观,很完美。
其实还有另一种情况: BK7231flasher 写入OPENBK固件;itchiptool 写入rbl, 起始地址0x0;itchiptool 写入uf2固件
也是能正常工作,没有问题,但就是无法ota,显示ota成功但是实际没变化,当时在这里卡了好久。
最后附上esphome配置:
esphome:
name: "x1s"
friendly_name: "x1s"
platformio_options:
board_build.bkcrypt_coeffs: "00000000000000000000000000000000"
board_build.bkota.key: "0123456789ABCDEF0123456789ABCDEF"
board_build.bkota.iv: "0123456789ABCDEF"
board_flash.download: "0x132000+0xA6000"
board_flash.kvs: "0x1D8000+0x8000"
board_flash.calibration: "0x1E0000+0x1000"
board_flash.tlv: "0x1E1000+0x1000"
board_flash.net: "0x1E2000+0x1000"
board_flash.userdata: "0x1E3000+0x1D000"
bk72xx:
board: generic-bk7231n-qfn32-tuya
logger:
# web_server:
captive_portal:
mdns:
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
substitutions:
voltage_divider: "800.4735172433958"
current_resistor: "0.0010788674067058845"
current_multiply: "0.4667266199455673"
preferences:
flash_write_interval: 10min
status_led:
pin:
number: P11
inverted: True
output:
- platform: gpio
id: led1
pin:
number: P10
inverted: True
switch:
- platform: gpio
pin: P8
name: "Relay"
id: relay
restore_mode: RESTORE_DEFAULT_OFF
on_turn_on:
- output.turn_on: led1
on_turn_off:
- output.turn_off: led1
binary_sensor:
- platform: gpio
pin:
number: P24
mode: INPUT_PULLUP
inverted: true
name: "Switch"
filters:
- delayed_on_off: 100ms
on_press:
then:
- switch.toggle: relay
sensor:
- platform: hlw8012
model: BL0937
current_resistor: ${current_resistor}
voltage_divider: ${voltage_divider}
sel_pin:
number: P26
inverted: true
cf_pin:
number: P6
inverted: true
cf1_pin:
number: P7
inverted: true
current:
name: "Current"
accuracy_decimals: 3
filters:
- multiply: ${current_multiply}
voltage:
name: "Voltage"
accuracy_decimals: 2
power:
name: "Power"
id: my_power
accuracy_decimals: 2
energy:
name: "Energy"
accuracy_decimals: 2
update_interval: 5s
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 1min
- platform: uptime
name: Uptime
update_interval: 1min
参考链接:
惠桔和家亲X1S智能插座拆机,改装esphome,接入HA - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)
support for BK7231M(CB2S) · Issue #262 · libretiny-eu/libretiny · GitHub
|