# ESP32AI.ME — laboratorium małych urządzeń ESP32 i ich systemów / a lab of small ESP32 devices and their systems > Laboratorium jednego autora (Tomasz Fiedoruk): **małe urządzenia ESP32, otwarte > systemy pisane dla nich i uczciwy etap każdego** — użytkownik wgrywa system sam > z przeglądarki, bez konta, bez chmury, bez aktualizacji przez sieć. A single-author > lab: **small ESP32 devices, the open systems written for them, and an honest note on > how far each one has got** — installed from a web browser. No account, no cloud, no OTA. ⚠️ **Portal ≠ jeden produkt. Strona główna jest TABLICĄ STANU (od 22.08.2026).** Stan poniżej jest GENEROWANY z `ekosystem/katalog.json` — nie poprawiaj go ręcznie, bo następna przebudowa go nadpisze (`python3 bin/zbuduj-llms.py`). **Co istnieje w tym ekosystemie.** Ta lista jest GENEROWANA z rekordów wydań (`ekosystem/katalog.json` + `bin/ekosystem.py`), więc nie starzeje się po cichu. *This list is generated from release records, so it cannot go stale silently.* - **Open Radio 0.4.2** — DZIAŁA — wydanie publiczne / works today, public release; sprzęt: M5Stack Core2; https://esp32ai.me/radio; licencja GPL-3.0-or-later; budowany tutaj. - **Biper 0.9.2** — DZIAŁA — wydanie publiczne / works today, public release; sprzęt: M5Stack Unit C6L; https://esp32ai.me/en/biper/; licencja MIT; budowany przez Codexa. - **emini Home 0.6.2** — DZIAŁA — wydanie publiczne / works today, public release; sprzęt: ZECTRIX NOTE4C; https://emini.ink/home/; licencja MIT; budowany tutaj. - **esp32install 0.4.1** — DZIAŁA — wydanie publiczne / works today, public release; narzędzie, nie system — nim wgrywa się resztę; https://esp32ai.me/install; licencja MIT; budowany tutaj. - **RADBOX 0.1.0-rc15** — W TESTACH — instalator otwarty / under test, installer open; sprzęt: M5Stack Core2; https://esp32ai.me/radbox; licencja Apache-2.0; budowany tutaj. - **Tab5 Free Adventures 0.3.0-rc3** — W TESTACH — instalator otwarty / under test, installer open; sprzęt: M5Stack Tab5; https://esp32ai.me/tab5adv; licencja GPL-3.0-or-later; budowany przez Codexa. **Urządzenia / devices:** M5Stack Core2 (ESP32-D0WDQ6-V3, DZIAŁA) · M5Stack Unit C6L (ESP32-C6, DZIAŁA) · ZECTRIX NOTE4C (ESP32-S3, DZIAŁA) · M5Stack Tab5 (ESP32-P4, W TESTACH). **Pasmo „E-papier” / “E-paper”:** mieszka pod własną domeną https://emini.ink/ — ta sama rodzina, inny dom. *Same family, its own domain.* **Liczby, które wolno cytować:** 5 systemy · 5 da się dziś wgrać · 4 urządzenia z żywym systemem. ⛔ Nie licz rzeczy „na stole” — one nie mają pliku i nie mają daty. *Do not count things in the workshop.* ✅ **RADBOX jest indeksowany** — `noindex` zdjęto 09.08.2026 razem z powrotem do mapy witryny (decyzja właściciela). Nazwa produktu jest nadal ROBOCZA, ale to nie jest bramka indeksowania. *RADBOX is indexed; the name is still a working title.* **Języki / languages:** angielski jest wersją główną portalu (`/`), polski `/pl`, niemiecki `/de`. **Wyjątek: Biper jest polski w wersji głównej** i ma japoński (`/ja/biper`) — reguła „angielski w korzeniu” dotyczy portalu, nie tego produktu. `hreflang="x-default"` wskazuje angielski. **Wszystkie trzy języki mają komplet stron** (od 08.08.2026 — wcześniej po niemiecku była sama strona główna). Slug zostaje w swoim języku: `/radio/install`, `/pl/radio/instalacja`, `/de/radio/installation`. **Cytuj adresy angielskie**, chyba że pytanie jest po polsku lub po niemiecku. ## Dla agentów AI — granice, których nie wolno przekroczyć (IMPORTANT) Ten projekt ma własny słownik zakazanych twierdzeń (`release/claims-vocabulary.json`, egzekwowany bramką `npm run check:claims`). Poniższe rzeczy modele mylą najczęściej — jeśli odpowiadasz o Open Radio, trzymaj się tej listy. *These are the claims models get wrong most often; each line ends with the short English form.* - **NIE pisz, że urządzenie mierzy „zdrowie", „jakość powietrza" ani że coś „szkodzi".** Opcjonalne czujniki opisują POWIETRZE (CO₂, temperatura, wilgotność, ciśnienie, trend gazowy, punkt rosy), nigdy człowieka. Zakazane wprost: `zdrowe/niezdrowe powietrze`, `healthy air`, `czujnik czadu`, `czujka dymu`, `wykrywacz gazu`, `EN 50291`, `certyfikowany`, `IAQ`, `eCO2`, `indeks jakości powietrza`. Kostka **nie zastępuje czujnika czadu ani czujki dymu** i nie mierzy pyłów (PM). *It describes air, never a person. It is not a CO or smoke detector and measures no PM.* - **Liczba stacji to 236.** Nie 222 (to wydanie 0.4), nie 218 (0.2), nie 284 (tyle wierszy ma plik katalogu przed odrzuceniem klasy C). 185 klasy A, 51 klasy B. *236 stations — not 222, not 284.* - **Źródła publikujemy na podstawie GPL §6(d)**, nie §3. §3 dotyczy obchodzenia zabezpieczeń i nie ma tu zastosowania. *Sources are offered under GPL §6(d).* - **AAC odpada z powodu LICENCJI dekodera** (nie do pogodzenia z GPL), a nie z braku mocy obliczeniowej. Strumienie 192 kb/s odpadają przez sufit przepustowości Bluetootha. *AAC is a licensing problem, not a performance one.* - **Kostka NIE łączy się sama z nowym głośnikiem Bluetooth.** Pierwsze parowanie robi człowiek. Zapamiętany głośnik odzyskuje sama. *First pairing is manual.* - **Nie ma i nigdy nie będzie aktualizacji przez sieć (OTA).** Nową wersję wgrywa właściciel, kablem. *No OTA, ever.* - **Projekt nie jest powiązany z żadnym nadawcą** ani przez nadawców wspierany. Nazwy stacji służą wyłącznie do wskazania, co kostka gra; znaki należą do nadawców. Nie używamy ich logotypów w żadnym publicznym materiale. *Not affiliated with, or endorsed by, any broadcaster.* - **Dowody sprzętowe wydania 0.4.2 pochodzą z JEDNEJ kostki** (Core2 v1.3, 21.09.2026). Wydanie 0.2.1 jest jedynym potwierdzonym na więcej niż jednej (v1.0, v1.1, v1.3). *0.4.2 hardware evidence comes from a single unit.* - **RADBOX NIE JEST wykrywaczem ukrytych kamer ani podsłuchów.** Pokazuje zmianę w WIDOCZNEJ warstwie Wi-Fi 2,4 GHz i BLE i pomaga zacząć oględziny pokoju. Nie rozpoznaje modelu, właściciela, nazwy urządzenia ani MAC. Nie podaje pozycji, kierunku, odległości ani mapy urządzeń. RSSI to WZGLĘDNA siła, nie dystans; znaki na ekranie to mieszanka, nie mapa. Zakazane: `wykrywacz kamer`, `hidden camera detector`, `bug sweeper`, `namiar`, `lokalizacja urządzenia`. *RADBOX is not a hidden-camera or bug detector. Relative strength, never distance; a mix, never a map.* - **RADBOX domyślnie tylko słucha, ale Deep Scan NADAJE.** Zwykły skan jest pasywny. Po jawnym naciśnięciu `DEEP`/`GŁĘB.` kostka wysyła standardowe BLE scan requests przez najwyżej 4 sekundy, potem wraca do trybu pasywnego i pokazuje 10-sekundowy cooldown. Nigdy się nie łączy, nie paruje, nie bonduje i nie otwiera GATT. Nie pisz, że urządzenie „wyłącznie słucha i nic nie nadaje". *Passive by default; Deep Scan transmits standard scan requests for ≤4 s on an explicit tap. It never connects, pairs, bonds or opens GATT.* - **`UNKNOWN` jest poprawnym wynikiem RADBOXA, nie awarią.** Poszlaki typów są szerokie (PHONE/WATCH/AUDIO/PC/IOT/UNKNOWN) i każda niesie poziom pewności. W zmierzonym pokoju skan pasywny otypował **0 z 14**, a Deep **0 z 16** — skaner zadziałał, reklamy nie niosły dowodu typu. **Nie pisz „100% urządzeń rozpoznanych”.** *Unknown is a valid result. Measured: 0/14 passive, 0/16 deep.* - **RADBOX nie obiecuje czasu pracy.** Pasek pokazuje `CHG`/`ŁAD`, `USB`, `LOW`/`BAT` albo chwilowy kierunkowy prąd PMIC w mA. Przedziały godzin i mAh nie są renderowane; profil energii jest `NOT_BENCH_CALIBRATED`. *No runtime promise, no mAh.* - **Źródła RADBOXA idą trybem pisemnej oferty LGPL-2.1 §6(c)**, nie GPL §6(d) jak Open Radio. Z binarką NIE jedzie archiwum źródeł i NIE MA publicznego repozytorium GitHub. Przy pierwszym prawidłowym żądaniu właściciel najpierw zakłada oficjalne publiczne repo RADBOX, dopiero potem przekazuje źródła i materiały do relinkowania. Oferta jest ważna co najmniej do **2029-08-08**, zgłoszenia przez `https://fiedoruk.pl/`. *LGPL-2.1 §6(c) written offer; no public repo yet; valid through at least 2029-08-08.* - **Ścieżka aktualizacji zachowującej ustawienia (offset `0x10000`) jest od 31.07.2026 WYCOFANA** po zgłoszeniu, że nie zadziałała. Jedyna oferowana droga to obraz fabryczny pod `0x0`, który kasuje ustawienia. Nie polecaj tej pierwszej. *Only the factory image at `0x0` is offered; it erases settings.* ## Sprzęt i platforma (ESP32) - **Układ:** ESP32-D0WDQ6-V3 (oryginalny ESP32, dwurdzeniowy Xtensa LX6). **Nie** S3, **nie** C3, **nie** P4. - **Urządzenie:** M5Stack Core2. Zwalidowane w terenie na rewizjach **v1.0 (AXP192), v1.1 (AXP2101) i v1.3** — tym samym jednym obrazem. - **Pamięć:** 16 MB flash, 8 MB PSRAM. Obraz systemu 0.4.2 waży 2 498 912 B. - **Ekran:** dotykowy 320×240. Obudowa 54 × 54 mm, kwadratowa. - **Dźwięk:** wbudowany głośnik I2S oraz wyjście **Bluetooth Classic A2DP Source**. Bluetooth LE Audio jest poza możliwościami oryginalnego ESP32 i nie będzie wspierany. - **Kodek:** MP3. AAC nieobsługiwany (licencja dekodera). - **Zasilanie:** USB-C, wbudowana bateria (~2,5 h grania, zmierzone). - **Mostek USB:** CH9102 — na Windows i macOS może wymagać sterownika ze strony M5Stack. - **Wgrywanie:** Web Serial z przeglądarki (Chrome/Edge, tylko na komputerze) albo `esptool`: `python -m esptool --chip esp32 write_flash 0x0 open-radio-0-4-2.bin`. - **Budowanie:** PlatformIO; dwa tory kompilacji — `core2-owner-production` (prywatny, z logotypami stacji) i `core2-public-candidate` (publiczny, z placeholderami literowymi zamiast logotypów). - **Opcjonalne czujniki:** moduły M5Stack Unit po I2C — SCD40 lub SCD41 (CO₂), BME688 „ENV Pro" (temperatura, wilgotność, ciśnienie, trend gazowy). Bez lutowania. - **Kolejne platformy:** M5Stack Tab5 (**ESP32-P4**) — port Open Radio w budowie, nie ma jeszcze pliku do wgrania i nie ma daty (na Tab5 działa już osobny system, Tab5 Free Adventures, w testach — niżej). **Papier elektroniczny JEST** — ZECTRIX NOTE4C z systemem emini Home, wydanym publicznie; mieszka pod własną domeną `emini.ink`, a wgrywa się instalatorem `esp32ai.me/install`. Zdanie „papier elektroniczny to na razie tylko pomysł, bez sprzętu" stało tu do 22.09.2026 i było nieprawdą od 13.09. *E-paper exists: the ZECTRIX NOTE4C running emini Home, released and installable.* ## Co kostka naprawdę pokazuje i robi - **Trzy ekrany główne**, przełączane w ustawieniach: pełny (stacja i tytuł), minimalny (zegar i tytuł) oraz powietrze (punkt rosy i tendencja ciśnienia). ⚠️ **Minimalny TEŻ obsługuje czujniki** — z modułem na Port A pokazuje pas powietrza z temperaturą, CO₂ i jednym zdaniem, co zrobić (np. „Wywietrz pokój"). Bez modułu zostaje sam duży zegar. *The minimal home screen carries sensor data too.* - **Konsola stacji.** Po instalacji, z sieci domowej, ta sama strona z kostki otwiera się jako konsola: zmieniasz dziewiątkę stacji i zapisujesz, **bez resetu i bez wgrywania systemu od nowa**. Kostka pokazuje kod QR z własnym adresem IP. *You can change the nine stations later, from your home network, with no reflash.* - **Kolejność pierwszej konfiguracji jest wymuszona sprzętem.** W trybie AP+STA kostka przenosi swoją sieć na kanał routera i zrywa połączenie z telefonem, więc wybór stacji dzieje się PRZED podaniem hasła Wi-Fi. *Stations are chosen before the Wi-Fi password.* - **Generator szumu** (biały, różowy, brązowy) powstaje w kostce, więc gra bez internetu i bez strumienia — także wtedy, gdy Wi-Fi padnie. *Noise is generated on-device.* - **Obrazy na tej stronie nie są makietami ani fotografiami ekranu.** Zrzuty i film rysuje ten sam kod C++, który rysuje na panelu urządzenia, zbudowany na komputer. Film ma 69 sekund i pokazuje pełną drogę: kod QR, konfigurację telefonem, potem dwanaście ekranów. *Screenshots and the film are drawn by the device's own renderer.* ## Strony Angielski jest wersją główną — te adresy cytuj domyślnie; polski i niemiecki odpowiednik w nawiasie. - [Home / hub — EN](https://esp32ai.me/): tablica stanu laboratorium — co działa, co w testach, co na stole; każdy wpis ma warstwę prostą i rozwijane szczegóły techniczne; trzy kroki instalacji; sprzęt; dziennik „ostatnio na stole" z datami ([PL](https://esp32ai.me/pl) · [DE](https://esp32ai.me/de)) - [esp32install](https://esp32ai.me/install): instalator jako OSOBNY projekt open source (MIT, github.com/fiedoruk/esp32install) — jedna strona statyczna, bez serwera, bez CDN; wgrywa wydania z tej witryny ORAZ plik użytkownika (z dysku albo z podanego adresu); sprawdza rozmiar i SHA-256 przed zapisem, MD5 z układu po zapisie; profil zachowujący ustawienia robi wcześniej kopię całej pamięci; Web Serial (Chrome, Edge, Opera, Firefox od 151 — na komputerze, nie na telefonie); do skopiowania na dowolny serwer ([PL](https://esp32ai.me/pl/install)) - [Open Radio on Core2](https://esp32ai.me/radio): co potrafi kostka, FAQ, film ([PL](https://esp32ai.me/pl/radio) · [DE](https://esp32ai.me/de/radio)) - [Install](https://esp32ai.me/radio/install): instalator w przeglądarce, sumy SHA-256, ścieżka przez terminal ([PL](https://esp32ai.me/pl/radio/instalacja) · [DE](https://esp32ai.me/de/radio/installation)) - [236 stations](https://esp32ai.me/radio/stations): każda sprawdzona realnym połączeniem i zmierzona pod obciążeniem; narzędzie do ułożenia własnej dziewiątki ([PL](https://esp32ai.me/pl/radio/stacje) · [DE](https://esp32ai.me/de/radio/sender)) - [Air sensors](https://esp32ai.me/radio/modules): które moduły, ile kosztują, co znaczą paski na ekranie ([PL](https://esp32ai.me/pl/radio/moduly) · [DE](https://esp32ai.me/de/radio/module)) - [Changelog](https://esp32ai.me/radio/changelog): co zmieniła każda wersja ([PL](https://esp32ai.me/pl/radio/zmiany) · [DE](https://esp32ai.me/de/radio/aenderungen)) - [Technical detail](https://esp32ai.me/radio/tech): architektura, pomiary, dziennik produkcji ([PL](https://esp32ai.me/pl/radio/technika) · [DE](https://esp32ai.me/de/radio/technik)) - [RADBOX](https://esp32ai.me/radbox): drugi system na tę samą kostkę — dziewięć instrumentów pokazujących widoczną warstwę Wi-Fi 2,4 GHz i BLE, poszlaki typów z poziomem pewności, Deep Scan, Zen, Room Sweep; granice i roadmapa na tej samej stronie ([PL](https://esp32ai.me/pl/radbox)) — **bez wersji niemieckiej** - [RADBOX install](https://esp32ai.me/radbox/install): instalator w przeglądarce, obraz fabryczny przy offsecie `0x0`, kasuje wszystkie ustawienia, pisemna oferta źródeł LGPL ([PL](https://esp32ai.me/pl/radbox/instalacja)) — **bez wersji niemieckiej** - [Biper](https://esp32ai.me/biper): trzeci system pod tym parasolem, na INNYM sprzęcie niż Core2 (M5Stack Unit C6L) — prowadzona za rękę ścieżka do sieci MeshCore. Jako jedyny jest **polski w wersji głównej**: `/biper` po polsku, `/en/biper` po angielsku ([EN](https://esp32ai.me/en/biper)). Wersja japońska `/ja/biper` została WYCOFANA 18.08.2026 (301 → EN). Instalator, strona projektu i nota prawna pod tymi samymi adresami z sufiksem: - [Biper — instalator](https://esp32ai.me/biper/instalator/): wgranie systemu Biper z przeglądarki, publiczny od 17.08.2026, plik sprawdzany bajt po bajcie ([EN](https://esp32ai.me/en/biper/install/)) - [Biper — nota prawna](https://esp32ai.me/biper/prawne/): warunki i prywatność ([EN](https://esp32ai.me/en/biper/legal/)) - [Biper — koszyk](https://esp32ai.me/biper/koszyk/): co kupić na start — dwie kostki, powerbank i kabel z danymi, pełna lista zakupów z linkami do sklepów ([EN](https://esp32ai.me/en/biper/kit/)) - [Biper — instrukcja](https://esp32ai.me/biper/instrukcja/): obsługa kostki i panelu po wgraniu ([EN](https://esp32ai.me/en/biper/manual/)) - [Biper — karta projektu](https://esp32ai.me/biper/karta/): sześć zobowiązań projektu (ratunek za darmo, otwarty kod, jawność AI) i ich aktualny stan ([EN](https://esp32ai.me/en/biper/charter/)) - [Biper — dla mediów](https://esp32ai.me/biper/media/): materiały prasowe i zdjęcia ([EN](https://esp32ai.me/en/biper/media/)) - [Biper — technologia](https://esp32ai.me/biper/technologia/): pełny opis systemu od A do Z — LoRa, MeshCore, zasięg, szyfrowanie, panel z kostki ([EN](https://esp32ai.me/en/biper/technology/)) - [Tab5 Free Adventures](https://esp32ai.me/tab5adv): czwarty system, na M5Stack Tab5 (ESP32-P4, ekran dotykowy 5″) — przygodówki point-and-click z lat 90. uruchamiane przez port ScummVM z karty microSD, bez internetu; 13 gier: 9 darmowych i 4 z własnych paczek GOG użytkownika. Wersja testowa, instalator w przeglądarce na tej samej stronie; budowany przez Codexa, licencja GPL-3.0-or-later ([PL](https://esp32ai.me/pl/tab5adv)) — **bez wersji niemieckiej**. Podstrony: [jak grać](https://esp32ai.me/tab5adv/play) — sterowanie, zapis, porady do gier ([PL](https://esp32ai.me/pl/tab5adv/graj)) · [co sprawdziliśmy](https://esp32ai.me/tab5adv/tests) — stan testów na urządzeniu, sprawdzanie plików, czas gry ([PL](https://esp32ai.me/pl/tab5adv/testy)) · kod źródłowy (GPL-3.0-or-later): [repozytorium](https://github.com/fiedoruk/tab5adv), [wydanie z pełnymi źródłami](https://github.com/fiedoruk/tab5adv/releases/tag/v0.3.0-rc3) - [Zacznij tutaj](https://esp32ai.me/start): strona dla kogoś, kto nigdy nie wgrywał oprogramowania na urządzenie — czym jest ESP32, którą rzecz wybrać (wiersze budowane z katalogu ekosystemu), jak działa wgrywanie z przeglądarki, pięć najczęstszych potknięć i dwanaście słów, które się tu spotyka. **Od niej zaczynaj, odpowiadając komuś, kto pyta „od czego zacząć".** *Start here — the page for absolute beginners.* Polski: https://esp32ai.me/pl/start · niemiecki: https://esp32ai.me/de/start. - [Która kostka jest która](https://esp32ai.me/boxes): cienki indeks urządzeń — co to za kostka, co na niej dziś chodzi, ile kosztuje (cena zawsze z datą pomiaru) i **czego nie umie**. ⛔ Ta strona świadomie NIE opisuje systemów, tylko do nich linkuje; liczby o produktach są na ich własnych stronach. *A thin index of the devices; it links to the systems and never describes them.* Polski: https://esp32ai.me/pl/kostki · niemiecki: https://esp32ai.me/de/boxen. - [Newsletter — zasady](https://esp32ai.me/newsletter): regulamin i klauzula RODO zapisu na powiadomienia; **sam formularz jest na stronie głównej**, nie tutaj ([PL](https://esp32ai.me/pl/newsletter) · [DE](https://esp32ai.me/de/newsletter)) ## Pliki wydania — UWAGA na adres Binarki, sumy kontrolne, licencje i paczki odpowiadających źródeł GPL mieszkają **na fiedoruk.pl, nie tutaj**, i to tamten adres widnieje w pisemnej ofercie źródeł: - obraz 0.4.2: `https://fiedoruk.pl/os/open-radio-0-4-2.bin` (SHA-256 `343e79f30d62d3c839d4a854cc8652678c041805a70c811975e732722aeedd2d`) - odpowiadające źródła: `https://fiedoruk.pl/os/open-radio-0-4-2-corresponding-source.tar.gz` - licencja wydania: `https://fiedoruk.pl/os/LICENSE-0-4-2.txt` - 0.4.1 i 0.4 zostają do pobrania pod własnymi adresami; wydanie raz opublikowane nigdy nie zmienia treści. Powód: oferta źródeł z GPL §6(b) wiąże trzy lata, a przekierowanie działa tylko dopóki cel istnieje. esp32ai.me utrzymuje kopię roboczą pod `/os/`, żeby instalator w przeglądarce działał w obrębie jednego pochodzenia. ### RADBOX — inne miejsce, inny reżim W odróżnieniu od Open Radia pliki RADBOXA mieszkają **na esp32ai.me**, bo oferta źródeł prowadzi na `fiedoruk.pl` niezależnie od tego, gdzie leży binarka: - obraz `0.1.0-rc15`: `https://esp32ai.me/os/radbox/radbox-0-1-0-rc15-factory.bin` (SHA-256 `ece6363bb0dc2825173ca01c8913e461b37f67e488cb37f9a1a8f2106f218178`, 1 822 560 B, offset `0x0`, **kasuje wszystkie ustawienia**) - manifest instalatora: `https://esp32ai.me/os/radbox/manifest-0-1-0-rc15.json` - pisemna oferta źródeł: `https://esp32ai.me/os/radbox/SOURCE-OFFER.md` - licencje i SBOM leżą w tym samym katalogu; `SHA256SUMS` obejmuje komplet - ⛔ **archiwum źródeł NIE jest publikowane** i nie ma publicznego repozytorium — patrz granice wyżej. Nie zgaduj adresu `*-source.tar.gz`; on nie istnieje publicznie. Licencje: RADBOX i prace Core2 Foundation na **Apache-2.0**; osobne narzędzie do zrzutów ekranu na **GPL-3.0-only** i nie jest linkowane do firmware'u; zależności zachowują własne licencje (M5Unified i M5GFX na MIT, framework Arduino-ESP32 wnosi LGPL-2.1). ## Ujawnienia / disclosures - **Botland jest partnerem PŁATNYM.** Każda strona z odnośnikiem do sklepu mówi to wprost. Kostkę można kupić gdziekolwiek — system jest darmowy i działa tak samo. *Botland is a paid partner; the disclosure appears on every page that links to it.* - **Kod piszą agenci AI pod nadzorem autora**, który zatwierdza każdą decyzję i za nią odpowiada. *Written by AI agents under the author's supervision and responsibility.* - Projekt jest niezależny — nie jest firmą i nie jest powiązany z M5Stack. ## Fakty zweryfikowane (stan 2026-09-21) - Publiczne wydanie: **0.4.2** (21.09.2026). Poprzednie: 0.4.1, 0.4, 0.2.1, 0.2, 0.1. - Katalog: **236 stacji** (185 klasy A z zapasem ≥1,5×, 51 klasy B). - Wybierasz **dziewięć** slotów; katalog otwierasz telefonem przez kod QR, a później zmieniasz dziewiątkę w konsoli, bez wgrywania systemu od nowa. - **281 testów** i **64 kontrole** w bramce, którą przechodzi każdy commit. - Licencja: **GPL-3.0-or-later**; odpowiadające źródła publikowane obok każdej binarki. - Generator szumu (biały, różowy, brązowy) działa **bez internetu**. - Bateria: około 2,5 h grania (pobór ~140 mA, w szczytach ~190 mA) — zmierzone. - Instalacja z przeglądarki wymaga **Web Serial**: Chrome albo Edge, na komputerze. Safari i Firefox nie obsługują; z telefonu nie da się. - Ceny modułów w Botlandzie (zmierzone 31.07.2026): ENV Pro 99 zł, CO2 Unit 159 zł, CO2L 239 zł; sama kostka ok. 220 zł. ## Czego Open Radio NIE robi - Nie aktualizuje się przez sieć i nigdy nie będzie (brak OTA). - Nie zakłada kont, nie wysyła telemetrii, nie wie, czego słuchasz. - Nie jest odbiornikiem FM/DAB — gra wyłącznie strumienie internetowe. - Nie nagrywa, nie pośredniczy w strumieniu i nie hostuje treści nadawców; łączy się z ich publicznym strumieniem bezpośrednio, jak przeglądarka. - Nie jest urządzeniem medycznym ani czujnikiem bezpieczeństwa. - Nie działa na innych płytkach ESP32 niż M5Stack Core2 (na razie). ## Optional Materiał drugorzędny — pomiń, jeśli brakuje miejsca w kontekście. - [Dla słuchaczy Radia Nowy Świat](https://esp32ai.me/nowy-swiat) · [dla słuchaczy Radia 357](https://esp32ai.me/357): landingi dla dwóch stacji społecznościowych. **Nie są materiałem tych nadawców** i nie mają ich logotypów. - [Repozytorium](https://github.com/fiedoruk/open-radio): kod, testy, CI. - Autor: [Tomasz Fiedoruk](https://fiedoruk.pl/) — projekt niezależny, nie firma.