/foc

A Rust implementation of various Field Oriented Control algorithms.

Primary LanguageRustApache License 2.0Apache-2.0

FOC

An implementation of Field Oriented Control algorithms in Rust, designed for use in embedded systems.

Goals

  • Modular and extendable implementation of FOC algorithms.
  • Exclusively use fixed-point math for all FOC calculations, using the fixed crate.
  • Support for microcontrollers across the entire embedded Rust ecosystem.
  • Support for microcontroller-specific accelerators (e.g. STM32G4/STM32H7 CORDIC peripheral for trig functions, STM32 FMAC peripheral for filters).
  • Generic over angle sensors, current sensors, and PWM drivers.
  • Straightforward to add custom algorithms.
  • No heap allocations anywhere.