While LifeCycle manager has seen several issues in the past and last week (first week of February 2021), these are now all solved. BUT, if you are stuck with a LifeCycle manager V1.0.0, then you have only till 31 March 2021 to upgrade. I introduced you to LifeCycle manager 2 to manage your Firmware you made for your ESP8266 HomeKit accessories.

On 29th January 2021 encountered some trouble with LCM (LifeCycle Manager). I got a error while trying to upload my Binary files and got a error -322. It seems that Github has made some changes with their certificates. They are not hosted on AWS anymore and have a new hostname to serve the assets. The issue is that they used a certificate that authenticates another hostname. The key obstacle is the use of SNI extension. After contacting the the maker (HacK a.k.a. HomeACcessoryKid) of LifeCycle Manager, it turns out there is very small issue but the consequences are big, it’s an issues that has to be solved! But the the maker HacK of Life Cycle Manager has published LifeCycle Manager 2.1.2!

LifeCycle Management

The LifeCycle Manager2 (LCM) tracks software and firmware versions. Firmware is software, inclusive of programs or data, that has been permanently written onto read-only memory (ROM) or programmable read-only memory (PROM). This is a program that allows any simple repository based on ESP-Open-RTos on a ESP8266 to solve its life cycle tasks. LifeCycle Manager2enables you to:

  • Assign a WiFi AccessPoint for internet connectivity
  • Specify and install the user app without flashing over cable (once the LCM image is in)
  • Update the user app over the air by using releases and versions on GitHub

The solution is dedicated to a particular set of repositories and devices, which I consider is worth solving.

  • Many ESP8266 devices have only 1Mbyte of flash.
  • Many people have no interest in setting up a software (web)server to solve their upgrade needs.
  • Many repositories have no ram or flash available to combine the upgrade routines and the user routines.
  • For repositories that will be applied by MANY people, a scalable software server is needed.
  • Be able to setup WiFi securely while not depending on an electrical connection whenever WiFi needs setup.

In my opinion, for the target group of my blog, the typical solution doesn’t work and so LifeCycle Manager2 will handle it. Also it turns out that there are no out-of-the-box solutions of the typical case out there so we are fine with the limitations of LifeCycle Manager2!

Changelog

With version 2.0.2 LifeCycle Manager2 has arrived to a new stage with its own adaptation of rboot – rboot4lcm – which counts powercycles. These are used to check updates, reset wifi clear or set LCM_beta or factory reset. It also gives access to the emergency mode. Setting a value for a led_pin visual feedback is possible.

With version 2.1.0 updated to the new certificate used by GitHub for the content distribution server – GitHub switched to their own domain and now use a DigiCert CA instead of Baltimore CA – make a final 0x0a and or 0x0d optional for the prerelease file – fixed an exception if user did not provide proper .sig file

With version 2.1.1 introduced SNI extension to fix issue created by GitHub new CDN – without SNI the server presents the wrong certificate – no need to add the intermediate certificate since it is offered by the server – this means the certificate file remains the same as in version 2.0.2

Latest release

With version  2.1.2 creating smaller otamain.bin with -Os – because 2.1.1 otamain was too big and clobbered sysparam area.

Update time is about 6 -10 minutes, but keep track with nc -kulnw0 45678.

 

Unexpected fix!

As a side result the switchover actually brought the fix for the issue we started with, one year ago. The header: location is once more with a capital ‘LLocation: https://github-releases.githubusercontent.com/... So, if you still have a frozen device out there, once the certificate has been fixed, I predict it will come back to life… GitHub has offered us until 31 March to use the original S3 server.

New GUI

I have issued a pull request for a new GUI design. Not that the previous wasn’t working or anything but I thought, a more aesthetic Design would do right for this awesome peace of software. The only challenge was to keep it as small as possible. I think I managed that. I hope it will be approved and will be launched in the next release in one or two weeks from now, fingers crossed! I will keep you updated.

Bin Files

At first you need to download three bin files otaboot.bin, rboot.bin and blank_config.bin. The OTAboot.bin contains the Lifce-Cycle-Manager part. The rboot.bin contains the bootloader for the ESP8266. The blank_config.bin in just a blank config file.

File name: rboot.bin
Version: 1.4.2


File name: blank_config.bin
Version: 1.4.2


NEW RELEASE
File name
: otaboot.bin
Version: 2.1.2


REFERENCE

HomeACcessoryKid,  life-cycle-manager (2020), Initial install, WiFi settings and over the air firmware upgrades for any esp-open-rtos repository on GitHub, https://github.com/HomeACcessoryKid/life-cycle-manager  Maxim Kulkin,  esp-wifi-config (2019), Library to bootstrap WiFi-enabled accessories WiFi config, https://github.com/maximkulkin/esp-wifi-config Paul Sokolovsky,  esp-open-sdk (2019), Free and open (as much as possible) integrated SDK for ESP8266/ESP8285 chips, https://github.com/pfalcon/esp-open-sdk   Espressif Systems,  esptool  (2019), ESP8266 and ESP32 serial bootloader utility,  https://github.com/espressif/esptool