Files
AON3D-M2/docs/wiring-instructions.md
Anto01 ef868e7953 Initial AON3D M2+ dual MCU configuration
- 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>
2026-01-12 20:52:58 -05:00

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

  1. Double-check all wiring against this guide
  2. Verify no short circuits (use multimeter)
  3. Ensure DM542T DIP switches are set correctly
  4. Confirm power supply voltages are correct

Power-On Sequence

  1. DO NOT connect motors yet (just signals)
  2. Power on the Octopus Pro only
  3. Verify it appears on USB (ls /dev/serial/by-id/)
  4. Flash Klipper firmware (see below)
  5. Start Klipper and check for errors
  6. Test endstops: QUERY_ENDSTOPS
  7. Test thermistors: check temperatures in Fluidd
  8. 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

  1. Check DM542T has power (LED on?)
  2. Verify step/dir/enable wiring
  3. Check DIP switch settings
  4. Try inverting enable pin: enable_pin: PF14enable_pin: !PF14

Motor moves wrong direction

  • Invert the DIR pin in config: dir_pin: PF12dir_pin: !PF12

Endstop always triggered or never triggers

  • Check QUERY_ENDSTOPS output
  • Try inverting: endstop_pin: PG6endstop_pin: !PG6
  • Verify wiring (NO vs NC switch)

Thermistor shows wrong temperature

  • Check wiring continuity
  • Verify correct sensor_type in config
  • The custom adc_temperature definitions 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)