nonik0 / CardputerLoRaChat

66 stars 3 forks source link

Simple chat app for M5 Cardputer and the M5 E220 LoRa modules. Doing for my own learning and enjoyment. Work in progress.

Hardware used:

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 chatWindow A, B, and C chat channels. Use keyboard to type and enter to send messages.
Users Seen userTab Shows users seen in chat and with pings. Shows last received signal strength and when last seen.
Settings settingsTab 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: