- Octopus Pro: Motors (MOTOR0-7), bed heater (PA1), chamber heater (PB10) - Azteeg X3: Thermistors, endstops, probe, fan, hotend heaters - IDEX setup with external DM542T drivers - Includes wiring documentation and swap guide Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
18 KiB
AON3D M2+ Wiring Instructions
BTT Octopus Pro v1.0.1 with External DM542T Drivers
Overview
This guide covers wiring your AON3D M2+ IDEX printer with:
- Controller: BTT Octopus Pro v1.0.1
- Stepper Drivers: External DM542T (8 units)
- Host: Raspberry Pi 4/5 running FluiddPi
Total Connections Required
| Category | Count | Items |
|---|---|---|
| Motor Drivers | 8 | X, X2, Y, Y1, Z, Z1, E0, E1 |
| Endstops | 4-6 | X-min, X-max, Y-min, (Y-max), Z-min, (Z-max) |
| Thermistors | 4 | Extruder 0, Extruder 1, Bed, Chamber |
| Heaters | 4 | Extruder 0, Extruder 1, Bed, Chamber |
| Fans | 1+ | Enclosure fan (+ optional part cooling) |
| Probe | 1 | Bed probe |
| Power | 2 | 24V main, USB to Pi |
PART 1: Power Supply Connections
1.1 Main Power Input (24V DC)
Connect your 24V power supply to the Octopus Pro:
Power Supply Octopus Pro
============ ===========
+24V ─────────────────────► VIN (+)
GND ─────────────────────► VIN (-)
Location: Large screw terminals on the edge of the board labeled "POWER" or "VIN"
Wire Gauge: Use 14-16 AWG for main power
1.2 DM542T Driver Power
Each DM542T driver needs its own power connection (typically 24-48V DC):
Power Supply DM542T Driver
============ =============
+24V to +48V ─────────────► V+ (or VCC)
GND ──────────────────────► V- (or GND)
Important:
- All DM542T drivers can share the same power supply
- Use appropriately rated power supply (calculate total motor current)
- Typical: 48V power supply for better high-speed performance
PART 2: Stepper Motor Connections (DM542T Drivers)
2.1 Understanding the Signal Flow
┌─────────────┐ Step/Dir/Enable ┌─────────────┐ 4-wire ┌─────────────┐
│ Octopus │ ───────────────────────►│ DM542T │───────────────►│ Stepper │
│ Pro │ (low current) │ Driver │ (high current)│ Motor │
└─────────────┘ └─────────────┘ └─────────────┘
2.2 Octopus Pro Motor Header Pinout
Each MOTOR header on the Octopus Pro has this pinout:
┌───┬───┬───┬───┐
│ 1 │ 2 │ 3 │ 4 │
└───┴───┴───┴───┘
│ │ │ │
│ │ │ └── EN (Enable)
│ │ └────── DIR (Direction)
│ └────────── STEP (Step pulse)
└────────────── GND (Ground)
2.3 Motor-to-Driver Assignments
| Octopus Header | Klipper Section | Function | STEP | DIR | EN |
|---|---|---|---|---|---|
| MOTOR0 | [stepper_x] | X Carriage 0 | PF13 | PF12 | PF14 |
| MOTOR1 | [dual_carriage] | X Carriage 1 (IDEX) | PG0 | PG1 | PF15 |
| MOTOR2 | [stepper_y] | Y Axis | PF11 | PG3 | PG5 |
| MOTOR3 | [stepper_y1] | Y1 Axis (2nd motor) | PG4 | PC1 | PA0 |
| MOTOR4 | [stepper_z] | Z Axis | PF9 | PF10 | PG2 |
| MOTOR5 | [stepper_z1] | Z1 Axis (2nd motor) | PC13 | PF0 | PF1 |
| MOTOR6 | [extruder] | Extruder 0 | PE2 | PE3 | PD4 |
| MOTOR7 | [extruder1] | Extruder 1 | PE6 | PA14 | PE0 |
2.4 Wiring Each DM542T Driver
For EACH of the 8 motor drivers, make these connections:
Octopus Pro MOTOR Header DM542T Driver
============================ =============
Pin 1 (GND) ──────────────────────► PUL- (Pulse negative)
├───► DIR- (Direction negative)
└───► ENA- (Enable negative)
Pin 2 (STEP) ─────────────────────► PUL+ (Pulse positive)
Pin 3 (DIR) ──────────────────────► DIR+ (Direction positive)
Pin 4 (EN) ───────────────────────► ENA+ (Enable positive)
Visual Diagram:
Octopus MOTOR0 DM542T #1 (X Axis)
┌─────────────┐ ┌─────────────────┐
│ GND ●──────┼────────┬───────────────►│ PUL- │
│ STEP ●──────┼────────┼───────────────►│ PUL+ │
│ DIR ●──────┼────────┼───────────────►│ DIR+ │
│ EN ●──────┼────────┼───────────────►│ ENA+ │
└─────────────┘ │ ┌┤ DIR- │
├───────────────►│ ENA- │
│ │ │
│ │ A+ ●───────────┼──► Motor Coil A+
│ │ A- ●───────────┼──► Motor Coil A-
│ │ B+ ●───────────┼──► Motor Coil B+
│ │ B- ●───────────┼──► Motor Coil B-
│ │ │
│ │ V+ ●───────────┼──► +24-48V
│ │ V- ●───────────┼──► GND (Power)
│ └─────────────────┘
│
└─── Common GND (can use single wire daisy-chained
or individual wires to each driver)
2.5 Repeat for All 8 Drivers
| # | Octopus Header | DM542T Label | Motor |
|---|---|---|---|
| 1 | MOTOR0 | DM542T-X | X Carriage 0 |
| 2 | MOTOR1 | DM542T-X2 | X Carriage 1 |
| 3 | MOTOR2 | DM542T-Y | Y Motor |
| 4 | MOTOR3 | DM542T-Y1 | Y1 Motor |
| 5 | MOTOR4 | DM542T-Z | Z Motor |
| 6 | MOTOR5 | DM542T-Z1 | Z1 Motor |
| 7 | MOTOR6 | DM542T-E0 | Extruder 0 |
| 8 | MOTOR7 | DM542T-E1 | Extruder 1 |
2.6 DM542T DIP Switch Settings
Set the DIP switches on each DM542T to match the Klipper config:
Microstepping (SW5-SW8):
| Axis | Microsteps | SW5 | SW6 | SW7 | SW8 |
|---|---|---|---|---|---|
| X, X2, Y, Y1 | 16 | OFF | ON | ON | OFF |
| Z, Z1 | 4 | ON | ON | OFF | OFF |
| E0, E1 | 16 | OFF | ON | ON | OFF |
Current Settings (SW1-SW3): Set according to your motor specs. Typical settings:
- NEMA 23 motors: 2.0-3.0A
- NEMA 17 extruders: 1.0-1.5A
PART 3: Endstop Connections
3.1 Endstop Pinout on Octopus Pro
The DIAG/Endstop headers are 3-pin connectors:
┌───┬───┬───┐
│ S │ V │ G │
└───┴───┴───┘
│ │ │
│ │ └── GND (Ground)
│ └────── +5V (for powered sensors, optional)
└────────── Signal
3.2 Endstop Assignments
| Endstop | Function | Octopus Header | Pin | Config |
|---|---|---|---|---|
| X Min | Home position Carriage 0 | DIAG0 | PG6 | endstop_pin: PG6 |
| X Max | Home position Carriage 1 | DIAG1 | PG9 | endstop_pin: PG9 |
| Y Min | Y home position | DIAG2 | PG10 | endstop_pin: PG10 |
| Y1 | Y1 endstop (optional) | DIAG3 | PG11 | endstop_pin: PG11 |
| Z Min | Z home position | DIAG4 | PG12 | endstop_pin: PG12 |
| Z1 | Z1 endstop (optional) | DIAG5 | PG13 | endstop_pin: PG13 |
3.3 Wiring Mechanical Endstops
Normally Open (NO) Switch - most common:
Endstop Switch Octopus Pro DIAG Header
============== =======================
COM ──────────────────────► G (Ground)
NO ──────────────────────► S (Signal)
Config: endstop_pin: PG6
Normally Closed (NC) Switch - add ! to invert:
Endstop Switch Octopus Pro DIAG Header
============== =======================
COM ──────────────────────► G (Ground)
NC ──────────────────────► S (Signal)
Config: endstop_pin: !PG6
3.4 Wiring Optical/Inductive Sensors (3-wire)
Sensor Octopus Pro DIAG Header
====== =======================
VCC (Brown/Red) ──────────► V (+5V)
GND (Blue/Black) ─────────► G (Ground)
Signal (Black/Yellow) ────► S (Signal)
PART 4: Thermistor Connections
4.1 Thermistor Header Pinout
┌───┬───┐
│ T │ G │
└───┴───┘
│ │
│ └── GND (Ground)
└────── Thermistor Signal
4.2 Thermistor Assignments
| Sensor | Function | Octopus Header | Pin |
|---|---|---|---|
| TH0 | Extruder 0 temperature | T0 | PF4 |
| TH1 | Extruder 1 temperature | T1 | PF5 |
| TH2 | Chamber temperature | T2 | PF6 |
| TB | Bed temperature | TB | PF3 |
4.3 Wiring Thermistors
Thermistors are not polarized - either wire can go to either terminal:
Thermistor (2-wire) Octopus Pro TH Header
=================== =====================
Wire 1 ───────────────────► T (Signal)
Wire 2 ───────────────────► G (Ground)
Important: Your M2 uses custom thermistors with voltage-based calibration. The config already includes the correct adc_temperature definitions.
PART 5: Heater Connections
5.1 Heater Output Specifications
| Output | Function | Pin | Max Current | Connector |
|---|---|---|---|---|
| HE0 | Hotend 0 | PA2 | 5A | Screw terminal |
| HE1 | Hotend 1 | PA3 | 5A | Screw terminal |
| HE2 | Chamber heater | PB10 | 5A | Screw terminal |
| HB | Heated bed | PA1 | 10A | Large screw terminal |
5.2 Wiring Hotend Heaters (HE0, HE1)
Heater Cartridge Octopus Pro HE0/HE1
================ ===================
Wire 1 ───────────────────► + (Positive terminal)
Wire 2 ───────────────────► - (Negative terminal)
Note: Standard heater cartridges are not polarized.
5.3 Wiring Chamber Heater (HE2)
Same as hotend heaters:
Chamber Heater Octopus Pro HE2
============== ===============
Wire 1 ───────────────────► +
Wire 2 ───────────────────► -
5.4 Wiring Heated Bed (HB)
For beds drawing less than 10A - connect directly:
Heated Bed Octopus Pro HB
========== ==============
Wire 1 ───────────────────► + (Positive)
Wire 2 ───────────────────► - (Negative)
For high-power beds (>10A) - use SSR (Solid State Relay):
Octopus Pro HB SSR Heated Bed
============== === ==========
+ ────────────────────────► DC+ (Control)
- ────────────────────────► DC- (Control)
AC/DC+ (Load) ────────► Bed +
AC/DC- (Load) ◄────────┤
│
Power Supply (+) ──────────────────────────────────┘
Power Supply (-) ─────────────────────────────────► Bed -
PART 6: Fan Connections
6.1 Fan Header Pinout
┌───┬───┐
│ + │ - │
└───┴───┘
│ │
│ └── GND (Negative)
└────── +24V PWM (Positive, controlled)
6.2 Fan Assignments
| Fan | Function | Pin | Header |
|---|---|---|---|
| FAN0 | Part cooling 0 (optional) | PA8 | FAN0 |
| FAN1 | Part cooling 1 (optional) | PE5 | FAN1 |
| FAN2 | Enclosure/Chamber fan | PD12 | FAN2 |
| FAN3 | Hotend fan 0 (optional) | PD13 | FAN3 |
| FAN4 | Hotend fan 1 (optional) | PE4 | FAN4 |
6.3 Wiring Fans
Fan (2-wire) Octopus Pro FAN Header
============ ======================
+ (Red) ──────────────────► + (Positive/PWM)
- (Black) ────────────────► - (Ground)
Enclosure Fan (configured in Klipper):
- Connected to FAN2
- Controlled by chamber heater temperature
PART 7: Probe Connection
7.1 Probe Wiring
Your probe connects to the dedicated PROBE header:
For mechanical probe (2-wire):
Probe Switch Octopus Pro PROBE
============ =================
COM ──────────────────────► G (Ground)
NO/NC ────────────────────► S (Signal)
For inductive/capacitive probe (3-wire):
Probe Sensor Octopus Pro PROBE
============ =================
VCC ──────────────────────► V (+5V or +24V depending on sensor)
GND ──────────────────────► G (Ground)
Signal ───────────────────► S (Signal)
Config: pin: ^PG15 (the ^ enables internal pull-up)
PART 8: Communication Connections
8.1 USB to Raspberry Pi
Connect the Octopus Pro to your Raspberry Pi via USB:
Octopus Pro Raspberry Pi
=========== ============
USB-C port ◄───────────────► USB port (any)
Use a quality USB cable - data + power capable.
8.2 Finding the Serial Port
After connecting, run on the Pi:
ls /dev/serial/by-id/*
You should see something like:
/dev/serial/by-id/usb-Klipper_stm32f446xx_XXXXXXXXXX-if00
Update printer.cfg with this path.
PART 9: Complete Wiring Checklist
Power
- 24V power supply connected to Octopus Pro VIN
- 24-48V power supply connected to all DM542T drivers
- USB cable from Octopus Pro to Raspberry Pi
Motors (8 total)
- MOTOR0 → DM542T → X motor (Carriage 0)
- MOTOR1 → DM542T → X2 motor (Carriage 1/IDEX)
- MOTOR2 → DM542T → Y motor
- MOTOR3 → DM542T → Y1 motor
- MOTOR4 → DM542T → Z motor
- MOTOR5 → DM542T → Z1 motor
- MOTOR6 → DM542T → Extruder 0 motor
- MOTOR7 → DM542T → Extruder 1 motor
Endstops
- X endstop → DIAG0
- X2/Dual carriage endstop → DIAG1
- Y endstop → DIAG2
- Y1 endstop → DIAG3 (if used)
- Z endstop → DIAG4
- Z1 endstop → DIAG5 (if used)
Thermistors
- Extruder 0 thermistor → T0
- Extruder 1 thermistor → T1
- Chamber thermistor → T2
- Bed thermistor → TB
Heaters
- Extruder 0 heater → HE0
- Extruder 1 heater → HE1
- Chamber heater → HE2
- Heated bed → HB (or via SSR)
Fans
- Enclosure fan → FAN2
Probe
- Bed probe → PROBE header
PART 10: First Power-On Procedure
Before Applying Power
- Double-check all wiring against this guide
- Verify no short circuits (use multimeter)
- Ensure DM542T DIP switches are set correctly
- Confirm power supply voltages are correct
Power-On Sequence
- DO NOT connect motors yet (just signals)
- Power on the Octopus Pro only
- Verify it appears on USB (
ls /dev/serial/by-id/) - Flash Klipper firmware (see below)
- Start Klipper and check for errors
- Test endstops:
QUERY_ENDSTOPS - Test thermistors: check temperatures in Fluidd
- Then connect motor power and test movement
Flashing Klipper Firmware
cd ~/klipper
make menuconfig
Settings for Octopus Pro v1.0.1:
- Micro-controller: STMicroelectronics STM32
- Processor model: STM32F446
- Bootloader offset: 32KiB bootloader
- Clock Reference: 12 MHz crystal
- Communication: USB (on PA11/PA12)
make clean
make
Copy out/klipper.bin to SD card as firmware.bin, insert into Octopus, power cycle.
Troubleshooting
Motor doesn't move
- Check DM542T has power (LED on?)
- Verify step/dir/enable wiring
- Check DIP switch settings
- Try inverting enable pin:
enable_pin: PF14→enable_pin: !PF14
Motor moves wrong direction
- Invert the DIR pin in config:
dir_pin: PF12→dir_pin: !PF12
Endstop always triggered or never triggers
- Check
QUERY_ENDSTOPSoutput - Try inverting:
endstop_pin: PG6→endstop_pin: !PG6 - Verify wiring (NO vs NC switch)
Thermistor shows wrong temperature
- Check wiring continuity
- Verify correct
sensor_typein config - The custom
adc_temperaturedefinitions should match your sensors
Heater doesn't heat
- Check for "HEATER_ERROR" in Klipper logs
- Verify heater wiring
- Check thermistor is working (needs valid temp reading)