Page 1 of 1

Firmware improvement suggestions

Posted: 08 Dec 2019, 18:16
by finas
I came up with these two ideas while performing the calibration steps, specifically, the dual nozzles height calibration procedure.

The dual nozzle calibration procedure is essential for both single and dual nozzle operation, mainly because if not set properly, the non-printing nozzle can collide with the printed features that the other nozzle had printed.

Suggestion 1:
- To implement in firmware a "nozzle tilt" that would lift the non-printing nozzle slightly when doing single nozzle printings. This would be done by slightly rising one z-axis and slightly lowering the other one. The firmware would use this information as well as the information form the bed calibration to minimize the loss of printing quality that comes with the feature. This option would be user enabled. When using this feature, the user would know for sure that the print would not fail because of the non-printing nozzle colliding with the printed parts.

Suggestion 2:
- To implement a dual nozzle calibration helper in the firmware that would help and guide the user in properly setting up the two nozzle heights. Several ways have occurred to me to do this, either fully automatic or partially automatic, and I have no idea if they are feasible or not considering the hardware that comes with the printer.
- the printer would print a 2cm large stripe along the y-axis with one nozzle. then, it would move the nozzles from one side to the other of that stripe until the non printing nozzle collided with the stripe. This collision would be felt by the y axis motor and the printer would slightly rise that nozzle ( actuating its z-axis ) until no more collision could be detected. This could go on and on, printing with one nozzle or the other, until no more collisions were felt.
- the user would place a sheet of paper onto the bed. the printer would then lower the nozzles until it hit the bed ( using the z motor feedback to know when the bed had been hit. It would then ask the user what nozzle was hitting the bed and would tilt the z-axis a bit and repeat the procedure until both nozzles hit the bed at the same time.

Another thing that occurred to me, is that, using the manual calibration described in the user manual, where one turns off the printer and rotates the z-rod until the nozzles are at the same height, that this information would be precious for the printer to know ( how much were the rods rotated ) in order to improve printing, because the printer would then know the angle of the y-axis in relation to the x and z axis. I am assuming that right now it assumes that it is a 90 degree angle, but if one turns a bit the z-rods to align the nozzles then this is not true anymore. So maybe, instead of directing the user to turn off the printer and turn the rods, actually do that using the printer button and this way the printer would know how by how much.

Re: Firmware improvement suggestions

Posted: 12 Dec 2019, 12:31
by DomingosRodrigues
Hello Finas,

Thanks for the suggestions, I will pass them on to the R&D team but I am pretty sure those cant be implemented for the following reason:

Suggestion 1:
Using this nozzle tilt technique would cause the tip of the non raised nozzle to shift slightly to the left or right depending on which one was raised, as the printer has some play on the extruder parts that would require the user to precisely measure the distance between all parts and the inclination that all parts have after assembly otherwise the compensations of the shift would be incorrect lowering the print quality significantly. Another problem might be the ammount of calculation needed for every X Y Z position on the bed, the microcontroller on the B2X300 that would lower the achievable print speed quite a lot a possibly cause defects due to inconsistent stepping rates.
That said from experience when both nozzles are correctly leveled manually (as instructed in the user manual) there is a very low risk of collision if the bed is correctly prepared for a good adhesion :)

Suggestion 2:
When using leadscrews the collision detection is much less sensitive than with belts. Adding to that we have the Z axis couplers which dampen the impact and the bed springs. This would make the collision detection on the bed either fail and break/damage the glass or be so inconsistent that it would be useless.
That technique was studied initially to avoid the necessity of a Z axis probe but all tests shown it was wildly inconsistent the measurements varies +/- 1mm which in in the world of microns that the printer works is a huggeeee amount
As for the tilting assist through the LCD it could be done, and would be a good feature :D

Last suggestion:
Although it might seem like it the Z axis misalignment does not ruin the "squareness" of the X a Y axis, as that only depends if it's rods are 90º from each other, when tilting the X axis you are only changing the Z axis height for a given X axis position that information is already being used to correct the motion using the autocalibration module.
What causes problems (with both leveling consistency and print quality) are errors during assembly that cause any of the XY smooth rods to not be at 90º in relation to each other, for example the X rods can be 5mm higher on the left a and 5mm lower on the right side but still make a perfect 90º in relation to the Y rods.

Once more thanks for the suggestions as they are always useful to improve the product.

Best regards

Re: Firmware improvement suggestions

Posted: 12 Dec 2019, 21:29
by finas
Thanks for all those explanations.