CardputerLoRaChat
Multi-purpose View the repo
CardputerLoRaChat is a simple chat application for the M5 Cardputer that communicates via M5 E220 LoRa modules (or optionally ESP‑NOW) across three chat channels, displaying user status, signal strength, battery level, and offering configurable settings such as username, brightness, and ping mode.
auto-summary
122 stars · 12 forks
- Maintainer
- nonik0
- Capabilities
- lora
- Chip families
- esp32-s3
Runs on these boards
Unverified
- CardputerUnverified
Flash Cardputer
Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.
README
Simple chat app for M5 Cardputer and the M5 E220 LoRa modules. Doing for my own learning and enjoyment. Work in progress.
Hardware used:
- M5 Cardputer
- M5 E220 LoRa module (optional if using ESP-NOW mode, see Settings Tab Details)
Overview:
The interface is split into 5 tabs. The first three tabs are separate chat channels, the next tab shows the status of other users seen, and the last tab is for changing settings. Press the tab key to switch between tabs. The system bar shows the current username, the signal strength of the user seen with the best signal strength and incoming and outgoing messages, and the Cardputer's current battery level. LoRa modules are currently configured using the default settings from the LoRa modules's library. Modules must be configured initially to work, can do so in settings.
Tab Info
Tab|Image|Info ---|---|--- Chat Tab||A, B, and C chat channels. Use keyboard to type and enter to send messages. Users Seen||Shows users seen in chat and with pings. Shows last received signal strength and when last seen. Settings||Use arrow keys and enter to navigate settings. Use keyboard to update username when highlighted.
Settings Tab Details
Setting|Info ---|--- Username|Min length 2, max length 8, ASCII only. Brightness|Set display brightness [0-100]. If set very low, the display will automatically brighten when buttons are pressed. Ping Mode|Send an occassional ping when not sending messages to show presence to other users. Repeat Mode|Repeat back messages received. Just a testing function for now. ESP-NOW Mode|Use the Wifi radio (using ESP-NOW protocol) to chat instead of LoRa! The range will be lower. :) App Config|Writes current settings (username, brightness, ping mode, repeat mode) to SD card, will be reloaded on boot LoRa Config|Writes register values to LoRa module. M0 and M1 switches must be set to off (config mode).
TODO
See TODOs in code for now.
ideas:
- ACK Mode: know when users receive your message, resend/catch up?
- Mesh Mode: repeat messages from other users to extend range
- message scrolling
- saving chats to SD
Read the full README on GitHub
source github.com/nonik0/CardputerLoRaChat