Przepisanie firmware do czujników smogu

Tak to wygląda. Czy ten problem jest powtarzalny? Na ile wysłanych JSONów jest takich “wadliwych”? Czy ten problem jest dalej po ponownym uruchomieniu?

Czy ten problem dalej występuje jak się moc nadawczą obniży do 18?

Z mocą trochę potrwa by sprawdzić, ale od aktualizacji wygląda jakby połowa wszystkich pomiarów miała problem i to w przedziałach czasu 7 - 15 głównie :face_with_raised_eyebrow:
IMG_20200219_181403

I drugie pytanie, czy co aktualizacje trzeba będzie konfigurację ustawiać na nowo? Po przejściu z wersji 15 na 16 wszystko wróciło do wartości domyślnych.

edit.
Z zmniejszoną mocą na 18 dalej są krzaczki.

O. To dobre pytanie. Konfiguracja powinna zostawać stara. Szukamy winnego tych błędów w JSONie. Coś nadpisuje nam ten segment pamięci. Co kompilację, jest w innym miejscu, ale w obrębie danej kompilacji cały czas w tym samym. Ewidentnie sieje po pamięci w miejscu, w którym nie powinno.

Edit: Aktualizujemy do NAMF-2020-17 i sprawdzamy czy problem się powtarza. Załatane jedno podejrzane miejsce. Obstawiam, że to nic nie pomoże, ale spróbować warto.

Aktualizacja pobrana, obserwuje jak będzie się zachowywał.
Jakby co to ten czujnik https://lector.aqi.eco/poznan/czarnarola24dom
Skok zanieczyszczenia przez pieczenie żony pączków i chruścików :stuck_out_tongue:

U mnie moduł sam się resetuje, będę starał się określić co jaki czas.
Najwięcej 6 pomiarów mi wysłał. Raz po 4 a raz po 1.

Jeden z sensorów u mnie w Labie ma dokładnie tak samo. Muszę sprawdzić co go odróżnia od reszty. Może typ zastosowanej pamięci flash. W każdym razie szukamy rozwiązania.

chrome

Ten niestabilny to niebieska linia na dole.

U mnie po zalogowaniu się na sensor i po kliknięci Konfiguracja nie ładuje się strona. Dostaje błąd 404.
Wersja firmware NAMF-2020-15. Jak teraz wymusić pobranie nowszej wersji?

U mnie poprawa:
Liczba pomiarów - 212
Uptime -11h 13m 58s

Powinien pobrać jak uruchomisz ponownie. Jeżeli to z jakiegoś powodu nie działa to może forceUpdate zadziała działa?

A forceUpdate nie usunie konfiguracji?

Nie. Usunięcie konfiguracji było skutkiem migracji z firmware o rozkładzie SPIFFs 1+3 na firmware ze SPIFFs 2+2. Docelowo chcemy zrobić to automatycznie z zachowaniem konfiguracji przy migracji.

Dzięki. Zadziałało forceUpdate. Po restarcie wszystko wygląda ok

Najwidoczniej mój się ustabilizował.
Liczba pomiarów: 661
Uptime: 1d 10h 44m 47s

Nadal walczymy z magicznym stringiem nadpisującym pamięć. Stabilizacja firmware to jedno, poprawne działanie to drugie. Firmware jest napisany w bardzo głupi sposób. Wszystkie pomiary są zapisywane w stringach i wklejane do wielkiego stringu JSON. A ten jest później parsowany wielokrotnie wewnątrz firmware. Ogólnie nie wiem jak wpadli na tak “innowacyjny” pomysł…

Marudzę i narzekam. A może nie powinienem. Bo firmware nawet tak tragicznie napisany działa i jest lepszy od tego najlepszego nie napisanego wcale.

Ale krok po kroku zmierzamy w stronę czegoś co będzie funkcjonalne i łatwe w rozbudowie. Do tej pory to właśnie destabilizacja firmware powstrzymywała nas przed dodaniem nowej funkcjonalności.

2 polubienia

Walczcie na spokojnie. Poczekamy ile trzeba. Lepiej wolniej, a dokładniej.

1 polubienie

Dokładnie.
A u mnie uptime nie przekroczył 3h ciągiem.
zazwyczaj reset od watchdoga lub exception.
Trzymamy kciuki :wink:

Wygląda na to że się udało. Zaraz poleci deploy z nową wersją NAMF-2020-18.

scrnli_21-02-2020_15-58-26

Stabilnie. Bez błędów. Bez zwiech i restartów. A najmniej stabilny czujnik (linia niebieska ciemna) zachowuje się wzorowo. YAY!

1 polubienie

NAMF-2020-18 i póki co 5 godzin bez resetu oraz krzaczków, spora poprawa. :smiley:
Okrągłe 500 commitów :wink: dało radę.

To nie tylko nasze commity. Niestety bardzo dużo czasu spędziliśmy na debugu. Ostatnie 2 commity rozwiązły problem. Znalezienie tego zajęło 2 doby. Ale za to sporo się nauczyliśmy. Bezcenne doświadczenie.

Dlatego dałem :wink:
FW elegancko się rozwija, tylko pogratulować uporu i chęci.
A tak zapytam przy okazji, czy kiedykolwiek będzie można liczyć na możliwość zmiany domyślnego portu w trybie klienta do dostępu przez www?