Skip to content

Milk-Cool/CheburChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CheburChat

CheburChat (pronounced cheh-boor-chat) is an offline local chat for your ESP board - almost like PictoChat on a DS! It works by creating a WiFi access point with a captive portal. Any modern device should be able to connect to it. It supports up to 256 users at once, works without internet and doesn't require anything from the client.

Supported boards

Name PIO name Supported Tested
ESP32 Dev module esp32dev
Wemos D1 mini d1_mini

You can help this project by testing or adding support for more boards!

Building and setup

First, install PlatformIO and NodeJS. Then, clone this project using git clone, install Node dependencies in frontend/ using npm i, open it in VSCode and in the PlatformIO menu (on the left side) select your board and:

  • Click "General" -> "Upload"
  • Wait for the build/upload process to finish
  • Click "Platform" -> "Build Filesystem Image" (yes, this is necessary)
  • Wait for the build process to finish
  • Click "Platform" -> "Upload Filesystem Image"
  • Wait for the upload process to finish

Then, connect to CheburChat and change the admin password. You can also change the settings if required. Note that after you save the settings, the board will reboot, so you'll have to connect again.

Demo/functionality

Multiple message types are supported (as demonstrated above):

  • Text
  • Image
  • Video
  • Audio
  • Arbitrary files

You can also set a custom welcome message and change network settings in the "settings" menu on the top right.

"Mesh" networks

CheburChat devices can be connected into a mesh network (for sharing messages across multiple APs) where each device can connect to just one other device but can serve multiple other devices (so, a "tree" network). This is due to the limitations of ESP-8266s. Functionally, this is just like a mesh network with the only difference being worse performace.
Here's a simple rather complex example of such a mesh network:

You can set up a mesh network by:

  1. Making sure each device uses the same AP settings (SSID, password)
  2. Collecting BSSIDs of each AP (can be seen in the settings, don't forget to add 1 to the last byte)
  3. Initializing the mesh network in each device's settings by specifying the BSSID that device needs to connect to
  4. Restarting all devices, preferably starting from the one in the center

Note: you can set up a very simple mesh network with two devices without collecting BSSIDs by initializing the mesh network on just one of them. However, you cannot do that with bigger networks, as this enables connection loops. These loops are detected by the devices themselves and they will reboot once they detect such a loop.

About

An offline local chat for your ESP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published