Build your Rep5x Marlin firmware
Select your control board
Rep5x requires a board with at least 6 stepper drivers (X, Y, Z, E, C, B).
BTT Octopus V1.1
8 stepper drivers, STM32F446, abundant I/O
RecommendedBTT Octopus Pro
Enhanced version with more features
Coming soonBTT SKR 3
Compact board, requires expansion
Coming soonOther board
Manual board configuration
Coming soonNeed a different board? Ask on Discord and I'll add support within a couple of days!
Printer dimensions
Configure your build volume and motion limits.
→ 200mm used (−20mm for Rep5x)
→ 200mm used (−20mm for Rep5x)
→ 170mm used (−100mm for Rep5x)
Depends on endstop location
Depends on endstop location
Z always uses its endstop.
Sensorless homing needs StallGuard-capable drivers, so X and Y drivers are set to TMC2209 and locked on the Motors step. Make sure the X/Y DIAG jumpers are installed on your board.
Higher = more sensitive (TMC2209 range 0–255, default 8). Fine-tune later with M914.
Select your display
Choose the LCD screen you'll be using with your printer.
BTT Mini 12864
Compact display with RGB backlight, encoder knob
RecommendedRepRap Full Graphic
Standard 128x64 LCD with SD card slot
CR-10 Stock Display
128x64 LCD with single 10-pin EXP connector (ST7920)
BTT TFT35
Touchscreen display with dual mode support
No display
USB/Serial control only (headless)
Which board output the LED is wired to (a fan header).
Off by default at power-up. Leave this section unchecked if your printer has no LED.
Motor configuration
Configure stepper drivers, steps per unit, and motor directions.
Stepper drivers
The second Z motor runs in sync with Z and uses the same driver type. Pick its driver slot under Advanced ▸ Motor sockets below (default MOTOR7).
With independent endstops, wire the second Z endstop to the Z2-STOP header. Leave off to share a single Z endstop.
C-axis (yaw): Inverted by default for CNC convention where positive C = clockwise when viewed from above.
Select NO (normally open) or NC (normally closed) based on your switch wiring.
Pin assignments
Each function is assigned to an MCU pin, prefilled with the Rep5x tutorial wiring. Change a pin if your board is wired differently — a warning shows if two functions share a pin.
Motor sockets
Which driver slot each axis is plugged into.
Default assignment: X=MOTOR0, Y=MOTOR1, Z=MOTOR2_1, E=MOTOR3, C=MOTOR4, B=MOTOR5. This matches the standard Rep5x wiring for BTT Octopus.
Inverse kinematics parameters
Configure the 5-axis inverse kinematics for your Rep5x toolhead.
Coordinate value assigned when C-axis hits home switch
B-axis travel limit (±value, e.g., 135 → -135° to +135°)
Y-offset from yaw axis to nozzle
Z-offset from tilt axis to nozzle tip
LB is the distance from the B-axis pivot to the nozzle tip
Don't worry about exact values. LC and LB can be fine-tuned later using the IK Calibration tool after your printer is assembled. Start with the defaults and calibrate once everything is working.
Higher = smoother motion but more CPU load
Review and build
Review your configuration and download the firmware files.
Configuration preview
Download options
Manual build instructions
- Download the config files above
- Clone DerAndere-Marlin repository
- Replace files in
Marlin/with downloaded configs - Build with PlatformIO:
pio run -e BTT_OCTOPUS_V1_1 - Find
firmware.binin.pio/build/