π HF-TMC9660 Driver Documentation
Welcome to the comprehensive documentation for the HF-TMC9660 driver library β a modern C++20 hardware-agnostic driver for the TMC9660 motor controller operating in Parameter Mode.
π What Youβll Learn
This documentation will guide you through everything from initial setup to advanced motor control applications. Whether youβre new to TMC9660 or an experienced embedded developer, youβll find practical examples and detailed explanations for every aspect of the driver.
π― Quick Start Path
New to TMC9660? Follow this recommended learning path:
graph LR
A[π Setup Guide] --> B[π Communication Interface]
B --> C[ποΈ Building Examples]
C --> D[β‘ Hardware Examples]
D --> E[π οΈ Common Operations]
E --> F[π Advanced Usage]
π Documentation Structure
Foundation & Setup
- π Setup Guide - Get started with installation and compilation
- π Implementing Communication Interface - Create your hardware-specific communication layer
- ποΈ Building Examples - Compile and run the provided examples
Practical Application
- β‘ Hardware-Agnostic Examples - Complete motor control scenarios
- π οΈ Common Operations - Everyday driver usage patterns
- π API Reference - Complete C++ class documentation
Advanced Topics
- π GitHub Pages Hosting - Host your own documentation
β οΈ Critical Requirements
PARAMETER MODE SETUP IS MANDATORY
The TMC9660 must be properly configured for Parameter Mode operation via bootloader initialization before any motor control functions will work. This is the #1 source of issues for new users.
Essential Setup Sequence:
// 1. CRITICAL: Configure for Parameter Mode
tmc9660::BootloaderConfig cfg{};
cfg.boot.boot_mode = tmc9660::bootcfg::BootMode::Parameter; // ESSENTIAL!
cfg.boot.start_motor_control = true;
// 2. Initialize bootloader
auto result = driver.bootloaderInit(&cfg);
// 3. Configure motor and start control
driver.motorConfig.setType(tmc9660::tmcl::MotorType::BLDC_MOTOR, 7);
driver.focControl.setTargetVelocity(1000);
π Key Features
Feature | Description |
---|---|
π§ Hardware Agnostic | Abstract communication interface works with any SPI/UART implementation |
β‘ FOC Control | Advanced Field-Oriented Control for BLDC, stepper, and DC motors |
π Real-time Telemetry | Temperature, current, voltage monitoring with RAMDebug logging |
π‘οΈ Protection Systems | Comprehensive safety features and fault monitoring |
ποΈ Complete Configuration | Access to all 300+ TMC9660 parameters |
π± Modern C++ | Clean C++20 API with type safety and RAII principles |
π¦ Getting Started
Ready to begin? Start with the Setup Guide to prepare your development environment:
First Time Users
Experienced Developers
π Jump to Examples
API Reference
π‘ Need Help?
- π Found a bug? Check the troubleshooting sections in each guide
- β Have questions? Review the Common Operations guide
- π Want to contribute? See the implementation guides
Get Started β
*Last updated: 2024 | HF-TMC9660 Driver v1.0* |