ODrive spindles

ODrive motor controllers turn brushless motors into high-performance spindles. The FluidBoard talks to ODrives over CAN bus — and unlike most boards, the CAN bus on the FluidBoard is galvanically isolated. That means no ground loops, no noise issues, and no fried electronics.

What you get

  • Closed-loop velocity control — the ODrive manages the motor, the FluidBoard commands the speed
  • Forward and reverse (M3/M4) — direction is handled through the gear factor
  • CSS compatible — the FluidBoard can update spindle speed in real time during constant surface speed cuts
  • Spindle ramping — configurable ramp time, with automatic suppression of false encoder alarms during speed changes
  • Automatic tool changer integration — the ODrive spindle config can reference an ATC for automated tool changes

Setting up the ODrive

Before wiring to the FluidBoard, set up the ODrive per the ODrive documentation. Make sure it is fully calibrated and running correctly in velocity control mode before attempting CAN communication.

Wiring

The CAN bus is galvanically isolated, so ground loops aren't a concern. Wire as follows:

Wiring diagram not available. View SVG

ODrive pin FluidBoard pin Description
GND GND Isolated ground
CAN-H H CAN high
CAN-L L CAN low
+5V Vcc Isolated 5V

If +5V and GND aren't available near the CAN connector on your ODrive, you can use the +5V and GND from the encoder inputs.

When using a single FluidBoard and ODrive, enable the 120 Ω termination jumper on the FluidBoard.

Configuration

ODrive:
  can_tx: gpio.9
  can_rx: gpio.47
  odrive_node_id: 1
  gear_factor: -0.777778   # Negative = reverse direction; ratio for gearing
  max_speed: 3000           # Maximum RPM
  atc: pneumatic_tool_turret  # Optional: which ATC to use for tool changes

The ODrive parameters (encoder counts, current limits, etc.) are downloaded automatically by the FluidBoard at startup.

Copyright (c) 2024 by NubiloSoft, all rights reserved.