Inspiration

We wanted to see how far low-cost ESP32-C6 boards could be pushed as a tiny self-hosted compute cluster. Instead of treating each board as an isolated microcontroller, we turned them into a coordinated mini datacenter with one gateway node, multiple workers, and a shared private network.

What it does

El Quatro now works as a private ESP32-C6 cluster that hosts its own chat interface, dashboard, and worker network. The gateway creates the cluster Wi-Fi, monitors worker health, exposes a live dashboard, and serves a browser-based AI chat UI. It also connects outward to Groq so the cluster can handle AI chat requests from a lightweight embedded frontend.

Each worker has its own static internal IP, exposes health and data endpoints, and reports uptime, request counts, and free heap back to the gateway. The result is a small but real distributed system running across multiple ESP32 boards.

How we built it

We built the gateway node in Arduino/C++ using WiFi, WebServer, HTTPClient, WiFiClientSecure, and ArduinoJson. It runs in AP+STA mode so it can host the internal cluster network while also connecting to external Wi-Fi for outbound AI requests. The gateway serves:

  • a chat page for users
  • a dashboard page for cluster visibility
  • an internal cluster API for node status
  • a Groq-backed chat route for model responses

The worker nodes also run Arduino firmware. Each worker joins the cluster using a static IP, serves a /health endpoint, tracks request counts and uptime, and can return internal data back to the gateway. The gateway polls workers on an interval and marks them online or offline based on their health responses.

Challenges we ran into

The biggest challenge was making a tiny multi-node system feel like a real cluster rather than a collection of disconnected demos. We had to handle worker discovery in a simple way, keep internal routing predictable with static IPs, deal with reconnect behavior, and support both the internal cluster network and outbound internet access on constrained hardware.

Another challenge was fitting a usable AI chat experience onto a microcontroller-hosted web interface while still tracking cluster health and request stats in real time.

What we learned

We learned a lot about dual-mode Wi-Fi on the ESP32-C6, lightweight service orchestration across microcontrollers, local health-check based monitoring, and how to bridge embedded systems with external AI APIs. We also learned that observability matters immediately once multiple nodes are involved, even in a very small cluster.

What's next for El Quatro

Next we want to add smarter load balancing across workers, richer worker-to-gateway task routing, better fault tolerance, persistent chat/session history, and more advanced cluster visualization. We also want to move from a simple monitored worker model toward real distributed task execution across the ESP32 nodes.

Built With

  • arduino
  • c
  • c++
  • esp-idf
  • esp-now
  • esp32-c6
  • freertos
  • http-dashboard
  • wi-fi-softap
Share this project:

Updates