2016. október 14., péntek

ESP-01 műtét

Mostanában ESP8266 alapú projecteken dolgozom. Az első pillanattól kezdve meg akartam oldani a web-en keresztüli firmware upgrade-jét (OTA). A terv, hogy a böngészőből fel lehessen tölteni a fájlt az SPIFFS fájlrendszerbe (kész). Ott ellenőrizni lehessen az integritását (folyamatban). Ezek után fel lehessen upgrade-elni (kész). Ez a folyamat magától értetődően azt igényli, hogy a flash mérete legalább kétszerese legyen a bináris kódnak.
Az első működő projectem ~280K bináris lett. Ez azt jelenti, hogy az ESP-01 modul 512K flash-e nem elég.
Körülnéztem, hogy tudom-e növelni ezt. Ezt blog bejegyzést találtam:
http://tech.scargill.net/32mb-esp01/
Tetszik a flash chip cseréjének ötlete, de van néhány gondom a megvalósítással:


Úgy döntöttem, hogy keresek 150mil széles 4MByte (32Mbit) flash IC-t megbízható forrásból.
Megtaláltam. Ez a  Cypress (Spansion) S25FL132K0XMFI041 a TME-től: http://www.tme.eu/en/details/s25fl132k0xmfi041/fram-memories-integrated-circuits/cypress/
Ez többbe kerül ($0.75 darabja), de megbízhatónak tűnik és nincs lábhajlítgatás.
A csomag megjött a TME-től, így tegnap este megvolt az első műtét:


Az eredeti 512K Winbond chip-es a bal oldalon, a Spansion 4M chip-es a jobb oldalon.
Ha elindíjuk az Arduino IDE-t van benne egy CheckFlashConfig nevű példa amivel ellenőrizni lehet a flash méretét:


Az eredmény a soros monitoron látható.
Műtét előtt:

Műtét után:


Még náhány modul vár az operációra. :-)