simple-pid
A simple, easy to use PID controller
What it is and what it does
simple-pid is a standalone PID (proportional-integral-derivative) controller implementation with no external dependencies. It takes a system's current measured value, compares it to a desired setpoint, and outputs a control signal designed to minimize the error over time. The package is built on established PID tuning principles and is intended for straightforward feedback-control applications where you need to drive a process toward a target state.
You instantiate a PID object with proportional, integral, and derivative gains, set a target setpoint, and then call the controller in a loop with the system's current measurement to get the next control output. It's a minimal, self-contained tool for applications like temperature regulation, motor speed control, or any other closed-loop system where you want to avoid external control-system libraries.
Use it for:
- Temperature regulation in an oven or heating system by adjusting power output based on measured temperature.
- Motor speed control by feeding back actual RPM and adjusting voltage or PWM to reach a target speed.
- Drone altitude hold by using altitude feedback to adjust throttle and maintain a setpoint height.
- Robotic arm position tracking by comparing desired and actual joint angles and computing corrective torques.
- Water level management in a tank by adjusting pump flow based on level sensor readings.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A dependency-free PID controller library that computes control outputs from system feedback to drive a process toward a setpoint.
Yes, if you need a lightweight, dependency-free PID controller for a straightforward feedback-control task. The package is stable (Production/Stable status), well-documented, and carries no known vulnerabilities. Dormant maintenance is acceptable for a mature, narrow-scope tool; however, if you need active support or cutting-edge features, consider whether the lack of recent commits matters for your use case.
Install
simple-pid on PyPI
pip
pip install simple-piduv
uv add simple-pidpoetry
poetry add simple-pidInstalling simple-pid
Before you install
Installs with no runtime dependencies and carries a dormant maintenance status (last release 2024-07-21, no commits since). The wheel-only distribution is straightforward to install.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute the package freely with minimal restrictions.
Quickstart
from simple_pid import PID
pid = PID(1, 0.1, 0.05, setpoint=1)
v = controlled_system.update(0)
while True:
control = pid(v)
v = controlled_system.update(control)
Verify before relying
- Whether the package's PID tuning guidance or parameter-setting tools match your specific control application's needs.
- Real-world performance characteristics (response time, stability) for your particular system dynamics.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 754 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 230,458/month — #9,109 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: simple_pid-2.0.1-py3-none-any.whl
Keywords: pid, controller, control
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pyotgwpyotgw is a Python library that communicates…
copyleft · top 15,000 on PyPI
pidManages process ID files with stale detection,…
permissive · top 15,000 on PyPI
dumb-initdumb-init is a minimal init system that runs as…
unclear · top 15,000 on PyPI
setproctitleAllows a Python process to change its own title…
permissive · top 1,000 on PyPI
aiodebugaiodebug provides monitoring and testing…
permissive · top 15,000 on PyPI
newton-actuatorsProvides GPU-accelerated actuator…
permissive · top 15,000 on PyPI
pypyppyp lets you write Python expressions and…
permissive · top 15,000 on PyPI
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
py-spypy-spy is a sampling profiler that attaches to…
permissive · top 1,000 on PyPI
python-izonePython library for controlling iZone air…
copyleft · top 15,000 on PyPI