Git Product home page Git Product logo

arduino-foc-drivers's Introduction

SimpleFOC Driver and Support Library

Library Compile License: MIT Release

This library contains an assortment of drivers and supporting code for SimpleFOC.

The intent is to keep the core of SimpleFOC clean, and thus easy to maintain, understand and port to different platforms. In addition to this core, there are various drivers and supporting code which has grown around SimpleFOC, and which we would like to make available to the community.

New Release

v1.0.6 - Released December 2023, for Simple FOC 2.3.2 or later

What's changed since 1.0.5?

  • Added STSPIN32G4 driver
  • Added STM32G4 CORDIC code, for greatly accellerated trig functions on supported MCUs
  • Added STM32FlashSettingsStorage driver, supporting STM32G4 MCUs
  • Improvements in the MT6835 sensor driver
  • Bugfixes included

What is included

What is here? See the sections below. Each driver or function should come with its own more detailed README.

Motor/Gate driver ICs

Encoders

  • AS5048A SPI driver - SPI driver for the AMS AS5048A absolute position magnetic rotary encoder IC.
  • AS5047 SPI driver - SPI driver for the AMS AS5047P and AS5047D absolute position magnetic rotary encoder ICs.
  • AS5047U SPI driver - SPI driver for the AMS AS5047U absolute position magnetic rotary encoder ICs.
  • AS5600 I2C driver - I2C driver for the AMS AS5600 and AS5600L absolute position magnetic rotary encoder ICs.
  • MA730 SPI driver - SPI driver for the MPS MagAlpha MA730 absolute position magnetic rotary encoder IC.
  • MA730 SSI driver - SSI driver for the MPS MagAlpha MA730 absolute position magnetic rotary encoder IC.
  • AS5145 SSI driver - SSI driver for the AMS AS5145 and AS5045 absolute position magnetic rotary encoder ICs.
  • TLE5012B SPI driver - SPI (half duplex) driver for TLE5012B absolute position magnetic rotary encoder IC.
  • STM32 Hardware Encoder - Hardware timer based encoder driver for ABI type quadrature encoders.
  • SC60228 SPI driver - SPI driver for SemiMent SC60288 magnetic encoder IC.
  • MA330 SPI driver - SPI driver for the MPS MagAlpha MA330 absolute position magnetic rotary encoder IC.
  • MT6816 SPI driver - SPI driver for the MagnTek MT6816 absolute position magnetic rotary encoder IC.
  • MT6701 SSI driver - SSI driver for the MagnTek MT6701 absolute position magnetic rotary encoder IC.
  • MT6835 SPI driver - SPI driver for the MagnTek MT6835 21 bit magnetic rotary encoder IC.
  • STM32 PWM sensor driver - STM32 native timer-based driver for PWM angle sensors.
  • SmoothingSensor - A SimpleFOC Sensor wrapper implementation which adds angle extrapolation.

Communications

  • I2CCommander I2C driver - I2C communications protocol and drivers for both controller and target devices, based on register abstraction
  • STM32 SpeedDir Input - Control target velocity with PWM speed and direction inputs
  • SerialBinaryCommander - Serial communications with binary protocol, based on register abstraction
  • Telemetry - Telemetry abstraction, based on registers
  • SerialASCIITelemetry - Serial communications with ascii protocol, based on register abstraction

Settings

Load and store SimpleFOC motor settings, based on register abstraction.

Motor classes

Drive different kinds of motors, or use alternate algorithms to SimpleFOC's default BLDCMotor and StepperMotor classes.

Utilities

  • STM32 PWM Input driver - PWM Input driver for STM32 MCUs. Accurately measure PWM inputs with zero MCU overhead.
  • STM32 CORDIC trig driver - CORDIC driver to accellerate sine and cosine calculations in SimpleFOC, on STM32 MCUs which have a CORDIC unit.

How to use

Arduino Library Manager

The simplest way to get hold of the library is directly by using Arduino IDE and its integrated Library Manager.

  • Open Arduino IDE and start Arduino Library Manager by clicking: Tools > Manage Libraries....
  • Search for Simple FOC drivers library and install the latest version.
  • Reopen Arduino IDE and you should have the library examples in File > Examples > Simple FOC drivers.

Using Github website

  • Go to the github repository
  • Click first on Clone or Download > Download ZIP.
  • Unzip it and place it in Arduino Libraries folder. Windows: Documents > Arduino > libraries.
  • Reopen Arduino IDE and you should have the library examples in File > Examples > Simple FOC drivers.

Using parts

You can copy parts of the library, for example to minimize your code size, or make it easier to add adaptations of your own. If you do so, please be sure to adhere to and include the LICENSE.

Further Documentation

Find out more information about the Arduino SimpleFOC project on the docs website

Release History

What's changed since 1.0.4?

  • Added smoothing sensor by @dekutree64
  • Added TMD6200 SPI driver by @YaseenTwati
  • Added HybridStepperMotor by @VIPQualityPost
  • New Settings abstraction to load and save SimpleFOC settings and calibration
  • New Settings driver: SAMDNVMSettingsStorage
  • SimpleFOCRegisters abstraction, mapping SimpleFOC parameters to virtual "Registers"
  • Updated I2CCommander to use the new registers abstraction
  • Bugfixes included

What's changed since 1.0.3?

  • New Comms/Input: STM32SpeedDirCommander
  • New Utility: STM32PWMInput
  • Fixed MT6835 driver bugs
  • Improved AS5047 driver, fixed bugs
  • Improved AS5047U driver, fixed bugs

What's changed since 1.0.2?

  • New Sensor: MT6835
  • Fixed bugs

What's changed since 1.0.1?

  • Calibrated sensor by @MarethyuPrefect
  • New Sensors: MT6701, MA330, MT6816
  • Fixed bugs

arduino-foc-drivers's People

Contributors

runger1101001 avatar vipqualitypost avatar marethyuprefect avatar candas1 avatar yaseentwati avatar dekutree64 avatar askuric avatar swapnilpande avatar samguns avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.