2025-08-21 18:52:47 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 18:00:02 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 15:54:05 +02:00
2025-08-21 18:52:47 +02:00

SPORE

SProcket ORchestration Engine

SPORE is a simple cluster engine for ESP8266 microcontrollers.

Features

  • WiFi STA / AP
  • auto discovery over UDP
  • service registry
  • pub/sub event system
  • Over-The-Air updates

Supported Hardware

  • ESP-01

Architecture

Components

The core architecture consists of following components:

  • Network Manager: WiFi connection handling
  • Cluster Manager: node discovery and memberlist management
  • API Server: HTTP API for interacting with node and cluster
  • Task Scheduler: internal scheduler used for system and user defined tasks

Auto Discovery

A node periodically executes 2 tasks responsible for auto discovery:

  • send discovery: send UDP packet on broadcast address to discover nodes
  • listen for discovery: receive UDP packets and send response back to the node who initiated discovery

Discovered nodes are added to the so clusters memberlist.
Another periodic task will then call the /api/node/status endpoint over HTTP on each node in the memberlist to get system resources and available API endpoints.

Event System

The NodeContext implements an event system for publishing and subscribing to local and cluster wide events (TODO).
It is used internally for communication between different components and tasks.

Develop

Configuration

Choose one of your nodes as the API node to interact with the cluster and configure it in .env:

export API_NODE=10.0.1.x

Build

Build the firmware:

./ctl.sh build

Flash

Flash firmware to a connected device:

./ctl.sh flash

OTA

Update one nodes:

./ctl.sh ota update 10.0.1.x

Update all nodes:

./ctl.sh ota all
Description
SProcket ORchestration Engine
Readme 1.2 MiB
Languages
C++ 53.5%
JavaScript 35.5%
Shell 8.9%
HTML 1.6%
C 0.5%