← Software projects

Axon

IoT sensor network

Axon is a distributed probe network and decision cloud for observing and controlling IRL systems. I started desperately building it while my wife was in hospital for a life-saving operation. I was travelling back and forth from London every day, and I couldn’t shake the fear that some of the plants at home would die, and she would be mortified. I dreamed of a low-power sensor network that could keep an eye on soil quality and make sure I could do as good a job as she did.

Axon data flowAPIs, files and sensors feed the Axon logic core. The outcome layer connects dashboards, systems, alerts and actuators.
Input Layer Capture and normalize signals
Decision Layer Process, route, enrich
Outcome Layer Visualise, actuate, notify
APIs REST, webhooks, integrations
Files Documents, CSV, exports
Sensors Presence, telemetry, environment
AXON LOGIC CORE
Dashboards Ops boards, status walls, summaries
Systems ERP, ticketing, connected tools
Alerts Email, SMS, operator prompts
Actuators Lights, relays, control outputs
Axon’s input, decision and outcome layers.View full-size diagram ↗

Bringing the signals together

The plant sensors could tell me what was happening in the soil, but I wanted some context before deciding what to do about it. I wanted to bring in sunrise and sunset times through APIs, so I could work out sensible times for alerts. I don’t want to be woken at three in the morning because a plant needs watering.

I also wanted to know whether the heating was on. That gives me another clue about how quickly the soil might dry, alongside the readings from the probes. Bringing those signals together helps me decide when to check the plants, rather than treating every reading as a reason to send an alert.

Sources provide the incoming information; sensors represent individual values extracted from those sources. Those values can be retained over time, graphed, and used in rules and conditions.

From observation to decisions

Axon keeps observations, state, conditions and transitions in the same operational model. The runtime can evaluate what is happening and use that understanding to coordinate the next action.

Depending on the system, the outcome might be an alert, a dashboard update, an actuator command or a recovery path. The aim is to connect observation and control in a coherent loop.

Purpose-made probes

The ESP32-based probes let me place observations where they are needed in the physical environment. They are part of the same model as the external data sources, allowing decisions to use information from several places at once.

An Axon ESP32 probe prototype, with breadboards and sensor wiring inside an open enclosure.
An ESP32-based Axon probe during development.
Axon sensor interface showing source readings and an ESP32 probe board identifier
Individual sensor values in Axon’s control surface.
Axon probe source showing digital inputs, device telemetry and digital GPIO outputs.
Probe telemetry and digital GPIO outputs in Axon’s control surface.

One view of a distributed system

The interesting part is the connection between many small observations and a useful decision. Axon gives distributed hardware, live telemetry and software logic a common place to meet.