A working example · For Mrs Froggy, who asked.
Mrs Froggy asked what a proper specification looks like — one that passes
the three-implementer test. Here is a real specification for a small garden
pond pump controller. Give this to three different engineers and you should
get three functionally identical devices.
Specification: GP-100 Garden Pond Pump Controller
Version: 1.0 · Status: Approved · Author: Froggy
1. Purpose
Automate the operation of a submersible pond pump to maintain water circulation,
aeration, and filter function in a garden pond. The controller must protect the
pump from running dry and must allow the pondkeeper to set operating hours.
2. Scope
This specification covers the electronic controller only — not the pump,
the plumbing, or the pond liner. The controller interfaces with any standard
240V submersible pump rated up to 1.5A (360W).
3. Functional Requirements
3.1 Power and Safety
- The controller shall accept 220–240V AC, 50Hz mains input via a IEC C14 socket.
- The controller shall provide a grounded (Class I) IEC C13 outlet for the pump.
- A replaceable 2A fuse shall be fitted in the live line, accessible from the exterior.
- The controller shall have a physical on/off switch that disconnects both live and neutral.
- All exposed metal shall be bonded to earth.
3.2 Water Sensing
- Two stainless steel probes shall be provided, 300mm cable length, terminating in screw terminals marked
PROBE_H and PROBE_L.
- When the resistance between the two probes is below 50kΩ, the controller shall consider the pond "full" and permit pump operation.
- When the resistance exceeds 200kΩ (probes dry or pond empty) the controller shall cut power to the pump within 2 seconds and enter Dry Protection mode.
- The probe circuit shall use a 5V DC sense voltage (not mains) with no exposed live parts.
3.3 Timer Operation
- The controller shall support two timed periods per day:
ON_1 and ON_2.
- Each period shall have a configurable start time (hour and minute, 24h format) and duration (1–480 minutes, in 1-minute increments).
- Default:
ON_1 at 08:00 for 120 minutes; ON_2 at 18:00 for 120 minutes.
- Settings shall persist across power loss (non-volatile memory).
3.4 Manual Override
- A momentary push button labelled
MANUAL shall start the pump immediately for 30 minutes, overriding the timer but not disabling it.
- Pressing
MANUAL while the pump is already running in manual mode shall reset the 30-minute countdown.
- Dry Protection shall override Manual mode at any time.
3.5 Indicators
- Green LED labelled
POWER: illuminated when mains power is present and the fuse is intact.
- Blue LED labelled
RUNNING: illuminated when the pump outlet is energised.
- Red LED labelled
DRY: illuminated when Dry Protection mode is active. Shall flash once per second.
4. Physical Specifications
- Enclosure: IP54 minimum, polycarbonate, wall-mountable, with four fixing holes on a 100mm x 60mm grid.
- Dimensions: no larger than 180mm x 120mm x 80mm.
- Cable entry: two PG9 glands on the bottom face — one for mains in, one for pump out.
- Probe cable entry: one PG7 gland adjacent to the mains glands.
- Operating temperature: 0°C to 50°C.
5. User Interface
- Two push buttons (
SET and ADJUST) plus a 16x2 character LCD with backlight.
- Normal display shows current time, next scheduled ON time, and pump status (RUNNING / IDLE / DRY).
- Pressing
SET enters configuration mode. The display cycles through: set clock → set ON_1 start → set ON_1 duration → set ON_2 start → set ON_2 duration.
- In configuration mode,
ADJUST increments the selected value. Holding ADJUST for 2 seconds accelerates the increment.
- Configuration mode times out and saves after 30 seconds of inactivity.
6. Non-Functional Requirements
- Standby power consumption: less than 0.5W (pump off, display on, no backlight).
- Relay switching life: minimum 100,000 cycles at rated load.
- The controller shall withstand a 30-minute continuous pump run at 40°C ambient without enclosure temperature exceeding 60°C.
7. Acceptance Criteria
- Connect a 60W incandescent lamp to the pump outlet. Set ON_1 to start 2 minutes from now for 5 minutes. The lamp shall illuminate at the set time and extinguish after 5 minutes.
- Short the probe terminals with a 47kΩ resistor. The DRY LED shall not illuminate. Remove the resistor. The DRY LED shall illuminate and the lamp shall extinguish within 2 seconds.
- Cycle mains power. All timer settings shall be retained.
- Press MANUAL. The lamp shall illuminate for 30 minutes. Press MANUAL again after 10 minutes. The lamp shall remain illuminated for a further 30 minutes from the second press.
8. The Three-Implementer Test
Give this specification to three engineers: a hardware designer, a firmware
developer, and a hobbyist with a soldering iron. If all three build you a
controller with the same LEDs, the same timing behaviour, the same dry-protection
response, and the same connector pinout — the specification passes.
If one of them asks "what colour should the enclosure be?" or "can I use RJ45
instead of screw terminals for the probes?" — the specification was incomplete,
and the gap was in the exact place you can now go back and fill.