{"id":546,"date":"2014-11-29T18:48:21","date_gmt":"2014-11-29T17:48:21","guid":{"rendered":"http:\/\/www.xpablo.cz\/?p=546"},"modified":"2014-12-24T10:21:26","modified_gmt":"2014-12-24T09:21:26","slug":"esp8266-frankenstein-firmware-a-dalsi","status":"publish","type":"post","link":"https:\/\/www.xpablo.cz\/?p=546","title":{"rendered":"ESP8266 &#8211; Frankenstein firmware a dal\u0161\u00ed&#8230;"},"content":{"rendered":"<p><a href=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2014\/11\/Franken.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-547 alignleft\" src=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2014\/11\/Franken-234x300.png\" alt=\"Franken\" width=\"234\" height=\"300\" srcset=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2014\/11\/Franken-234x300.png 234w, https:\/\/www.xpablo.cz\/wp-content\/uploads\/2014\/11\/Franken.png 422w\" sizes=\"auto, (max-width: 234px) 100vw, 234px\" \/><\/a>Situace na poli r\u016fzn\u00fdch verz\u00ed firmware pro WiFi modul s \u010dipem ESP8266 je den ode dne lep\u0161\u00ed a lep\u0161\u00ed &#8211; jak se objevuj\u00ed nov\u00e9 informace o \u010dipsetu a otev\u00edraj\u00ed se mo\u017enosti vlastn\u00edch modifikac\u00ed, nebo tvorby firmware, tak se stejnou rychlost\u00ed &#8222;nabaluj\u00ed&#8220; dal\u0161\u00ed v\u00fdvoj\u00e1\u0159i, kte\u0159\u00ed cht\u011bj\u00ed p\u0159ij\u00edt se svoj\u00ed tro\u0161kou do ml\u00fdna. Za v\u010derej\u0161\u00ed ve\u010der a dne\u0161ek jsem vyzkou\u0161el n\u011bkolik firmwar\u016f &#8211; u ka\u017ed\u00e9ho z nich jsem p\u0159i\u0161el na v\u00fdhody, ale i na nev\u00fdhody (alespo\u0148 z m\u00e9ho pohledu) a o sv\u00e1 zji\u0161t\u011bn\u00ed bych se cht\u011bl zde pod\u011blit&#8230;<!--more--><\/p>\n<p>Velmi d\u016fle\u017eitou informac\u00ed na poli bezdr\u00e1tov\u00fdch technologi\u00ed b\u00fdv\u00e1 praktick\u00fd dosah. Ten velmi z\u00e1le\u017e\u00ed na okoln\u00edch podm\u00ednk\u00e1ch, ale stejn\u011b je dobr\u00e9 m\u00edt alespo\u0148 r\u00e1mcovou p\u0159edstavu o schopnostech modulu. Na\u0161t\u011bst\u00ed se na\u0161lo p\u00e1r experiment\u00e1tor\u016f, kte\u0159\u00ed dosah ov\u011b\u0159ili a pod\u011blili se o v\u00fdsledky v n\u00e1sleduj\u00edc\u00edm videu<\/p>\n<p><iframe loading=\"lazy\" title=\"ESP8266 Wifi Range\/Distance Tests (Wi07C)\" width=\"474\" height=\"267\" src=\"https:\/\/www.youtube.com\/embed\/7BYdZ_24yg0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>V\u00fdsledky jsou na tak mal\u00fd modul velmi dobr\u00e9, tak\u017ee se domn\u00edv\u00e1m, \u017ee pokud se poda\u0159\u00ed zajistit FCC certifikaci (nebo aspo\u0148 jeden v\u00fdrobek s t\u00edmto modulem projde zku\u0161ebnou), bude jeho nasazen\u00ed v profesion\u00e1ln\u00ed sf\u00e9\u0159e zcela bez pot\u00ed\u017e\u00ed.<\/p>\n<p>B\u011bhem posledn\u00edch dn\u00ed jsem postupn\u011b vyzkou\u0161el origin\u00e1ln\u00ed firmware ve verzi <a href=\"http:\/\/www.electrodragon.com\/w\/Wi07c\">0.9.2.2 AT<\/a>, nodemcu <a href=\"https:\/\/github.com\/nodemcu\/nodemcu-firmware\">Lua firmware<\/a> a firmware, pojmenovan\u00fd <a href=\"https:\/\/github.com\/nekromant\/esp8266-frankenstein\">Frankenstein<\/a>. Verze Lua a Frankensteina z\u00e1m\u011brn\u011b neuv\u00e1d\u00edm &#8211; na obou prob\u00edh\u00e1 velmi aktivn\u00ed v\u00fdvoj, tak\u017ee se d\u00e1 vyj\u00edt pouze z \u010dasov\u00fdch \u00fadaj\u016f sestaven\u00ed (nap\u0159\u00edklad LUA byl modifikov\u00e1n p\u0159ed hodinou &#8211; to jsem za\u010dal ps\u00e1t tento p\u0159\u00edsp\u011bvek, tak\u017ee &#8222;posledn\u00ed&#8220; verzi jsem je\u0161t\u011b nezkou\u0161el).<\/p>\n<h6>Origin\u00e1ln\u00ed FW 0.9.2.2 AT<\/h6>\n<p>Nahr\u00e1n\u00ed FW prob\u011bhlo bez probl\u00e9m\u016f. Pouze se objevil probl\u00e9m po nastaven\u00ed na ni\u017e\u0161\u00ed p\u0159enosovou rychlost (9600Bd), kter\u00fd je na internetu rovn\u011b\u017e <a href=\"http:\/\/www.rei-labs.net\/esp8266-update-firmware-to-change-the-baudrate\/\">zmi\u0148ov\u00e1n<\/a>.<\/p>\n<p>V\u00fdhodou tohoto firmware je ofici\u00e1ln\u00ed podpora (a\u0165 u\u017e to znamen\u00e1 cokoliv), snadno modifikovateln\u00e9 a p\u0159enostiteln\u00e9 p\u0159\u00edklady do Arduina a velk\u00e1 komunita experiment\u00e1tor\u016f.<\/p>\n<p>Nev\u00fdhodou je zat\u00edm nedota\u017eenost firmware &#8211; nap\u0159\u00edklad na povel AT+CWLAP by modul m\u011bl odpov\u011bd\u011bt seznamem okoln\u00edch AP, jenom\u017ee po nahr\u00e1n\u00ed FW odpov\u00ed ERROR. D\u016fvodem je to, \u017ee seznam AP je dostupn\u00fd pouze v re\u017eimech STA, nebo BOTH (AT+CWMODE=xx) a defaultn\u00ed nastaven\u00ed je na re\u017eim AP. Dal\u0161\u00ed velkou nev\u00fdhodou (zejm\u00e9na pro IoT pou\u017eit\u00ed) je nemo\u017enost n\u011bjak programov\u011b ovl\u00e1dat spot\u0159ebu modulu. Mo\u017en\u00e1 to jde ovl\u00e1d\u00e1n\u00edm pinu CH_PD, proto\u017ee n\u011bkter\u00e9 internetov\u00e9 zdroje tento pin ozna\u010duj\u00ed jako Power Down, ale re\u00e1ln\u00fd pokus jsem zat\u00edm neobjevil.<\/p>\n<h6>Nodemcu LUA<\/h6>\n<p>Jde o nejkomplikovan\u011bj\u0161\u00ed firmware, kter\u00fd jsem zkou\u0161el. Nahr\u00e1n\u00ed op\u011bt prob\u011bhlo bez pot\u00ed\u017e\u00ed, interpreter se spustil a v\u0161e vypadalo v\u00fdborn\u011b. Pot\u00ed\u017ee v\u0161ak nastaly p\u0159i podrobn\u011bj\u0161\u00edm testov\u00e1n\u00ed, kdy bylo z\u0159ejm\u00e9, \u017ee n\u011bkde &#8222;te\u010de&#8220; pam\u011b\u0165 &#8211; dostupn\u00e1 pam\u011b\u0165 na hromad\u011b st\u00e1le ub\u00fdvala a v situaci, kdy j\u00ed zb\u00fdvalo n\u011bco kolem 3000 byt\u016f se cel\u00fd modul restartoval. Je mo\u017en\u00e9, \u017ee tato chyba je ji\u017e odstran\u011bna, proto\u017ee <a href=\"http:\/\/www.esp8266.com\/viewforum.php?f=19\">f\u00f3rum na t\u00e9ma LUA<\/a> je pom\u011brn\u011b aktivn\u00ed, ale ve verzi z 26.11. jsem na ni narazil p\u0159i pokusech i j\u00e1.<\/p>\n<p>V\u00fdhodou tohoto firmware je jeho v\u0161estrannost, mo\u017enost ovl\u00e1d\u00e1n\u00ed spot\u0159eby p\u0159es node.deepsleep(), mo\u017enost ulo\u017eit informace do soubor\u016f v souborov\u00e9m syst\u00e9mu, \u010dasov\u00e1n\u00ed pomoc\u00ed tmr.alarm(), dns klient, pwm v\u00fdstup, A\/D p\u0159evodn\u00edk, I2C rozhran\u00ed, apod&#8230;<\/p>\n<p>Nev\u00fdhodou pak je zat\u00edm nedota\u017een\u00e1 spr\u00e1va heapu, nemo\u017enost ovl\u00e1dat uart&#8230;. POZOR!!! Oprava &#8211; ve verzi, kter\u00e1 byla uvoln\u011bna p\u0159ed cca hodinou je nov\u011b p\u0159id\u00e1no <a href=\"https:\/\/github.com\/nodemcu\/nodemcu-firmware\/wiki\/nodemcu_api_en\">API pro ovl\u00e1d\u00e1n\u00ed uartu<\/a>, ale bohu\u017eel se st\u00e1le ned\u00e1 nastavit p\u0159enosov\u00e1 rychlost). Za velkou nev\u00fdhodu pova\u017euji (zat\u00edm) uzav\u0159en\u00e9 zdrojov\u00e9 k\u00f3dy.<\/p>\n<h6>Frankenstein<\/h6>\n<p>Firmware od program\u00e1tora s nickem Nekromant je pojmenovan\u00fd Frankenstein a dost se odli\u0161uje od obou v\u00fd\u0161e zm\u00edn\u011bn\u00fdch. V re\u017eimu AP obsahuje vestav\u011bn\u00fd DHCP server, tak\u017ee je mo\u017en\u00e9 vytvo\u0159it mikroskopickou lok\u00e1ln\u00ed s\u00ed\u0165, kter\u00e1 je naprosto sob\u011bsta\u010dn\u00e1 co se t\u00fd\u010de konfigurace a komunikace mezi jednotliv\u00fdmi prvky. Na s\u00e9riov\u00e9m portu b\u011b\u017e\u00ed shell, kter\u00fd je sv\u00fdmi p\u0159\u00edkazy a spr\u00e1vou prom\u011bnn\u00fdch velmi podobn\u00fd Linuxov\u00e9mu uBootu. P\u0159\u00edmo z konzoly je mo\u017en\u00e9 sestavit TCP spojen\u00ed a odeslat jednoduchou zpr\u00e1vu, nebo sestavit \u010dekaj\u00edc\u00ed spojen\u00ed. To je ale zat\u00edm tak\u00e9 bohu\u017eel v\u0161echno (pominu-li ovlada\u010d pro m\u011b\u0159en\u00ed teploty s DS18B20, kter\u00fd je ale bohu\u017eel k ni\u010demu, proto\u017ee sled povel\u016f mus\u00edm stejn\u011b odn\u011bkud zadat).<\/p>\n<p>V\u00fdhodou tohoto firmware je jednozna\u010dn\u011b jeho DHCP server, mo\u017enost ovl\u00e1d\u00e1n\u00ed p\u0159\u00edkonu (i kdy\u017e tahle funkce mi moc dob\u0159e nepracovala &#8211; modul bylo nutn\u00e9 restartovat, co\u017e mo\u017en\u00e1 souvis\u00ed s nutnost\u00ed propojen\u00ed pin\u016f, kter\u00e9 vy\u017eaduje LUA FW), dal\u0161\u00ed obrovskou v\u00fdhodou jsou otev\u0159en\u00e9 zdrojov\u00e9 k\u00f3dy, dostupn\u00e9 na Githubu a vid\u00edm v n\u011bm velk\u00fd potenci\u00e1l do budoucna.<\/p>\n<p>Nev\u00fdhodou pak je prozat\u00edmn\u00ed jednoduchost a nutnost pou\u017eit\u00ed dal\u0161\u00edho procesoru pro jednotliv\u00e9 funkce (absence skriptov\u00e1n\u00ed).<\/p>\n<h5>Z\u00e1v\u011br<\/h5>\n<p>Zat\u00edm jsem se nerozhodl, kter\u00fd firmware budu pou\u017e\u00edvat &#8211; ka\u017ed\u00fd z v\u00fd\u0161e uveden\u00fdch m\u00e1 sv\u00e9 v\u00fdhody, ale ka\u017ed\u00e9mu z nich rovn\u011b\u017e n\u011bco chyb\u00ed. Kdyby se tak poda\u0159ilo vytvo\u0159it firmware, kter\u00fd by spojoval v\u0161echny v\u00fdhody a eliminoval nev\u00fdhody&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Situace na poli r\u016fzn\u00fdch verz\u00ed firmware pro WiFi modul s \u010dipem ESP8266 je den ode dne lep\u0161\u00ed a lep\u0161\u00ed &#8211; jak se objevuj\u00ed nov\u00e9 informace o \u010dipsetu a otev\u00edraj\u00ed se mo\u017enosti vlastn\u00edch modifikac\u00ed, nebo tvorby firmware, tak se stejnou rychlost\u00ed &#8222;nabaluj\u00ed&#8220; dal\u0161\u00ed v\u00fdvoj\u00e1\u0159i, kte\u0159\u00ed cht\u011bj\u00ed p\u0159ij\u00edt se svoj\u00ed tro\u0161kou do ml\u00fdna. Za v\u010derej\u0161\u00ed ve\u010der a &hellip; <a href=\"https:\/\/www.xpablo.cz\/?p=546\" class=\"more-link\">Pokra\u010dov\u00e1n\u00ed textu <span class=\"screen-reader-text\">ESP8266 &#8211; Frankenstein firmware a dal\u0161\u00ed&#8230;<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[5,25,21],"tags":[18,38,20],"class_list":["post-546","post","type-post","status-publish","format-standard","hentry","category-elektronika","category-esp8266","category-internet-of-things","tag-esp8266","tag-internet-of-things","tag-iot"],"_links":{"self":[{"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=546"}],"version-history":[{"count":4,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":551,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/546\/revisions\/551"}],"wp:attachment":[{"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}