< blog

Cardputer Adv + Cap Lora + Meshcore

2025-01-14 [cardputer] [lora] [meshcore] [esp32]

Ostatnio zakupiłem Cardputer Adv od M5Stack - ma wszystko w jednym pudełku. Zdjęcie na Instagramie.

Specyfikacja Cardputer Adv

ParametrWartość
CPUESP32-S3FN8 (Dual-Core LX7, 240 MHz)
Flash8 MB
PamięćmicroSD slot
WiFi802.11 b/g/n (2.4 GHz)
Bluetooth5.0 LE
Ekran1.14” LCD
Klawiatura56 klawiszy (160gf)
AudioES8311 codec, mikrofon MEMS, głośnik 1W, jack 3.5mm
SensoryBMI270 6-axis IMU, IR emitter
PortyGrove HY2.0-4P, EXT 2.54-14P
Bateria1750 mAh
Wymiary84 × 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.

ParametrWartość
Chip LoRaSemtech SX1262
Częstotliwość868-923 MHz
Moc nadawaniado +20 dBm
GNSSAT6668 (GPS/GLONASS/Galileo/BeiDou)
InterfejsI2C/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.