Ostatnio zakupiłem Cardputer Adv od M5Stack - ma wszystko w jednym pudełku. Zdjęcie na Instagramie.
Specyfikacja Cardputer Adv
| Parametr | Wartość |
|---|---|
| CPU | ESP32-S3FN8 (Dual-Core LX7, 240 MHz) |
| Flash | 8 MB |
| Pamięć | microSD slot |
| WiFi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | 5.0 LE |
| Ekran | 1.14” LCD |
| Klawiatura | 56 klawiszy (160gf) |
| Audio | ES8311 codec, mikrofon MEMS, głośnik 1W, jack 3.5mm |
| Sensory | BMI270 6-axis IMU, IR emitter |
| Porty | Grove HY2.0-4P, EXT 2.54-14P |
| Bateria | 1750 mAh |
| Wymiary | 84 × 54 × 19.6 mm |
| Cena | ~$30 |
Nettemp na ESP32
Sprzęt świetnie przydał mi się do testów mojego projektu nettemp. Chodziło mi o przeniesienie wszystkiego z Raspberry Pi Zero 2W na ESP32 - czyli czujników I2C, 1-Wire oraz BLE (Xiaomi Mi Temperature & Humidity Monitor 2 / LYWSD03MMC), które mam w domu.
Mały układ ESP32 jest klientem - zbiera dane z czujników i wysyła je do chmury nettemp.
Problem z pamięcią RAM
Cardputer Adv z ESP32-S3 ma 512 KB SRAM + 8 MB PSRAM - tu nie było problemów. Natomiast na standardowych modułach ESP32 (np. ESP32-WROOM-32) z tylko 520 KB SRAM zaczęły się schody. Przy włączonym WiFi, BLE i obsłudze wielu czujników heap pamięci spadał poniżej krytycznego poziomu, co powodowało randomowe resety.
Rozwiązaniem było stworzenie firmware z flagami kompilacji - osobne buildy dla różnych konfiguracji (WiFi only, BLE only, all-in-one dla ESP32-S3 z PSRAM).
Moje projekty na Cardputer
Przy okazji powstały dwa projekty:
Termputer
github.com/sosprz/termputer - emulator terminala dla Cardputer Adv. Wyświetla dane z portu szeregowego na ekranie i wysyła klawiaturę przez USB CDC/UART. Przydatne do debugowania urządzeń w terenie.
ESP Level
github.com/sosprz/esp_level - cyfrowa poziomnica i miernik odległości. Wykorzystuje czujnik VL53L0X lub HC-SR04 do pomiaru dystansu oraz wbudowany IMU BMI270 jako elektroniczną poziomicę bąbelkową.
Cap LoRa-1262
Do Cardputera dokupiłem moduł Cap LoRa-1262 od M5Stack.
| Parametr | Wartość |
|---|---|
| Chip LoRa | Semtech SX1262 |
| Częstotliwość | 868-923 MHz |
| Moc nadawania | do +20 dBm |
| GNSS | AT6668 (GPS/GLONASS/Galileo/BeiDou) |
| Interfejs | I2C/UART |
Meshtastic i Meshcore
Cap LoRa jest kompatybilny z projektami mesh networking:
- Meshtastic - otwarty protokół komunikacji off-grid przez LoRa, działa bez internetu i infrastruktury GSM
- Meshcore - alternatywny firmware mesh z naciskiem na prostotę i niskie zużycie energii
Całość pozwala na budowę prywatnej sieci komunikacyjnej o zasięgu kilku kilometrów (w terenie otwartym nawet więcej).
Meshcore na Cardputer Adv
Dopisałem do oryginalnego projektu Meshcore obsługę dla Cardputer Adv:
github.com/sosprz/meshcore-cardputer-adv
Jestem w trakcie testów i dopisywania funkcji - celem jest, żeby Cardputer był jak najmniej zależny od telefonu. Pełna obsługa mesh z poziomu urządzenia, bez konieczności łączenia się z apką.
Projekty które polecam
Launcher
github.com/bmorcelli/Launcher - absolutny must-have dla każdego ESP32. Bootloader który pozwala instalować i przełączać się między różnymi firmware’ami bez podłączania do komputera. Obsługuje OTA, zarządzanie plikami na SD i webowy interfejs. Wspiera Cardputer, M5Stack, Lilygo i wiele innych. Bez tego ciągłe flashowanie przez USB to katorga.
Disclaimer: nie jestem aż takim pro - większość kodu piszę z pomocą ChatGPT i Claude. Oszczędzam czas, uczę się nowych rzeczy i czytam kod zamiast pisać wszystko od zera. W 2025 to chyba normalne podejście.