Get a Mesh-NOW node running on your ESP32 in under 10 minutes.

Prerequisites
  • ESP32 development board (any variant)
  • ESP-IDF v5.5.1+ installed and sourced
  • USB cable
  1. Clone and enter the repository

    git clone https://github.com/NellowTCS/Mesh-NOW.git
    cd Mesh-NOW
    
  2. Enter the firmware project

    The reference chat firmware lives in Firmware/:

    cd Mesh-NOW/Firmware
    
  3. Set your target

    idf.py set-target esp32
    

    Replace esp32 with your board’s target: esp32s2, esp32s3, esp32c3, or esp32c6.

  4. Build

    The mesh library lives in Build/ at the repository root and gets pulled in
    automatically via EXTRA_COMPONENT_DIRS in Firmware/CMakeLists.txt.

    idf.py build
    
  5. Flash and monitor

    idf.py -p /dev/ttyUSB0 flash monitor
    

    Replace /dev/ttyUSB0 with your serial port. On macOS it is usually /dev/cu.usbserial-*.

  6. Connect and chat

    • Wait for the node to boot; you should see ESP-NOW mesh networking initialized successfully in the log
    • Run the web UI: cd Demo && npm install && npm run serve
    • Open http://localhost:3000 and connect the node’s USB port via Web Serial

Multiple Nodes

Flash two or more ESP32 boards. Power them on and they discover each other via beacons on their own. Messages sent from any node propagate through the mesh.

sequenceDiagram participant N1 as Node 1 participant N2 as Node 2 participant N3 as Node 3 N1->>N2: Beacon (every 5s) N2->>N1: Beacon N2->>N3: Beacon N3->>N2: Beacon Note over N1,N3: Peers discovered automatically N1->>N2: Chat message N2->>N3: Relay (hop 1)

Next Steps