Author Topic: Репрограмирање на ESP8285 M2 за забава и профит  (Read 4362 times)

Offline NerdOmega

  • Нов член
  • *
  • Posts: 22
Репрограмирање на ESP8285 M2 за забава и профит
« Opened on 15.09.2019, Sunday, 22:06:47 (Edited 16.09.2019, Monday, 00:07:03) »
Решив да споделам дел од проектите кои ги работам за свое задоволство како и да си го вежбам кунг фу-то  ;D

На многу кинески страни постојат контролери за ЛЕД ламби

Code: [Select]
https://www.aliexpress.com/item/32963077637.html


Овие контролери се направени за да работат со WS2811, WS2812B ... океј се изработени и добро си ја бркаат работата, но проблемот е што може да се контролира само преку андроид/iOS апликација.

По отварање на уредот внатре има една мала плоча со ESP8285 M2 со свој регулатор на напон на едната страна



Додека пак од другата страна е малце поинтересно



од лево на десно чиповите се

HC245 - Октален трансивер/ бафер
GD32F130F8P6 - ARM cortex M3 микроконтролер.

По мерење и разгледување на плочката Микроконтролерот е поврзан со ESP модулот на Rx/Tx линиите ( GPIO 03,01)
во оваа конфигурација ЕСП микроконтролерот се користи само како модем за АРМ процесорот, додека пак окталниот бафер се користи како ниво шивтер за комуникација со лед диодите кои се на 5 волти.

Во последните неколку години алатките за работа со ЕСП фамилијата на чиповите е развиен многу и овозможува да се испрограмира контролерот со свој код. Од тука планот е да се одлеми АРМ чипот и да се премине на контрола со ЕСП чипот што ке овозможи да се контролира како што сакаш како и да пристапува на интернет и да превзема податоци од сервери, веб страни и слично.

По разлемување на АРМ чипот треба да се премостат пиновите 17 со 9 со тоа преку ЕСП чипот можеме директно да комуницираме со WS2812B лед диодите.



Потоа треба да ги поврземе релевантните пинови на ЕСП чипот за да може да го флешуваме со наш код.

За флешување на ЕСП чипот потребни се овие пинови



Како и најобичен УСБ на сериски конвертер, јас го имам овој

Code: [Select]
https://www.aliexpress.com/item/32717057832.html


** во сликата не е прикажано но јас го поврзав и 5 волти изворот од серискиот конвертер на 5 волти влезот на цела плочка.

Процедурата за програмирање е:
-спои ги GPIO 00 со GND
-приклучи УСБ конвертерот со компјутерот
-флешувај го чипот
-одкачи GPIO 00 од GND
Опциите за флешување се добри, како што е поврзано може директно да се програмира од Ардуино ИДЕ со селектирање на генерички ЕСП модул со 2 Мбит меморија. Но поради мрза и фактот што само што почна поддршката на MicroPython за ЕСП фамилијата на чипови јас одбрав да го флешувам со MicroPython за да видам дали ке работи уопште.

Ако некој се реши да ме следи во постапките нека почне тука

Code: [Select]
https://docs.micropython.org/en/latest/esp8266/tutorial/intro.html
додека за флешување ке му треба esptool.py

МикроПајтон во себе има библиотеки за контрола на WS2812 само што тие ги викаат НеоПиксели така да големиот дел од работата е завршен.

Code: [Select]
https://docs.micropython.org/en/latest/esp8266/tutorial/neopixel.html
Проблемите со ваква модификација се тоа што по флешувањето неможе да се пишува Пајтон код преку сериската врска со ЕСП бидејки таа линија се користи да комуникација со ЛЕД диодите, но ако си го поврзиш на своето ВиФи можеш да го пристапиш преку веб терминалот што за мене е и полесно бидејки овозможува безжична контрола. Друг проблем е релативно спората контрола врз диодите што изнесува негде околу 50-70 милисекунди поради големиот оверхед од Пајтон и Емулацијата на СПИ пинови. Нареден чекор од овде би бил да се прислушкува комуникацијата помеѓу АРМ чипот и ЕСП и да се направи обратно инжинерство на кодот што ке овозможи директно да се контролираат диодите без никаква модификација на плочата како и побрза контрола на истите, но јас немам осцилоскоп или логички анализатор така да тоа останува за иднината

Слика од целосната модификација




Се извинувам за лошиот квалитет на некои слики поради мојот компир од телефон каде што можев ставав слики со поголем квалитет од интернет. Прашања, критики и коментари се добредојдени !

Offline bicikle

  • Топ Експерт
  • *****
  • Posts: 4079
  • Gender: Male
Секако не е на одмет и подобри слики, ама ок е, се разбира. На чиповите можеш во паинт(некој паинт за андроид) да ги напишеш ознаките, оционално.

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Поентата на хаков е да може преку web GUI да се контролира чудово?
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline NerdOmega

  • Нов член
  • *
  • Posts: 22
Re: Репрограмирање на ESP8285 M2 за забава и профит
« Reply #3 on 16.09.2019, Monday, 10:32:35 (Edited 16.09.2019, Monday, 11:32:20) »
поентата е да можеш директно да ги контролираш диодите, пред тоа контрола има само преку андроид апликацијата додека после тоа имаш директна контрола преку ардуино IDE или микропајтон у мој случај.

сакав да си поиграм со тие адресибилните диоди

Code: [Select]
https://www.instructables.com/id/ESP8266-controlling-Neopixel-LEDs-using-Arduino-ID/
само што вака ми се види помалце работа и поинтегрирано решение

Offline Atanas

  • Експерт
  • ****
  • Posts: 729
  • Gender: Male
Поентата на хаков е да може преку web GUI да се контролира чудово?

Како што го разбрав сака сам да си го програмира ESP микроконтролерот во некој од програмските јазици, во случајот MicroPython и Arduino.

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
поентата е да можеш директно да ги контролираш диодите, пред тоа контрола има само преку андроид апликацијата додека после тоа имаш директна контрола преку ардуино IDE или микропајтон у мој случај.

Некако ми изгледа како да одиме „прекутрупа“... зошто едноставно да не се хакува Android апликацијата или да се види како комуницира со уредот, па да може да се напише посебна апликација која ќе комуницира како ние сакаме со уредот ;). Мене ова ми изгледа пологично ;). Тоа што има Wi-Fi модул ги прави работите уште поедноставни. Може да се направи и посебна апликација дури и за PC со која, практично, ќе можеме што сакаме да правиме со уредот ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline NerdOmega

  • Нов член
  • *
  • Posts: 22
За да се направи обратен инжинеринг на апликацијата за андроид во мое мислење ке треба многу повеке време и знаење. Најлесно е на АРМ кортекс чипот да се направи такво нешто, но немам соодветна опрема за таква работа ако некој има и е спремен да се позанимава имам едно 5-6 контролери што ги земав плус за да играм со нив. Можам да позајмам еден за да сработиме работа заедно ;D

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Генерално земено, не би требало да е претешко бидејќи станува збор за Java апликации и најголем дел од апликацијата отпаѓа на ресурси (resouces) т.е. шмикна... не само за оваа апликација (Magic Home Pro), и за сите останати. Многу мал дел отпаѓа на баш код. Баш ја симнав, ја отпакував... самата апликација, во сите верзии (ARM 7, ARM 8 x64, Intel x86, Intel x64), не беше поголема од 23KB. Ова IDA Pro парче ќе го направи ;D. Ова во комбинација со ADB и толку ти треба ;). Повеќе од две или три недели на RCE (ако знаеш што правиш), сигурно нема да потрошиш ;).

Е сега, Wi-Fi модулот е сосема друга работа. Видов дека работи во AP мод, а не како клиент... тоа ич не ми се допаѓа бидејќи тоа значи дека секој пат кога ќе сакам да сменам нешто со LED диодите, ќе треба да се откачувам од мојата мрежа и да се закачувам за LED мрежата ::). Не знам дали има некакво web GUI и дали може да се подеси да работи како клиент и само да го најдам во мрежа брз база на Net BIOS име и да го контролирам... тоа треба да се разгледа. Ако може и Open WRT да му се стави, може може да се подеси да работи и како repeater :P :D. Е тоа е веќе топ ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline NerdOmega

  • Нов член
  • *
  • Posts: 22
Контролерите имаат опција за поврзување со некоја базна станица, првин треба да се поврзеш со неа па потоа има опција да го поврзиш контролерот со твојот рутер после тоа се овозможува и контрола преку интернет од било каде ама само од апликацијата  :(. А за Web GUI опција нема, јас затоа и тргнав да се чепкам по него, се надевам дека за 2 недели ке имам повеке слободно време за да си играм со контролерот па ако испадне нешто ке споделам

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
А за Web GUI опција нема, јас затоа и тргнав да се чепкам по него, се надевам дека за 2 недели ке имам повеке слободно време за да си играм со контролерот па ако испадне нешто ке споделам

Тоа е проблемот со овие хакови... не дека не сакам да го правам ова, едно време го правев и ми беше многу интересно (сеуште ми е :)), но... едноставно одзема мнооогу време :-\.

Интерсно би било ако успее да се стави Open WRT на него. Колкав flash има во модулот? Ако е барем 4MB, нема да има проблем, 4MB-ни build-ови на Open WRT има ;) (мада повеќето се 8MB-ни па нагоре, ама се наоѓаат и 4MB-ни :)). Можно е да треба да се искомпајлира специјален build само за него, ама ако успее, супер :). Колку MHz е CPU-то во Wi-Fi модулот и колку RAM има во него, имаш информација? Ако е барем 400MHz и со барем 32MB RAM, ќе работи супер ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline Atanas

  • Експерт
  • ****
  • Posts: 729
  • Gender: Male
@GigaWatt Многу го прецени овој чипот, не е е до толку моќен. Еве тука можеш да ги видиш спецификациите:
Code: [Select]
https://en.m.wikipedia.org/wiki/ESP8266

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Да, сум го преценил :P :D.
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline MarkoMK

  • Топ Експерт
  • *****
  • Posts: 1001
  • Gender: Male
Во последно време го пратам овој јутубер (Andreas Spiess) и има доста видеа постирано за ESP32.., ESP82.. чиповите со корисни информации, примена, и сл. еве на пример овде

Life is too short to remove USB safely ..