Mercury 1.1

Mercury 1.1 Build:

Main Features:

Mercury 1.1 Summary:

In essence, the Mercury 1.1 is an Ender 5 conversion that brings it from a standard Cartesian printer into a CoreXY 3D printer with many additional features. The complete build is up to the user to decide where is a good stopping point. It allows you to build a printer with all the options you could possibly want or just a simple upgrade that should improve general printing quality and speed. It's up to the user to choose all components aside from the kinematics and tune/setup the printer in the way that they want. 

Background: 

I saw the Mercury 1.1 a few years ago when I came across the video from ModBot. A few years later, I decided that I would embark on the Mercury 1.1 build after having wanted to build a faster and bigger machine while keeping costs down. I chose the Mercury 1.1 build because it was relatively cheap compared to current options on the market today. Although it would be nice to own a Bambu Lab X1 Carbon or Creality K1 Max, the price of these machines alone would be out of my budget for me as a college student. Building the Mercury 1.1 with tax included would be cheaper than the price of either of those machines (excluding filament cost when printing your own parts). Additionally, I wanted to build a printer and not just buy an off the shelf readily made machine. I wanted to learn more about Klipper and have a dedicated, relatively fast machine that I could use as a main printer. I also have the option of just doing the base 1.1 conversion with room for more upgrades and the Hydra bed conversion down the line. With my budget and wanting to build a printer in mind, the Mercury 1.1 was the perfect option for me.

Build Vision

I decided to go for a black and white theme. I wanted to make a very clean and minimalist machine that would look beautiful and print fast and reliably. Since the Mercury 1.1 doesn't need many printed pieces, I decided to print all of the pieces myself with white Polymaker ASA. The most expensive portion of the build would be sourcing the hardware for the CoreXY kinematics conversion or finding a kit. As such, I went with the Fabreeko kit out of convenience. I calculated the cost for the kit without the Stainless Steel rails and found that it would be cheaper overall for me to just buy the Fabreeko kit with the rails instead of sourcing my own. Later down the line, I plan to upgrade the bed with the Hydra conversion with the WobbleX system from MirageC or a decoupler for better print quality and the elimination of Z banding. 

Tensioning Tower

X Gantry Right Carriage

X Gantry Left Carriage

Stepper Motor Tower

ASA Printing Tips

Top View of Parts

Main Components

Right Stepper Tower

Left Idler Tower

EVA Toolhead and Hotend:

After doing some research and looking through various high flow hotends, I decided to give the Red Lizard/Dragon High Flow Hotend. For this particular hotend, I found that the heatsink was the standard Red Lizard heatsink with the CHC Pro High Flow Heater block. Supposedly, this hotend is for the Creality K1 Max and I was curious about its performance so I wanted to give it a shot. The Red Lizard Heat Sink has a trimetal heat break and an annular ceramic heater that can reach 300 C. The hotend has a projected max flow rate of 45 mm3/s

Red Lizard CHC UHF Hotend

Removable Connector

45 mm3/s Max Flowrate

Trimetal Heatbreak

Octopus Board Setup and Wiring:

I found someone who had installed an Octopus board with a stock Ender 5 Plus and used his GitHub guide for reference. This was extremely helpful for me to figure out all the wiring. (<- guide on the left)

I used the general BTT Octopus Pro GitHub repository to find information on how to set up the board. (-> guide on the right)

Voron Wiring with BTT Octopus down below. This was very helpful for wiring as well.  

Setting Up/Wiring the Mainboard:

Note: All of the board information can be found above in the BTT GitHub for the Octopus Pro. All of the wiring information can be found above in juldaani's guide. 

I found this wiring diagram by TeamFDM which pretty much matches mine on a Voron Klicky Probe Forum. For all the auxilliary items, I am using the same setup: X, Y, endstops, probe port, Raspberry Pi port, and Fan ports. 

Here is how I wired my board.

Printer Firmware Complete Setup:

Setting up the firmware for everything to run properly is a little bit involved, but not too difficult. Most of the time I spent setting up the firmware was due to convoluted and confusing directions I was getting from watching YouTube videos and browsing through GitHub repositories. Hilariously, I made the mistake of installing Marlin on the Octopus Mainboard before realizing that I never needed to since I would be installing Klipper on it and controlling it with the BTT Pi via Mainsail. To avoid confusion, I'll keep it simple and easy so that anyone, including myself, can reference this section in the future.

Note: References, GitHub repositories, and guides for everything I talk about will be in the section below this one. 

BTT Pi Setup:

What you need: 

Following the BTT Pi V1.2 GitHub: 

Creating a Klipper.Bin File:

This is the most important step as it sets up the BTT Pi to talk with the MCU on your Mainboard. Your MCU is defined through setting up menuconfig. 

What you need: 

Klipper.Bin and MCU ID: (Octopus Pro V1.1)

For my Octopus Pro V1.1 mainboard: enable low-level configuration options, Micro-controller Architecture -> STM32, Processor Model -> STM32H723, Bootloader  -> 128KiB, and Clock Reference -> 25 MHz.

Octopus Board Setup:

Important: USB A port on the BTT Pi to USB C port on the Octopus Pro. Both boards should be powered externally for an easy installation process. Reference image for BTT and Octopus connection down below. 

Firmware Install:

Option 1: SD Card Firmware Install 

What you need: 

My Octopus MCU ID is: usb-Klipper_stm32h723xx_05001D001251313236343430-if00

Important: Make sure to note your MCU ID

Option 2: DFU Firmware Install:

What you need: 

My Octopus MCU ID is: /dev/serial/by-id/usb-Klipper_stm32h723xx_05001D001251313236343430-if00

Important: Make sure to note your MCU ID

Klipper Screen Setup:

Do this setup process before you flash the mainboard firmware. After you have installed the OS image on the BTT Pi, verify you have the BOOT partition.

What you need: 

Octopus Pro V1.1 MCU Reference

menuconfig MCU settings for Octopus boards

Firmware Install: Option 2 Reference

Boot0 jumper location circled in red

Mercury ZeroG build by 3Docity:

Before beginning the Printer.cfg, I'd recommend looking through this link. While setting up the Printer.cfg, I found it very helpful to reference this Printer.cfg done by 3DoCity. 

Printer.cfg Setup:

Note: It's always a good idea to have a backup printer.cfg file. I used the generitc BTT config file as a reference for building my printer.cfg file. In my case, I have the printer.cfg file, generic BTT config file, and a backup printer.cfg file. 

Setting Up Motors:

Setting Up Drivers:

Probe Setup: (Reference 1 and Pin Diagram)

Sensorless Homing:

Useful Tips/Console Commands: 

Reference 1: CRTouch Wiring

Pin Diagram

CR Touch/BL Touch Pin Diagram:

For some reason, on the stock Ender 5 Plus MCU, the GND and 5V are switched. I needed to switch around the Brown and Red wire in the Dupont connector of the CR Touch. Unfortunately, I originally thought the wiring was correct and plugged in the sensor without swapping the wires. At some point, I felt the wires for the CR Touch and they were very hot, realizing that I had probably shorted either the probe or the mainboard. When running some commands in the Mainsail Console, the CR Touch would extend and retract, but when I went to level the Z axis the sensor failed and wasn't detected. 

I was using sensorless homing on the z, but this caused issues that I'll touch up on later. 

Probe Port/Wiring Diagram:

The BTT Octopus Pro has a probe port available as well as programmable SPI IO Pins. I'm not quite sure what the SPI pins are for, but the manual has a picture of them.

The actual probe port is in the bottom right corner of the board. The image provided of the pins is correct and accurately tells you where the probe port is.

SuperPinda Probe:

I will be using an inductive PINDA probe. I bought one that should be the same as a PRUSA MK3S+ probe, but I don't know if the specs really line up. I'm not sure if the probe is actually a SuperPinda. However, the wiring should be the same. The PINDA V2 has 4 wires. The probe I bought has 3 wires like the SuperPinda. 

SuperPinda Specs:

Most importantly: As listed in the BTT Octopus Manual, an NPN probe output pulls to ground when its active. The jumper activates the 12K pull up resistor necessary for the probe. 

Activating 12k pull up resistor for an NPN Probe

The jumper pins are located right next to the probe port on its right side. 

Issues: BTT Pi 5v Jumper Connection

I forgot to unplug the 5V USB jumper on the BTT Pi and I sent a move command to the extruder. This made my BTT Pi stop connecting to WiFi and I was scared I fried something on the board, the stepper driver, or the BTT Pi. 

Fixing the BTT Pi:

Later on when I was trying to test the extruder again, I was no longer able to make the extruder stepper motor move. I think I may have shorted the board or the driver. 

Initially I was having issues getting the extruder stepper motor to even spin. In troubleshooting this issue, I was able to intimately understand how the stepper motor drivers worked in relation to the motor ports. I was confused because there were only 8 stepper motor driver slots but 9 motor connector ports (Reference 3). 

Originally, I had thought that the MOTOR2_1 and MOTOR2_2 connector ports were controlled by drivers 3 and 4 respectively. After sending commands through the extruder stepper motor, I found that MOTOR2_1 and MOTOR2_2 were actually connected in parallel and powered by only driver 3.

I then realized that I had plugged my extruder stepper motor into MOTOR3 when I was sending commands through MOTOR4

Afterwards, to fix this, I ran some tests: 

Thankfully I got the extruder stepper motor spinning. Turns out I had fried the original TMC2209 driver that was in Driver 4 when I ran the extrude command with the Pi 5V USB jumper connected. I got the error "Unable to read tmc uart 'extruder' register IFCNT", which told me that something with the driver wasn't working. Thankfully, my Octopus Board was fine and came out unscathed. My BTT Pi board still worked, but took a very long time to boot up. 

Reference 3: 8 Drivers, 9 Motor Connectors

Driver 3 powers Motor2_1 and Motor2_2 in parallel. This is useful for controlling the z-axis on one driver.

Octopus Pro Connector Diagram

This is V1.0 and not the V1.1. The difference can be found on the BTT Octopus page. You can tell the boards apart by the CAN port. 

Calibration Checklist:

Hydra Conversion:

As of now, I do plan to upgrade to the Hydra, but I will do this down the line. To keep costs down, I want to build the base Mercury 1.1 first and upgrade later. Sourcing the linear rails, MIC 5 heated bed, hardware and stepper motors would increase the cost significantly and I will do this eventually when I get my engineering job. As of right now, I'm perfectly content figuring out how to tune the printer and get it printing as perfectly and fast as possible. 

Mercury 1.1 Build BOM