πŸš€ 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

  1. πŸ“‹ Setup Guide - Get started with installation and compilation
  2. πŸ”Œ Implementing Communication Interface - Create your hardware-specific communication layer
  3. πŸ—οΈ Building Examples - Compile and run the provided examples

Practical Application

  1. ⚑ Hardware-Agnostic Examples - Complete motor control scenarios
  2. πŸ› οΈ Common Operations - Everyday driver usage patterns
  3. πŸ“– API Reference - Complete C++ class documentation

Advanced Topics

  1. 🌐 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

πŸ‘‰ Start Here: Setup Guide

Experienced Developers

πŸ‘‰ Jump to Examples

API Reference

πŸ‘‰ Browse API Documentation


πŸ’‘ Need Help?


🎯 Ready to control some motors?
Get Started β†’

*Last updated: 2024 HF-TMC9660 Driver v1.0*