IOT SDK

Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

Patryk pisze: ndz sty 05, 2020 10:14 pm
lesny8 pisze: ndz sty 05, 2020 9:52 pm A próbowałeś może ten sam soft uruchomić na innym sprzęcie, żeby sprawdzić czy takie samo zachowanie będzie?
Tak.
Próbowałem, na Wemos-ie d1 mini, Wemos-ie pro, Sonoff-ie basic, itd.
Osobiście staram się dopiero prosić o pomoc jeżeli mimo różnych prób, " coś  " mi nie działa.
Tutaj znalazłem ten sam problem, ale nie mogę znaleźć, czy  został rozwiązany.
 viewtopic.php?p=4866#p4866
To jest jakiś błąd w SDK, już nie raz o tym pisałem, ale zawsze bez jakiegokolwiek odzewu, a na forach zagranicznych nic nie znalazłem na ten temat. Takie programowe "ciągnięcie" do masy różnych pinów, a nie tylko RX-a występuje dość często przy ich dużym wykorzystaniu, a w szczególności przy korzystaniu z tych "drażliwych" pinów (RT, TX, GPIO0, GPIO2)

Problem ten występuje zarówno przy kompilowaniu softów w środowisku Linuksa jaki w Arduino IDE .
Ostatnio taką przewałkę miałem z softem do Sonoffa-4Ch. Do masy "ciągnęło" mi pin, na którym było wejście w tryb konfiguracji. Udało się w końcu skompilować świetny soft, ale trochę zajęło mi to czasu.

Na dzień dzisiejszy jedynym rozwiązaniem jakie znalazłem jest przestawianie funkcji na pinach, np. zmiana sensora na button, etc.
Z tego też względu nie zmieniam pinologii w swoich kompilacjach na życzenie użytkowników.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Co to znaczy "coś ciągnie pina do masy"?
Widzimy się na Supla Offline Party vol. 2 :!:
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

klew pisze: ndz sty 05, 2020 11:32 pm Co to znaczy "coś ciągnie pina do masy"?
Podam " bezpośrednio " na gpio(3) +V (3,3V) i po odłączeniu +V (3,3V),
moduł zachowuje się tak, jak bym te gpio(3) podłączył do GND.
choć jest dalej programowo pull_up.

Kod: Zaznacz cały

supla_input_cfg[0].flags = INPUT_FLAG_PULLUP | INPUT_FLAG_CFG_BTN;
Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Od czasów programowania w Atmegach nigdy nie ufałem wbudowanym w strukturę mikrokontrolera rezystorom Pull-up. Zawsze stosowałem zewnętrzne, właśnie żeby zabezpieczyć się przed takimi sytuacjami. Pamiętajcie że każde wejście w mikrokontrolerze jest swego rodzaju anteną zbierająca wszystko do okoła, wbudowany Pull-up może być wątpliwy, a może też byś stosowany Pull-down :?
Obrazek
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Duch__ pisze: pn sty 06, 2020 12:14 am Od czasów programowania w Atmegach nigdy nie ufałem wbudowanym w strukturę mikrokontrolera rezystorom Pull-up. Zawsze stosowałem zewnętrzne, właśnie żeby zabezpieczyć się przed takimi sytuacjami. Pamiętajcie że każde wejście w mikrokontrolerze jest swego rodzaju anteną zbierająca wszystko do okoła, wbudowany Pull-up może być wątpliwy, a może też byś stosowany Pull-down :?
Ok.
Zgadzam się z Tobą.
Ale ten problem z gpio3 nie występuje w inCan-ie Easy ( Espablo ) - tu mam problem z gpio1
oraz Primary GUI V2 ( Krycha88 ). - tu mam problem jeżeli nie ma połączenia z wifi.
Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Wiele zależy nie tyle od softu, co rodzaju modułu.
Obrazek
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

Duch__ pisze: pn sty 06, 2020 12:14 am Od czasów programowania w Atmegach nigdy nie ufałem wbudowanym w strukturę mikrokontrolera rezystorom Pull-up. Zawsze stosowałem zewnętrzne, właśnie żeby zabezpieczyć się przed takimi sytuacjami. Pamiętajcie że każde wejście w mikrokontrolerze jest swego rodzaju anteną zbierająca wszystko do okoła, wbudowany Pull-up może być wątpliwy, a może też byś stosowany Pull-down :?
Problem jest jednak w tym, że gdy występuje te "ciągnięcie" do masy, to zastosowanie zewnętrznych rezystorów pull-up o typowych wartościach nic nie daje. Jedynie właściwie "czyste" zwarcie do VCC utrzymuje na pinie wysoki stan, tak jest ono silne.

Jednak jak znajdzie się na to sposób, to chętnie się z nim zapoznam, a na dzień dzisiejszy będę stosował swoją metodę.
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

SUKCES !!!
Udało mi się "zmusić" gpio3 do pracy z wyłącznikiem.
A więc od początku.
Potrzebowałem stworzyć następującą konfigurację:

#define B_RELAY1_PORT 14
#define B_RELAY2_PORT 13
#define B_BTN1_PORT 4
#define B_BTN2_PORT 3
Oraz
#define LED_RED_PORT 1

Cały czas próbowałem to na "zródłach" sonoff_touch_dual.
Efekt był taki,że wszystko działało oprócz wyłącznika na gpio3.
Cały czas gpio3 programowo było "ciągnięte" do GND i to tak "silnie",że żeby go "użyć" trzeba było podać pełne +3,3V.
w tej kompilacji (to jest może wskazówka) są dwa pliki:
boot_v1.5.bin 0x00000 oraz
sonoff_touch_dual_user1.1024_DOUT.bin 0x01000

Tracąc już nadzieję, myślę sobie, spróbuje jeszcze na "źródłach" inCan_a - są podobne.
Po skompilowaniu i wgraniu - myślę sukces.
Wyłączniki na gpio3 i gpio4 działają - eureka, ale
jeden i drugi (wyłącznik) uruchamia ten sam przekażnik - co jest grane ?
Okazało się, że jest "bug" w żródłach:
https://github.com/SUPLA/supla-espressi ... nCan.c#L70
powinno być:
B_RELAY1_PORT; // (JEDEN), bo (Dwa) jest tutaj:
https://github.com/SUPLA/supla-espressi ... nCan.c#L78
W tej kompilacji (to jest może następna wskazówka), są dwa pliki, ale z adresem
0x00000 i
0x40000
Ps.
Cieszę się, że wreszcie będę mógł zainstalować sonofa_touch_dual, który nie wymaga przewodu N,
a który działa identycznie przy połączeniu z wifi, oraz podczas braku połączenia z wifi.
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

cd... " walki " z gpio3
Zacząłem się zastanawiać, dlaczego na źródłach sonoff-a touch gpio3 jest ciągnięte do GND, a na inCan-ie działa prawidłowo.
Pierwsze myślałem, że to wina FOTA.
Okazało się jednak, że nie.
Z tym inCan-em, był to zbieg okoliczności ( i dobrze ), bo bym do tego nie doszedł.
A więc przy konfiguracji ( źródła sonoff_touch ):
Relay 1 - gpio13
Relay 2 - gpio14
Button 1 - gpio3
Button 2 - gpio4
LED - gpio1
GPIO3 - jest ciągnięte programowo do GND,
ale WYSTARCZY, zdefiniować dodatkowo
SENSOR na gpio12
i wtedy gpio3 działa prawidłowo.
Czemu tak jest ?
Nie mam pojęcia.
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Kolejna prośba - gdyż nie znalazłem nigdzie podpowiedzi.

Chciałbym mieć możliwość na stronie konfiguracyjnej wyboru między:

Kod: Zaznacz cały

supla_relay_cfg[0].flags = RELAY_FLAG_RESET;
a

Kod: Zaznacz cały

supla_relay_cfg[0].flags = RELAY_FLAG_RESTORE_FORCE
O ile na stronie konfiguracyjnej w HTML, dam radę to dodać ( tak myśle ;) ), nie znalazłem żadnego przykładu z kodem.
Coś na wzór  inCan-a -  możliwość wybory między MONOSTABLE, a BISTABLE.
Czy mógłby KTOŚ zamieścić kawałek kodu,
jak by to miało być.
ODPOWIEDZ

Wróć do „Zagadnienia ogólne”