If you decide to go ahead and install any of the custom firmware branches on your BX then you must read this guide before using it as it has been carefully written to cover the most common questions that users of the firmware have.
If you ask a question in the facebook group that is covered in this guide I'm going to scowl at you through my monitor and with three mighty waves of my finger declare "tsk, tsk, tsk".
This guide has been written to supplement the information within the main readme under the "Using the firmware on the BX" heading over here: https://github.com/looxonline/Marlin. Please make sure that you read both as they are equally important.
The information in this guide is structured so as to cover important usability points or to answer common questions under each sub-heading. This should help you to easily identify a sub-heading which you may be particularly interested in or is closely related to a question that you have.
With the first batch of units that BIQU released, they provided dual, independent z functionality but never enabled Z_STEPPER_AUTO_ALIGN in the firmware and therefore the production process did not aim to connect the z-steppers in any particular order. After having some discussions with them they realized that this is a useful function and agreed to enable it and connect their z-steppers in a specific order. In order to understand the order that they connect their units in vs. the order that the firmware expects you need to have a look at the picture below.
In the picture you'll notice that I have labelled the one stepper driver as ZA and the other as ZB. I intentionally did this instead of labelling them as Z1 and Z2 for reasons that will shortly be made clear. The cables that BIQU use when doing the wiring have Z1 and Z2 written on them, however there is no fixed standard as to whether Z1 runs to the left stepper or to the right stepper. You should therefore use the numbering on the wires simply to identify how your steppers are connected. Let's assume that your Z2 runs to the stepper on the left. You would simply need to plug that into the ZA socket on the motherboard. Likewise if your Z1 runs to the stepper on the left then you would instead plug that into the ZA socket on the motherboard. Essentially you just need to make sure that whatever cable runs to your left stepper plugs into the ZA socket on the motherboard.
When connecting your right stepper take note that there should be a free socket between the ZA and the ZB socket on the motherboard. This is because the ZA socket actually has two sockets associated with it but we only use one and we leave the other one open.
Once you've connected your steppers it would be a good idea to test that they are the correct way around. To do this, power on the BX (with the custom firmware already installed), navigate to the terminal menu in the BTT UI and then enter G34. A sequence should begin that probes the extremities of the X axis with the Y axis centred. Each time the probe changes sides the terminal will print out an error reading. As long as the error reading is getting smaller and not larger you have the steppers the correct way around.
Following directly on from the previous point this firmware enables a feature known as z-stepper auto align. Having two z axes is great but what happens if they go out of alignment and cause the x gantry to no longer be parallel to the bed? "Ah, ABL should sort that out" I hear you say. You are quite correct. ABL should sort that out but it's always good to give ABL as much of a mechanical hand as we can.
This feature probes the bed at each extend of the X axis to see what height the gantry is at relative to the bed at each point. By iteratively probing on each end, Marlin is able to reduce the height difference between each end of the X gantry and the bed down to 0.2mm. If you use the BX profile that is build into Cura (or prior to Cura V5 is available from the facebook group) then this step is already built into the start code before each print.
The BX uses an inductive sensor and an inductive sensor can probe FAST without losing accuracy. The stock firmware had probing that was just too slow for my liking. I sped things up and the grid is now probed at a very high speed. To be sure that I was not sacrificing on probing accuracy I ran tens of probing grids, one after the other, and compared their results to each other. The variance was tiny and most points were within 1.5% of each other on successive grids.
There is one caveat to the above statements. Your probe is very temperature dependent and needs to be warmed to a pre-defined point before doing any probing routines. Parking the probe directly above the bed and allowing it to be heated by the heat of the bed for at least 90s will ensure that you get consistent results. The start code in the cura profile for the BX automatically does this.
During probing the nozzle will be limited to 140C to prevent filament from being spewed all over the bed. After probing is complete the nozzle will be heated to the final temperature.
This is probably the point that people struggle with the most according to feedback from the facebook groups. This is likely because your z-probe has to be heated before attempting to calibrate the z-offset.
Let's deal with that. Follow the steps below to calibrate your z-offset:
- First go to the terminal screen and then type in M851 Z0 followed by M500. Then reset the machine using the reset button on the TFT. This gives us a nice, clean starting point.
- Next, perform a homing routine which should park the probe just a few mm above the bed.
- Turn on the bed heater to 60C and allow it to settle at 60C.
- After it has settled at 60C leave the probe to warm up for 90 seconds.
- With the probe now warmed up and the bed still on head over to the z-offset menu (movement --> ABL --> z-offset).
- Turn z-offset on and the machine will home and then place the nozzle just off the bed. Why does it place the nozzle off the bed? This location was selected because it ensures that if someone has entered an absurd z-offset and forgotten to clear it out before starting this process then the nozzle will not crash into the bed.
- Once the nozzle is parked you can use the menu to turn off the XY steppers and manually pull the bed forward so that the nozzle sits over it. You may need to use the arrow to scroll through the menu options to get to the one where you can disable the steppers.
- With the nozzle over the bed, step it down until the nozzle is able to pinch a piece of paper between the bed.
- Once the paper is pinched well, but still able to move about a bit, you have found the correct z-offset.
- Save it using the menu option and exit the calibration menu.
As long as you use the Cura start code and follow the steps above you should get perfect first layers every time. I have validated this with many, many prints.
The BX uses 0.9 degree stepper motors. These have a lower holding torque and thereby need higher currents to achieve rapid accelerations. The stock BX firmware has current set to 1050 and acceleration set to 800. I felt that this machine was capable of a more so I boosted the acceleration to 1000 and the current to 1150. I have a thermal imager and have analysed the motor temperature during long prints and found that it sits at around 54 degrees C which is relatively cool for a stepper motor.
The flip side of using high currents and high accelerations is that the steppers tend to make noise. This is just something that happens with 0.9 degree steppers and is well documented. There are more coils and therefore more things to create EM forces and vibrate together. Sometimes the guide bearings on top of the z lead screws vibrate against their holders which make the vibrations a million times worse. If this happens it's probably best to pull your guide bearings out and leave your lead screw loose in there. They don't offer support to the lead screw since they themselves are loose. They are just there to prevent things catching on the tip of the screw.
I have two of the BIQU BX printers.
You absolutely, positively do not need the Z end stop switches - they've been removed on both of my printers.
From the photo, the carriage is not in the correct position to home the Z-axis because the inductive sensor (used for Z-axis homing) is not over the bed. Since inductive sensors detect metal and not air, it's impossible to home the Z-axis unless the inductive sensor is over the metal flex plate.
The carriage is not supposed to move that far to the left, ever. There is a hex cap screw and hammer nut that slides in the rail on each end. Those cap screws extend ~5mm out from the rail and when adjusted correctly, physically prevent the carriage from moving past either extreme end. The left stop should be adjusted to keep the nozzle above the bed when the carriage is fully left (the inductive coupler will be well off the bed). The right stop should be adjusted to keep the inductive coupler over the bed when the carriage is fully right (the nozzle will be well off the bed).
Once the carriage moves left to the stop, the Stall Guard circuitry (aka "Soft End-Stops") on the X-axis driver detects the stalled motor condition and the firmware declares that X-home. Once X-home is detected, the machine homes the Y-axis (bed). Y-home is also detected using Stall Guard. After X and Y homes are determined, the machine will move the carriage to the right by 15-20m so the inductive sensor is over the metal flex plate. Only then will the machine attempt to home the Z-axis.
This appears to be an X-axis homing problem. Make very sure the limit cap screws are in place on both sides of the rail and adjusted correctly: when furthest left, the nozzle is still over the flex plate while the inductive sensor is 15-20mm left of the bed. When furthest right, the inductive sensor is over the bed and the nozzle is 15-20mm right of the bed.
If you want confirmation, move the carriage to the center, take another photo of the left side and post that photo. The cap screw should be clearly visible on both the left and right sides of the X-axis rail.
You may also want to move the carriage to somewhere near the center of the bed with the power off. Raise the z-axis 100-200mm. Power-up the printer, command home and observe. You should see the X-axis (carriage) home first, then the Y-axis (bed) home and finally the Z-axis home.
Using this approach, if the Z-axis begins homing and you see the inductive sensor is off the bed and so cannot sense the flex plate, you will have time to power the machine down BEFORE anything gets bent.