巧复制ELRS接收机固件,解决遗忘密码问题

自从自组了2.4G 的ELRS 之后,强悍的性能让我把所有的模型都换成了2.4G的ELRS接收机,都使用密码对频,先开控,那个模型先上电用那个,十分方便。而且我也十分的懒,一直使用ELRS 1.0 的固件,也不准备跟风升级到2.xx ,1.0 无论是信号质量还是便利程度我都十分满意。
赶在618 大促的时候,百达家 35块钱1个的2.4G 接收机抢了两个(35.。。自制成本都差不多,要啥自行车。。。。),到货之后准备刷固件,结果问题来了:给朋友刷了几次固件,我最早的对频密码忘了,多次尝试怎么也不对,而且对频密码在固件里面是 MD5的hash值,即便是找到hash值,也没很难倒推出来对频的密码明文。 于是俩接收机就扔了起来。
今天灵光一闪, 我搞不到对频密码,我找不到之前编译好的固件,我可以复制固件啊。。。。
而且手上有之前的 哈皮家的 EP2 接收机,看了下和百达家的都一样,都是esp8266 ,完全可以从ep2 dump 固件出来,然后复制到 新的elrs 接收机里。 这种办法既可以快速复制接收机固件,也可以在接收机变砖的情况下线刷救活。

所需工具:
esptools.py 如果没有的话,需要先安装python ,然后pip install esptool
USB 转TTL 如图:

接收机 焊接线之后,按照 TX、RX 和usb 转串口的 RX TX 接线
然后短接 boot 上电,EP2 的boot 在这里

使用镊子 短接 boot 焊盘 和 GND 线 给接收机上电,这时候接收机LED 灯常亮
导出固件 第一次:
esptool.py --chip auto --port com18 read_flash 0x00000000 2048000 d:/elrs_dump.bin
注意:
port 是指usb 转ttl 在电脑的com 口编号,需要到 设备管理器里看下 是多少,每次都要看,因为重新插拔 usb 转ttl 可能com 口的编号就变了
2048000 :因为esp8266 的flash 大小是 2Mb ,既 2048000, 因为当前还不知道具体固件大小,直接全部导出来看看
d:/elrs_dump.bin 要保存的固件文件名,因为我在cgywin64命令行里,使用的是d:/ ,如果是cmd 里执行要改成 d:\\elrs_dump.bin
如果提示错误,一般是 接收机没有进boot 状态,重新短接上电。 或者是 RX、TX 线序没结对,接收机的TX接 USB TTL 的RX ,接收机的RX接USBTTL 的TX,或者是你没有认真看com口的序号
成功导出固件之后,拔掉 USB To TTL 即可
同样给空白的接收机 焊线,跟之前接收机一样的方式接线、短接boot GND 上电,
esptool.py --chip auto --port com18 write_flash --flash_size=detect 0 d:/elrs_dump.bin
这里注意一下:我重新接第二个接收机之后,com口的序号就变成了 com18
刷写成功之后,备份 elrs_dump.bin (留好了,以后的接收机都指望它呢)
正常和遥控器通信,一切正常!
至此,我忘了我的密码。。。。也无所谓了
