pidfrees 0.1.1

A robust PID controller implementation for no_std environments, protected by GPL.
Documentation

🦅 pidfrees v0.1.0

A Robust, High-Precision PID Controller for Rust.

Created by Jorge Andre Castro.


🛡️ The Mission

pidfreeS is designed to provide industrial-grade control logic while remaining strictly Open Source. This crate is built to prevent the privatization of essential control techniques by using the GPL-2.0-or-later license.

🚀 Key Features

  • no_std Compatible: Designed for bare-metal kernels (like JC-OS) and embedded systems.
  • Industrial Robustness: Integrated Anti-Windup (clamping) and Derivative filtering (PV-based).
  • Ultra-Optimized: Configured for minimal binary size (opt-level = "z") and zero debug symbols.
  • Thread-Safe: Implements Send and Sync for multi-threaded robotics.

🛠️ Usage

Add this to your Cargo.toml:

[dependencies]
pidfrees = "0.1.0"
Quick Start
Rust
use pidfrees::PidController;

// New PID: Kp, Ki, Kd, Target, Min_Output, Max_Output
let mut pid = PidController::new(2.0, 0.5, 0.1, 50.0, 0.0, 100.0);

// Update with current measurement and delta time
let output = pid.update(45.0, 0.1);
⚖️ License
This project is licensed under the GNU General Public License v2.0 or later.
You are free to use it, but you MUST share any modifications or derivative works.