Klony i podróbki płytek ESP: jak nie dać się nabić w butelkę
Mark
Autor
Klony i podróbki płytek ESP: jak nie dać się nabić w butelkę

Podoba Ci się ten artykuł?

Tworzenie poradników zajmuje dużo czasu, a na stronie nie chce reklam. Jeśli pomogłem i masz na to ochotę — postaw mi kawę . To motywuje do dalszego pisania!

Klony i podróbki płytek ESP: na co uważać przed zakupem

To ostatnia część serii o płytkach ESP. W poprzednich trzech przeszedłem przez ESP8266 i klasyczny ESP32, serię S z natywnym USB, oraz rodzinę RISC-V (C2, C3, C5, C6, H2), zawsze skupiając się na konkretnych, kupowalnych płytkach i problemach, które faktycznie na nich występują. W tej części zamiast kolejnych chipów biorę na warsztat temat, który przewijał się przy każdej wcześniejszej płytce: różnicę między oryginałem a klonem, i między klonem a zwykłą podróbką. Bo to nie to samo, a mylenie tych pojęć prowadzi do złych decyzji zakupowych.

Ten artykuł ma nieco inną strukturę niż poprzednie trzy części, bo zamiast przechodzić przez kolejne konkretne modele płytek, skupiam się na wątkach przekrojowych: mostkach USB, weryfikacji pamięci flash, jakości komponentów i reputacji poszczególnych marek. Wszystkie te tematy pojawiały się już wcześniej przy okazji konkretnych płytek, tu zbieram je w jedną, kompletną całość, z dodatkowymi szczegółami, na które wcześniej nie było miejsca.

Klon to nie to samo co podróbka

Warto to rozróżnienie ustalić na starcie, bo w komentarzach i grupach oba słowa są używane zamiennie, a to prowadzi do niepotrzebnej paniki. Klon to płytka zbudowana na bazie otwartego projektu (jak NodeMCU czy D1 Mini) albo po prostu korzystająca z prawdziwego, oryginalnego modułu Espressif czy Ai-Thinker, tylko sprzedawana pod inną nazwą handlową, często z tańszymi komponentami dookoła. Sam moduł WROOM czy WROVER pod spodem jest zwykle prawdziwy, bo Espressif sprzedaje te moduły hurtowo każdemu producentowi, który chce je kupić. Podróbka to coś innego: układ scalony podszywający się pod inny, z podrobionym oznaczeniem na obudowie, sprzedawany jako coś, czym nie jest. W świecie ESP najczęstszym przykładem prawdziwej podróbki nie jest sam moduł WiFi (rzadko się to opłaca fałszować), tylko tani mostek USB-UART, czyli CH340, o czym więcej za chwilę. Ta terminologia ma znaczenie nie tylko semantyczne, bo różne rozwiązania problemu wymagają różnego podejścia: podrobiony mostek USB da się często naprawić samą zmianą sterownika, podczas gdy fałszywy główny chip (choć rzadki) zwykle oznacza, że płytka nadaje się wyłącznie do zwrotu.

Ta różnica ma praktyczne znaczenie. Kupując tani klon NodeMCU czy generyczny devkit ESP32, w 90% przypadków dostajesz prawdziwy moduł Espressif czy Ai-Thinker, tylko na płytce zaprojektowanej i wykonanej taniej niż oryginał. Problemy, na jakie tam trafisz, to gorsza jakość regulatora, mniej precyzyjna ścieżka USB, albo właśnie podrobiony mostek CH340. Rzadko jest to fałszywy główny chip ESP. Świadomość tego rozróżnienia pomaga też trzeźwo ocenić ryzyko przed zakupem: kupując najtańszy klon z nieznanej fabryki, ryzykujesz przede wszystkim gorsze komponenty pomocnicze, nie kupujesz kota w worku pod względem samego układu WiFi, który odpowiada za zdecydowaną większość funkcjonalności całej płytki.

CH340 kontra CP2102/CP2104 kontra CH9102: który mostek dostajesz i dlaczego to ma znaczenie

Prawie każda płytka omówiona w tej serii, poza tymi z natywnym USB (S2, S3, C3, C6, C5, H2), potrzebuje osobnego układu do zamiany sygnału USB na UART. Na rynku dominują trzy chipy: CP2102/CP2104 od Silicon Labs, CH340 od WCH, i nowszy CH9102, też od WCH. Wszystkie trzy robią dokładnie to samo, różnią się głównie ceną, jakością sterowników i tym, jak firma je zabezpiecza przed podrabianiem.

CP2102 / CP2104
Producent: Silicon Labs
Charakterystyka: droższy, stabilniejsza historia sterowników, obecny na oficjalnych płytkach Espressif
CH340 / CH340G
Producent: WCH
Charakterystyka: najtańszy, najczęściej podrabiany, wymaga ręcznej instalacji sterownika na Windows
CH9102
Producent: WCH
Charakterystyka: nowszy, szybsze wykrywanie portu, rzadziej podrabiany na razie, ale bywa mylony z CP2102 na aukcjach
Często występujące problemy z tym tematem:

  • Genuine CP2102N ma unikalny numer seryjny widoczny w systemie (np. przez udevadm na Linuksie), podrobione kopie często raportują pusty albo identyczny numer seryjny na wielu sztukach naraz, co samo w sobie jest sygnałem ostrzegawczym przy diagnozowaniu problemów z wieloma identycznymi płytkami.
  • Sprzedawcy na AliExpress czasem opisują płytkę jako „CP2102” w tytule aukcji, a w rzeczywistości montują tańszy CH9102 albo CH340, co nie jest same w sobie oszustwem funkcjonalnym (chip działa), ale prowadzi do instalowania złego sterownika przez kupującego, który ufa opisowi.
  • Zdarzył się udokumentowany przypadek podrobionego CP2102 (oznaczonego jako „S1LABs” zamiast prawidłowego logo), który wystawiał ponad 4V na pinie EN i ponad 5V na RX modułu ESP32 zamiast poprawnych poziomów, co skutkowało trwałą utratą łączności WiFi po podłączeniu, dopóki mostek nie został wymieniony na sprawny egzemplarz.

Czy sam moduł ESP też bywa podrabiany

To pytanie regularnie pojawia się w komentarzach, więc warto je rozłożyć na czynniki pierwsze. Odpowiedź brzmi: teoretycznie tak, praktycznie bardzo rzadko, i z konkretnego powodu ekonomicznego. Podrabianie chipa CH340 (kosztującego dosłownie grosze) opłaca się przy produkcji na masową skalę, bo nawet niewielka oszczędność na sztuce, pomnożona przez setki tysięcy egzemplarzy, daje realny zysk. Podrabianie samego modułu WROOM czy WROVER ma dużo mniejszy sens biznesowy, bo Espressif sprzedaje te moduły hurtowo każdemu producentowi, który chce je legalnie kupić, więc nie ma presji ekonomicznej, żeby je fałszować, taniej po prostu kupić prawdziwy moduł.

To, co faktycznie bywa mylone z „podróbką”, to różnica między prawdziwym, legalnym klonem modułu (jak popularne moduły Ai-Thinker, które są osobną, legalną linią produktową opartą na tym samym układzie ESP32 kupionym od Espressif) a rzeczywistym oszustwem, czyli sprzedawaniem generycznej płytki jako oficjalnego produktu Espressif z podrobionym logo i oznaczeniami. Ten drugi przypadek jest rzadki i zwykle łatwy do zweryfikowania: oficjalne moduły Espressif mają unikalny numer FCC ID widoczny na obudowie, a marka XIAO od Seeed Studio ma własny, osobny numer FCC ID na przedniej stronie płytki. Jeśli sprzedawca reklamuje produkt jako „oryginalny Espressif DevKitC” a płytka nie ma żadnych oznaczeń certyfikacyjnych, warto zachować ostrożność, choć w praktyce sama funkcjonalność modułu WiFi pod spodem najczęściej i tak działa poprawnie, niezależnie od legalności oznaczeń na obudowie.

Wielka afera sterownika CH340 na Windows

To temat na tyle poważny i powtarzający się przy każdej płytce z CH340 w tej serii, że zasługuje na osobne, dokładniejsze wyjaśnienie. W latach 2023-2024 Microsoft dostarczył przez Windows Update nowe wersje sterownika CH340 (numery 3.8.2023.2 i 3.9.2024.9). Na oryginalnych, licencjonowanych chipach CH340 nowy sterownik działał bez zarzutu. Na podrobionych, nieoznakowanych kopiach (rozpoznawalnych po braku jakiegokolwiek nadruku na samym układzie, zamiast tego widać gołą, prostokątną obudowę) nowy sterownik powodował całkowitą niemożność otwarcia portu szeregowego, komunikat błędu w rodzaju „nie można skonfigurować portu”, albo urządzenie widoczne w Menedżerze jako „USB2.0-Ser!” zamiast prawidłowej nazwy.

Najbardziej frustrującym elementem całej sprawy było to, że Windows Update regularnie próbował ponownie zainstalować dokładnie tę samą, wadliwą wersję sterownika, nawet jeśli ktoś ręcznie cofnął instalację do starszej, działającej wersji (3.5.2019.1). To sprawiało wrażenie pętli bez wyjścia, gdzie po tygodniu problem wracał sam z siebie po kolejnej automatycznej aktualizacji systemu. Community stworzyła dedykowane narzędzie (FakeCH340DriverFixer, dostępne na GitHubie) które automatyzuje cofnięcie sterownika do działającej wersji i blokuje ponowną instalację wadliwej wersji przez Windows Update. Warto podkreślić, że to nie jest wina Twojego kodu, Twojej płytki jako takiej, ani nawet bezpośrednio Twojego pecha, tylko efekt tego, że ktoś w łańcuchu produkcji zaoszczędził kilka centów na nielicencjonowanej kopii chipa.

Skala problemu była na tyle duża, że temat trafił do dokumentacji zupełnie niezwiązanych ze sobą projektów, od narzędzi do symulacji wyścigów samochodowych po oprogramowanie sterujące podświetleniem LED, bo wszystkie one w jakimś momencie łączą się z urządzeniami przez port szeregowy oparty na CH340. To dobry przykład tego, jak jeden drobny, pozornie niszowy problem sprzętowy potrafi rozlać się na dziesiątki niepowiązanych ze sobą społeczności, po prostu dlatego, że wszystkie korzystają z tego samego, powszechnego i tanio kopiowanego układu.

Często występujące problemy z tym tematem:

  • Port działa poprawnie na Linuksie albo macOS, ale nie na Windows, co bywa mylące, bo sugeruje problem ze sterownikiem systemowym, a nie z samym chipem, mimo że przyczyna leży właśnie w chipie i konkretnej wersji sterownika Windows.
  • Objawy bywają niespójne między identycznymi płytkami z tej samej partii, część działa bez problemu, część nie, co zależy od tego, z której dokładnie fabryki pochodził konkretny egzemplarz chipa CH340 na danej płytce.
  • Próba obniżenia prędkości transmisji (baudrate) w niektórych przypadkach pozwala obejść problem bez ingerencji w sterownik, choć nie jest to rozwiązanie uniwersalne i działa tylko dla części zgłoszonych przypadków.

Fałszywe rozmiary pamięci flash

To drugi, obok CH340, najczęściej powtarzający się temat przy klonach z całej tej serii, niezależnie od tego, czy mówimy o ESP8266, klasycznym ESP32 czy nowszym S3. Sprzedawca na aukcji deklaruje określony rozmiar flash, np. 16 MB, a po podłączeniu płytki i sprawdzeniu okazuje się, że fizycznie zamontowany układ ma 4 MB albo mniej. To nie zawsze świadome oszustwo, czasem wynika z tego, że sprzedawca kopiuje opis od innego sprzedawcy albo z generycznego szablonu, nie sprawdzając faktycznej specyfikacji własnej partii towaru.

Weryfikacja jest na szczęście prosta i zajmuje dosłownie chwilę. Po podłączeniu płytki do komputera wystarczy w terminalu wywołać polecenie `esptool.py flash_id`, które odpyta bezpośrednio układ flash o jego rzeczywisty rozmiar, niezależnie od tego, co jest napisane na aukcji czy w dokumentacji sprzedawcy. Alternatywnie, sam log bootowania widoczny w monitorze portu przy starcie firmware zwykle zawiera linijkę z wykrytym rozmiarem flash, co też wystarcza do szybkiej weryfikacji bez instalowania dodatkowych narzędzi.

Często występujące problemy z tym tematem:

  • Firmware skompilowany pod większą partycję niż faktycznie dostępna flash powoduje błąd uploadu na samym końcu procesu, po pełnym czasie wgrywania, co jest frustrujące, bo problem ujawnia się dopiero po kilku minutach czekania, nie od razu.
  • Błędna konfiguracja rozmiaru partycji w ustawieniach kompilacji (np. w ESPHome albo Arduino IDE) prowadzi do udanego uploadu, ale braku poprawnego bootowania, bo firmware czyta dane spod adresu, który fizycznie nie istnieje na mniejszej pamięci.
  • Zdarzają się też przypadki odwrotne, gdzie płytka ma realnie więcej pamięci niż zadeklarowano, co samo w sobie nie jest problemem, ale bywa mylące przy próbie ręcznego skonfigurowania rozmiaru partycji na sztywno, zamiast pozwolić narzędziom wykryć to automatycznie.

Jakość regulatorów napięcia i ogólnego wykonania PCB

Ten temat przewijał się przy niemal każdej generycznej płytce w poprzednich trzech częściach, więc warto go zebrać w jednym miejscu. Klasyczny, tani regulator liniowy AMS1117 stosowany na większości budżetowych płytek ESP ma spory spadek napięcia (ok. 1.1-1.3V), co oznacza, że przy zasilaniu z akumulatora, gdzie napięcie wejściowe jest bliskie dolnej granicy, regulator nie jest w stanie utrzymać stabilnych 3.3V na wyjściu, zwłaszcza w momentach szczytowego poboru prądu, jak start transmisji WiFi. To bezpośrednia przyczyna sporej części zgłoszeń o resetach typu brownout, opisywanych przy niemal każdym chipie w tej serii.

Poza samym regulatorem, jakość i ilość kondensatorów filtrujących na szynie zasilania też różni się zauważalnie między oryginalną płytką Espressif a tanim klonem. Oryginalne płytki mają zwykle więcej pojemności blisko modułu WiFi, co lepiej wygładza chwilowe skoki poboru prądu. Na tańszych klonach bywa to ograniczone do absolutnego minimum, żeby zaoszczędzić na komponentach, co przekłada się właśnie na częstsze problemy z zasilaniem przy dużym obciążeniu.

Warto dodać, że sam pobór prądu przy transmisji WiFi na chipach ESP potrafi chwilowo skoczyć do 400-500 mA, mimo że średni pobór w typowej pracy to zwykle kilkadziesiąt miliamperów. Te krótkie, ale intensywne skoki są trudne do zmierzenia zwykłym multimetrem (który uśrednia odczyt w czasie), łatwiej je zaobserwować oscyloskopem albo po prostu po objawach: reset akurat w momencie łączenia z siecią WiFi, nie w spoczynku. To jeden z powodów, dla których dwie identycznie wyglądające płytki od różnych producentów mogą się zachowywać zupełnie inaczej pod tym samym obciążeniem, mimo identycznego głównego chipa ESP.

Często występujące problemy z tym tematem:

  • Prosty test diagnostyczny: jeśli reset przy starcie WiFi znika po dodaniu kondensatora 220-470 µF blisko szyny 3V3, to potwierdza, że przyczyną jest właśnie jakość zasilania na płytce, nie błąd w kodzie.
  • Jakość lutowania złącza USB (micro USB na starszych płytkach, USB-C na nowszych) bywa niższa na najtańszych klonach, obluzowane złącze po kilku miesiącach codziennego użytkowania to powtarzająca się skarga w recenzjach na AliExpress, zwłaszcza przy płytkach kupowanych masowo do wielu identycznych projektów.
  • Grubość i jakość laminatu PCB wpływa na sztywność samej płytki, cieńszy, tańszy laminat na niektórych generycznych klonach łatwiej się wygina i pęka przy nieostrożnym montażu w obudowie, czego nie widać na zdjęciach aukcji, tylko dopiero przy fizycznym kontakcie z produktem.

Reputacja konkretnych linii płytek

Po przejściu przez trzy części tej serii, warto zebrać ogólne wnioski o poszczególnych markach i liniach produktowych, opierając się na tym, co faktycznie wychodziło przy okazji poszczególnych chipów.

  • Oficjalne płytki Espressif (DevKitC, DevKitM): najwyższa powtarzalność, zawsze prawdziwy CP2102/CP2102N, referencyjna jakość wykonania, bo to na tych właśnie płytkach Espressif sam testuje kolejne wersje ESP-IDF przed wydaniem. Cena wyższa niż klony, ale to jedyny sposób na pewność, że napotkany problem leży w chipie albo w kodzie, nie w płytce, co szczególnie się przydaje przy pierwszym kontakcie z nowym chipem.
  • NodeMCU (Amica, dziś głównie generyczne): oryginalna Amica dawno zniknęła z produkcji, dzisiejsze płytki pod tą nazwą to w większości generyczne klony trzecich firm, zwykle z prawdziwym modułem Ai-Thinker pod spodem, ale z CH340 zamiast CP2102 i zmienną jakością regulatora. Sama nazwa „NodeMCU” na aukcji nie mówi już dziś nic o konkretnym producencie ani jakości wykonania, tylko o ogólnym layoucie płytki.
  • Wemos / LOLIN: dobra reputacja pod względem formatu i kompatybilności z shieldami, ale z udokumentowanymi problemami sprzętowymi przy deep sleep na części partii D1 Mini, warto testować wybudzanie od razu po zakupie, zanim zamontujesz płytkę na stałe w projekcie. Marka LOLIN przejęła rozwój linii Wemos po tym, jak oryginalny twórca wycofał się z projektu, więc starsze i nowsze płytki pod bardzo podobną nazwą mogą się od siebie różnić bardziej, niż mogłoby się wydawać.
  • Seeed Studio XIAO: generalnie wysoka jakość wykonania i powtarzalność, ale mniejsza antena PCB na formacie XIAO oznacza kompromis w zasięgu względem większych płytek, warto to świadomie zaakceptować przy wyborze tego formatu. Marka konsekwentnie poprawia kolejne rewizje na podstawie feedbacku społeczności, co widać choćby po poprawionej antenie w nowszych partiach XIAO ESP32-S3.
  • Generyczne devkity z AliExpress (bez konkretnej marki): najtańsza opcja i najbardziej zmienna jakość, tu najczęściej trafiają się mislabelowana flash, podrobiony CH340 i słabszy regulator. Sensowne do zastosowań produkcyjnych po weryfikacji konkretnej partii, ryzykowne jako pierwsza płytka do nauki, gdzie chcesz mieć pewność, że problem nie leży w sprzęcie, a nie masz jeszcze doświadczenia, żeby to szybko rozpoznać.

Gdzie kupować, żeby zmniejszyć ryzyko

Nie ma sposobu na całkowite wyeliminowanie ryzyka trafienia na słabszą partię, ale wybór miejsca zakupu realnie wpływa na prawdopodobieństwo problemów opisanych w tej części. Polscy dystrybutorzy jak Botland, Antratek, TME czy Kamami sprzedają płytki z jasno opisanym pochodzeniem, zwykle z konkretną, sprawdzoną partią od uznanego producenta (Espressif, Seeed, Adafruit, Unexpected Maker), co eliminuje większość ryzyka z tego artykułu kosztem wyższej ceny niż na AliExpress. To dobry wybór do pierwszego kontaktu z nowym chipem, kiedy chcesz mieć pewność, że ewentualny problem leży w Twoim kodzie, nie w płytce.

AliExpress i podobne platformy dają zdecydowanie niższe ceny, ale jakość i spójność między sprzedawcami (a czasem między kolejnymi zamówieniami od tego samego sprzedawcy) bywa nieprzewidywalna. Warto kierować się opiniami z faktycznymi zdjęciami produktu, nie samymi gwiazdkami, sprawdzać czy sprzedawca ma dłuższą historię sprzedaży akurat tego konkretnego modelu płytki, i unikać najtańszej oferty w kategorii, jeśli różnica cenowa względem średniej jest podejrzanie duża, bo to często sygnał dodatkowych oszczędności na komponentach, które nie są widoczne na zdjęciu aukcji.

Dla projektów produkcyjnych albo większych zamówień, dobrą praktyką jest zamówienie próbnej partii kilku sztuk przed złożeniem dużego zamówienia, i przetestowanie ich dokładnie pod kątem punktów z checklisty niżej, zanim zamówisz sto identycznych płytek do finalnego produktu.

Checklista po rozpakowaniu paczki

Kilka prostych kroków, które warto przejść zaraz po otrzymaniu nowej płytki ESP, niezależnie od tego, czy to pierwsza sztuka do nauki, czy jedna z kilkudziesięciu do większego projektu, zanim zamontujesz ją na stałe albo zaczniesz obwiniać własny kod o problemy, które w rzeczywistości leżą w sprzęcie. Te kroki zajmują dosłownie kilka minut, a potrafią oszczędzić godziny frustrującego debugowania kodu, który od początku był poprawny:

  • Sprawdź realny rozmiar flash przez `esptool.py flash_id` albo z logu bootowania, porównaj z tym, co było napisane na aukcji.
  • Obejrzyj mostek USB pod kątem oznaczeń, brak jakiegokolwiek nadruku na prostokątnym, 16-pinowym chipie blisko złącza USB to typowy sygnał podrobionego CH340.
  • Na Windows, jeśli port się nie pojawia albo zgłasza błąd mimo poprawnie zainstalowanego sterownika, sprawdź wersję sterownika CH340 w Menedżerze urządzeń i w razie potrzeby cofnij do starszej, sprawdzonej wersji.
  • Przetestuj deep sleep i wybudzanie od razu po zakupie na płytkach ESP8266, jeśli projekt ma być bateryjny, zamiast zakładać, że będzie działać dopiero na etapie finalnego montażu.
  • Zmierz napięcie na szynie 3V3 pod obciążeniem (najlepiej podczas transmisji WiFi) jeśli podejrzewasz problemy z zasilaniem, spadek poniżej ok. 3.0V to sygnał do dodania kondensatora albo zmiany zasilacza.
  • Dla większych zamówień tej samej płytki, przetestuj przynajmniej dwie-trzy sztuki z partii przed zamontowaniem wszystkich na stałe, żeby wyłapać ewentualną niespójność między partiami, opisaną wcześniej przy kilku płytkach w tej serii, zanim zainwestujesz czas w montaż całej reszty.

Podsumowanie całej serii

Cztery części, od ESP-01 po ESP32-C5, od gołego chipa za kilka złotych po pełnowymiarowy devkit z natywnym USB i dwupasmowym WiFi, i jeden wniosek powtarzający się w każdej z nich: sam chip ESP rzadko jest problemem. Zdecydowana większość realnych kłopotów, na jakie trafisz w praktyce, wynika z tego, co producent płytki dorzucił dookoła chipa: jaki mostek USB wybrał, jak poprowadził zasilanie, jak zweryfikował (albo nie) rzeczywistą pojemność pamięci flash. Znajomość tych wzorców nie eliminuje problemów całkowicie, ale pozwala od razu rozpoznać, czy trafiony błąd to coś, co warto naprawiać w kodzie, czy raczej coś, na co trzeba spojrzeć z lutownicą albo multimetrem w ręku.

Warto też na koniec podkreślić coś, co przewijało się przez całą serię: żaden z opisanych problemów nie dyskwalifikuje danej płytki jako takiej. ESP8266 z niedziałającym deep sleep na konkretnym klonie wciąż świetnie sprawdzi się w projekcie zasilanym z sieci, gdzie deep sleep w ogóle nie jest potrzebny. ESP32-C6 ze współdzieloną anteną wciąż jest najprostszym możliwym sposobem na wejście w Zigbee i Thread w typowym domowym zastosowaniu. Chodzi o to, żeby świadomie dobrać płytkę do konkretnego zastosowania, znając ograniczenia z góry, zamiast odkrywać je boleśnie w połowie projektu, kiedy zmiana płytki oznacza przeprojektowanie połowy rzeczy.

To zamyka całą serię o płytkach ESP. Jeśli szukasz konkretnego modelu, wróć do wcześniejszych części: ESP8266 i ESP32 klasyczny w pierwszej, ESP32-S2 i S3 z natywnym USB w drugiej, cała rodzina RISC-V (C2, C3, C5, C6, H2) w trzeciej. Cztery artykuły razem dają jedno miejsce z kompletem informacji o realnym, praktycznym doświadczeniu korzystania z płytek ESP, od najtańszego ESP-01 po najnowszy dwupasmowy C5, nie tylko w formie suchej specyfikacji, ale opisu tego, co faktycznie czeka Cię po rozpakowaniu paczki, pierwszym uploadzie firmware, i pierwszych tygodniach pracy urządzenia w realnych warunkach.

Społeczność MarkLabs

Dyskutuj na forum

Pytania, doświadczenia i rozwiązania do tego artykułu publikujemy teraz na forum MarkLabs.

Otwórz dyskusję na forum

Wymagane jest bezpłatne konto MarkLabs. Dotychczasowe komentarze bloga nie są przenoszone.

buycoffee.to