Need Help Adding Synchronized Secondary CoreXY System Inside VCore 3.1
Full Story
Hey everyone! I’m working on a super niche project and could really use your collective expertise. Imagine this: I’ve got a RatRig VCore 3.1-300 (which is amazing, by the way!), and I’m trying to integrate a smaller, custom CoreXY system inside its build volume. This secondary system uses the same CoreXY belt/pulley setup and routing as the VCore but has a smaller (250x250) area and no Z-axis—it’s purely for synchronized X/Y motion. Think of it like a "printer inside a printer" that needs to mirror the primary nozzle’s movements.
Hardware Setup
- BTT Octopus V1.1 F446 (Motor3/Motor4 unused, free endstop pins available and connected to PG10 and PG11).
- Use Motor3/Motor4 for the secondary CoreXY, keeping RatOS’s primary stepper_x/stepper_y intact.
Challenge
- Use native CoreXY kinematics (gcodes and not manual_stepper hacks).
- Mirror the primary system’s X/Y movements via standard G-code (e.g., G0 X100 Y100 moves both systems).
- Avoid conflicts with RatOS’s existing stepper_x/stepper_y config.
What I’ve Tried
[Manual_stepper] Works for basic moves but requires manual CoreXY math (A=X+Y, B=X-Y) and does not use the standard gcode. Not usable for absolute coordinates or complex paths. Movements are sequential, not simultaneous.
Constraints
- RatOS’s primary stepper_x/stepper_y cannot be modified or reused.
- The secondary system must use absolute coordinates (but the endstops positioning of each corexy willhave an offset).
Questions
- Is there a way to define stepper_x2/stepper_y2 with independent CoreXY kinematics?
- Can ACTIVATE_PRINTER or RatOS’s multi-printer tools enable real-time mirroring?
- Has anyone successfully sync’d dual CoreXY systems on a single Octopus?
This project is equal parts thrilling and maddening, any guidance would mean the world! Whether it’s a config snippet, a reality check, or a “this isn’t possible,” I’d deeply appreciate your thoughts. Thanks for being an amazing community!
Hey everyone! I’m working on a super niche project and could really use your collective expertise. Imagine this: I’ve got a RatRig VCore 3.1-300 (which is amazing, by the way!), and I’m trying to integrate a smaller, custom CoreXY system inside its build volume. This secondary system uses the same CoreXY belt/pulley setup and routing as the VCore but has a smaller (250x250) area and no Z-axis—it’s purely for synchronized X/Y motion. Think of it like a "printer inside a printer" that needs to mirror the primary nozzle’s movements.
Hardware Setup
- BTT Octopus V1.1 F446 (Motor3/Motor4 unused, free endstop pins available and connected to PG10 and PG11).
- Use Motor3/Motor4 for the secondary CoreXY, keeping RatOS’s primary stepper_x/stepper_y intact.
Challenge
- Use native CoreXY kinematics (gcodes and not manual_stepper hacks).
- Mirror the primary system’s X/Y movements via standard G-code (e.g., G0 X100 Y100 moves both systems).
- Avoid conflicts with RatOS’s existing stepper_x/stepper_y config.
What I’ve Tried
[Manual_stepper] Works for basic moves but requires manual CoreXY math (A=X+Y, B=X-Y) and does not use the standard gcode. Not usable for absolute coordinates or complex paths. Movements are sequential, not simultaneous.
Constraints
- RatOS’s primary stepper_x/stepper_y cannot be modified or reused.
- The secondary system must use absolute coordinates (but the endstops positioning of each corexy willhave an offset).
Questions
- Is there a way to define stepper_x2/stepper_y2 with independent CoreXY kinematics?
- Can ACTIVATE_PRINTER or RatOS’s multi-printer tools enable real-time mirroring?
- Has anyone successfully sync’d dual CoreXY systems on a single Octopus?
This project is equal parts thrilling and maddening, any guidance would mean the world! Whether it’s a config snippet, a reality check, or a “this isn’t possible,” I’d deeply appreciate your thoughts. Thanks for being an amazing community!

![Rat Rig Community [Unofficial] banner](https://cdn.discordapp.com/banners/582187371529764864/4ee3e42e227d6aac26f048a3e69d5924.webp?size=480)