Skip to content

Software Progress


This page will be actively updated as software is developed.

For the basic functionality of the project, the following functional code components are planned:

Motion Control

Responsible for interfacing with the motor driver chip and its movement.

  • TMC2209 UART driver control library
    • ✅ Interface with TMC2209 registers, read and write via UART
    • Library optimization for peripheral operations without MCU overhead
    • Hardware CRC computation support for faster operation
    • Direct peripheral interfacing
    • Buffer for 4 commands for efficient parameter updates
  • Periodic calculation of the function [delta steps / dt] from t based on given parameters:
    • Target displacement
    • Specified or maximum speed
    • Specified or maximum acceleration
    • Specified or maximum jerk
  • Different motion patterns algorithms
    • Triangle motion ramp
    • Trapezoidal motion ramp
    • S-Shaped motion ramp
    • Constant speed motion

Position Supervisor

  • TLE5012 SPI encoder library
    • Interfacing with registers via SPI
    • Detection of successful initialization and configuration
  • Absolute coordinates controller
    • Periodic absolute position updates at a specified frequency
    • Setting, offsetting, or resetting the coordinate system's zero
  • Stepper motor position controller
    • Calculation and adjustment of motor position during its movement
  • Position error detector
    • Comparing the difference between the motor's physical and theoretical positions
    • Error occurrence action handler


Handles system error compensation algorithms.

  • Simple position error notification to the higher-level controller in the hierarchy
  • Rollback and execution of the last error-causing command
  • Active PID compensation (?)

Motion Planner

Responsible for converting abstract commands into a standard format for the Motion Control algorithm.

  • G-Code overlay
  • Klipper overlay (?)
  • Step-Dir interface handling
  • Custom overlays for UART/I2C/CAN-Bus

System Parameters Control

Ensures safe system operation and error detection.

  • Operating voltage
  • Overheat prevention
  • Interface error prevention
  • Motor connection detection
  • Encoder magnet presence check

Additional Algorithms

  • Sensorless parking
  • Workspace auto-detection
  • IMU data handler
  • PowerDelivery UCPD controller
  • RTC and stand-alone operation systems