openshwprojects / OpenBK7231T_App

Open source firmware (Tasmota/Esphome replacement) for BK7231T, BK7231N, BL2028N, T34, XR809, W800/W801, W600/W601 and BL602
https://openbekeniot.github.io/webapp/devicesList.html
1.34k stars 228 forks source link

OTA from 1.14.104 #834

Open StefanRied opened 1 year ago

StefanRied commented 1 year ago

Describe the bug Hi, I have a few devices flushed via UART cable to 1.14.104 and deployed them in my house. Now, I realize that the OTA update seem not to work with this release. Could this be? Maybe it is related to the strange blank in the MAC address? Is there any trick to get the 1.14.104 accepting an OTA update to the latest version. I don't like unconnect them again and ...

Firmware:

To Reproduce Steps to reproduce the behavior: both the OTA in the App and the basic OTA URL seem not to work. The App says OTA Starting and nothing happens.

ataa commented 1 year ago

I've faced the same issue on bl602 in the past. try to update to the next release after 1.14.104 and the next one after that, if it worked, then update to the latest release. Also, After selecting OTA file, wait a few seconds before pressing the "Start OTA" button.

StefanRied commented 1 year ago

Nothing really happens after this

Bildschirmfoto 2023-05-23 um 13 35 49

waited after selecting the file. ... Then pressed START and the device seems to be stuck.

openshwprojects commented 1 year ago

It is possible that we've hit again the BL602 OTA size limit. It already happened once. I can try to fix it soon, I will disable extra HA discovery features on BL602. BL602 has less memory than BK7231 platforms and I never seen BL602+TuyaMCU, so removing extra TuyaMCU features won't hurt.

StefanRied commented 1 year ago

much appreciated. Yeah, it feels like such a problem.

StefanRied commented 1 year ago

it would also explain, that flashing via UART worked, while flashing OTA does not.

StefanRied commented 1 year ago

I see you made the .127 which is smaller. Still the same issue.

StefanRied commented 1 year ago

I have very little knowledge about the BL60x platform. But hitting size/RAM limits in OTA is a problem I remember from other devices such as the ESP. Maybe, we/somebody who understands the BL60x create a minimal OTA firmware, which is always small enough to be OTA-flashed over large firmwares that came via UART on the chip. This minimal OTA firmware can then accept a new release of the large firmware. It actually makes the OTA process more complicated in two steps. However, this would provide finally more RAM to the OTA update-able device. And it is definitely more convenient than dragging devices out of the wall to UART connect them again.

See as a sketch: https://techoverflow.net/2021/11/09/minimal-platformio-esp8266-arduinoota-example/

Thanks for @openshwprojects or anybody else with time and knowledge ...

openshwprojects commented 1 year ago

@StefanRied to the best of my knowledge, the latest build should work, maybe someone else can confirm/recheck. My BL602 dev board is currently out of commission because I've bricked it by trying to add MAC change feature. I must find my BL602 LED strip in parts bin and try myself. Maybe I will buy next BL602 dev board with donations if there is enough interest.

But in general, once something is working good for you, there is no need to OTA, we have a basic features set established and it works good, so there are not many improvements to be done on BL602...

Last weeks my focus was mostly on BK7231 flash tool and YT channel, so there is a lot to do and I must choose the priorities. https://www.youtube.com/playlist?list=PLzbXEc2ebpH0CZDbczAXT94BuSGrd_GoM https://github.com/openshwprojects/BK7231GUIFlashTool

StefanRied commented 1 year ago

I have two BL 602 devices in my house of the .104 release. Both look for the DHCP like one. I guess this is the MAC blank problem. The router sends them the same IP and everything is messed up. I was hoping that I could avoid to to uninstall them and UART flash again. But anyway, thanks for your help. If I am the only one having problems, I'll go the UART way again and will be happy with one working version for many years....

openshwprojects commented 1 year ago

Ota file went from 424 KB to 392KB... it should be enough, but maybe there is something else at play.

Related issue: https://github.com/openshwprojects/OpenBK7231T_App/issues/745 Note the file size on the user's screenshot...

StefanRied commented 1 year ago

https://github.com/openshwprojects/OpenBK7231T_App/releases/download/1.17.127/OpenBL602_1.17.127_OTA.bin.xz.ota

is 406kB 401.892 bytes.

are we on the same file?

StefanRied commented 1 year ago

Yeah, there is so much more that might differ one BL602 chip from another and could go wrong such as boot loader versions, partition tables .... Let's not spend too much time on my case and close this ticket. I'll UART flash them one more time. Hope multiple devices will then work in parallel and pick own IP numbers.

openshwprojects commented 1 year ago

I might have looked at the zipped size on github page, not the unpacked one. Or maybe not... image

Please wait, I can try to lower the file size more. I can also try to find my BL602 magic strip and test myself.

StefanRied commented 1 year ago

thank you 👍
I have no time to do the UART move before Friday anyway.

StefanRied commented 1 year ago

This is the flash configuration with the partition & boot loader file from Bouffalo Labs how I did the initial UART flash. Maybe, I misconfigured something which cause the OTA fail. (used pretty much the defaults)

BLConfig
StefanRied commented 1 year ago

I think, I found one possible cause of the error. There is another partition table in the BouffaloLabDevCube-v1.8.4 It is named "partition_cfg_1M_ota.toml" But I used "partition_cfg_1M.toml" !

Bildschirmfoto 2023-05-24 um 14 41 33

Please, don't waste time on this. I'll figure out if this was the cause and let everybody know, that other people do not fall into the same trap.

openshwprojects commented 1 year ago

That's a nice find, thanks! I am not aware about this issue. Please provide more information, so we can help further users.

Regarding MAC change - this is not yet solved. Currently I do not know how to change MAC on BL602. As I said, I tried with "efuse" functions from SDK few months ago but it just bricked my BL602 board and I was not able to recover it.

That being said,the devices I had seemed to have different MACs (I have one Sonoff Bulb, but I am using it and would prefer not to brick it).

So you have two devices with same MAC?

openshwprojects commented 1 year ago

But... i looked there: https://www.elektroda.com/rtvforum/topic3889041.html#gallery-6 And it seems I was using 2M version.

StefanRied commented 1 year ago

Partition and Bootloader different. And the older DevCube version. This explains a lot. Looks like it's all my mistake or lack of knowledge. The BL chips are still new to me. Thanks a lot for your insight and great help.

CaptClaude commented 1 year ago

At the risk of reviving a thread that's about to be closed, I am seeing the same issue trying to OTA from Build on Dec 15 2022 08:58:32 version 1.15.188 to the latest on a Wemos W600 Pico (which has had issues in the past randomly locking up after being on-line happily for many hours). I will refresh my knowledge of serial flashing (with the Python flasher because I too am on a Mac) and let you know what happens. I have a bag of these W600 Picos and would like to turn them into something useful but if your stuff doesn't work, they are off to the E-Waste.