Putting the X5S to use

After printing 16 bearing sleeves it was time to do something about the constantly de-synchronizing Z axis. The quickest way to re-align the two sides is to create endstops on either both sides (e.g. with two Tronxy X5S Z level by Veterimario77) or the single weaker side (the method of Z Reference Marker by OnTheLake) and move the motor(s) against them. I also tried to install lower „hard endstops“ in the form of shortened Tronxy X5S – Anti Z wobble by Marco67. Shortening was done via OpenSCAD:

        difference(){
            scale([1.0, 1.0, 1.0]){
            import("608zz_down.STL"); // 73x39.8x7.3mm³
            }
            cube_at (50,50,50,-25,-25,40);
            cube_at (30,10,50,0,-5,-1);
        } // difference

…but I did not insert a bearing as I did not want to overdetermine the whole system.

Now the build platform could be „levelled“ by either inserting the „Z Level“ stops to the top or just moving it completely to the bottom before a print. But I still had to have Cura define the first layer as „concentric“ and watch (and re-adjust, while watching the nozzle) at least for the outer shape of the beginning of all of my prints.

Then I realized, that the next parts to print would take much longer and the running machine would interfere with our course of the day. So it was time to re-activate my OctoPi (using some zip-ties)…

…and move the whole machine to the cellar, where it could take the place of the JunkStrap and run overnight:

A smaller upgrade printed next was a motor bracket for the B’Struder, which included a heat sink out of my spare (parts) box:

//******************************************************************************
//*                           CHEAT SHEET                                      *
//******************************************************************************
// color ("x"){ } => x = Red, Crimson, Fuchsia, DarkOliveGreen, ...
// https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color
// for(variable = [start : increment : end])
// if (test){scope1} else {scope2}
// scale([1, 1, 0.1])
//      surface(file = "smiley.png", center = true);
// linear_extrude(height = 5, center = true, convexity = 10)
//      import_dxf(file = "example009.dxf", layer = "plate");
// import("body.stl", convexity = 5);
// minkowski() { ... }
// hull() { ... }
// intersection() { ... }
// union() { ... }
// difference()  { ... }
// translate ([x,y,z]) { ... }
// rotate ([x,y,z]) { ... }
// mirror(v= [1,0,0] ) { ... }
// scale(v = [x, y, z]) { ... }
// cube ([x,y,z],center=false);
// sphere(r, $fn=resolution); 
// cylinder(h, rb, rt, center = true);

//******************************************************************************
//*                    Functions and Modules                                   *
//******************************************************************************

module cyl_at_rot (h, r, t_x, t_y, t_z, r_x, r_y, r_z )
{
    translate   ([t_x, t_y, t_z]){
    rotate      ([r_x, r_y, r_z]){
    cylinder(h,r,r,center=false); }}
};

module cone_at_rot (h, r1, r2, t_x, t_y, t_z, r_x, r_y, r_z )
{
    translate   ([t_x, t_y, t_z]){
    rotate      ([r_x, r_y, r_z]){
    cylinder(h,r1,r2,center=false); }}
};

module cube_at (x,y,z,tx,ty,tz)
{
	translate ([tx,ty,tz]){
	cube ([x,y,z],center=false); }
};

module c_cube_at (x,y,z,c,tx,ty,tz)
{
	translate ([tx,ty,tz]){
	chamferCube (x,y,z,c,center=false); }
};

module cube_at_rot (x,y,z,t_x,t_y,t_z,r_x,r_y,r_z)
{
	translate ([t_x,t_y,t_z]){
    rotate      ([r_x, r_y, r_z]){
	cube ([x,y,z],center=false); }}
};

module txt_at_rot (TEXT, FONT, SIZE, h, t_x, t_y, t_z, r_x, r_y, r_z )
{
    translate   ([t_x, t_y, t_z]){
    rotate      ([r_x, r_y, r_z]){
    linear_extrude (height = h){
    text        (TEXT, font=FONT,size=SIZE); }}}
};

//******************************************************************************
//*                           Globals                                          *
//******************************************************************************

include <Chamfer.scad>; // https://www.thingiverse.com/thing:1305888
// https://github.com/SebiTimeWaster/Chamfers-for-OpenSCAD/blob/master/Chamfer.scad

resolution=250;
$fn=resolution;

// Display / STL-generation
mode = "both"; // top / bottom / both / all

//******************************************************************************
//*                           Begin Code                                       *
//******************************************************************************

// Top / Lid / Holder / ...
if ((mode == "top") || (mode == "both")|| (mode == "all")){   
color ("SteelBlue"){  
  difference(){
    union(){
        // Heatsink
        c_cube_at (6.8,  6, 60, 2,  -8.25   ,25-3, -9);
        c_cube_at (4,   20, 60, 1,  -6.25-4 ,25-10,-9);
        // Top
        c_cube_at (51.5,20, 6, 1,  -6.25-4 ,25-10 ,47);
        c_cube_at (51.5,2.4, 6, 1,  -6.25-4 ,25-10 ,50);
        c_cube_at (51.5,2.4, 6, 1,  -6.25-4 ,25+10-2.4 ,50);
        c_cube_at (6,   20, 30, 1,  35.5   ,25-10 ,42);
        c_cube_at (32,  30,  6,  1,  9.5      ,25-15,42);
        // Bottom
        c_cube_at (51.5,20, 6, 1,  -6.25-4 ,25-10,-11);
        c_cube_at (51.5,2.4, 6, 1,  -6.25-4 ,25-10 ,-13);
        c_cube_at (51.5,2.4, 6, 1,  -6.25-4 ,25+10-2.4 ,-13);
        c_cube_at (6,  20, 30, 1, 35.5   ,25-10,-30);
        c_cube_at (32,  10,  6,  1,  8      ,25-5,-6);
    } // union
    cyl_at_rot (20, 4.5/2, 43, 25, 62, 0, 270, 0 );
    cyl_at_rot (20, 4.5/2, 43, 25, -20, 0, 270, 0 );
    } // difference


} // color
} // if (mode...

// Bottom
if ((mode == "bottom") || (mode == "both")|| (mode == "all")){
color ("DarkOliveGreen"){
difference(){
    union(){
        // Clamp
        c_cube_at (7.5,30,5, 1,  0.25,10,-5);
        c_cube_at (35,10,5, 1,  0.25,10,-5);
    }
}}} // Bottom

// Heatsink
if (mode == "all"){
color ("Crimson"){
difference(){
    cube_at (6.25,50,52,-6.25,0   ,-5);
    cube_at (4.9, 6, 52,-6.15    ,25-3,-5);

} // difference
}}

(I had to scale that to 103% to fit the motor properly.)

A decision I made prior to that, putting the universal filament roller by nicksears onto the stock M8 screw, resulted in constant overshoot and tangles – so I had to wedge in the spool. (Should have listened to RichRap – he mentiones it in his YouTube video on the MasterSpool.)

My MasterSpool (almost 12h using 0.2mm layers) was already depicted in the previous posts. The next big parts to print were the SgaboLab electronics enclosure. Here I used TinkerCad to prepare the back plate for a 50mm fan, but for now a 40mm model (again from the parts bin) does the job via adaptor. The lid (never used by the author) was reinforced and received a groove to keep the back plate in place without having to properly clean the grooves of the side pieces. To optimize airflow I drilled a second hole to guide the cables around the fan.

To keep the 230V connection in place I also went for a SgaboLab part: The base of the „Supply & Cable Holder“. But I added a cover for that bracket.

As I don’t rate the wiring as „final“ by now, some of the large Twist In Cable Clamp [2020 Aluminium Profile] by Z123456789 are holding everything in place.

BTW: My controller board (the 8bit „Melzi 2.0v5“, as the internet seems to call it) was only powered up once with the stock firmware (with only a USB cable connected). https://www.thingiverse.com/thing:2738690/#comment-1740099 contains the instructions to use the (pre-loaded) Sanguino bootloader to install an already prepared Marlin 1.1.8 – which you can then reconfigure, via Arduino IDE and the „configuration.h“ file, to suit your needs. Scott Worthington has put a tutorial with screenshots on customize-3d.com.

As already mentioned here I didn’t like that Repetier turned away from the open source community, so I just stuck to Marlin.

Noticeable prints at this stage:

My personal „enough internet for today“-moment from a few weeks ago… Beefy OctoDarwin by link0007, printed in Toms3D Infinity Blue using 0.15mm layers.

Next my son wanted a „Beystadium“ and delivered a representation in perspective, good to such an extend, that I just had to hack it into OpenSCAD (and add extra „Beyblade Burst“ logos). If the Banana is not scale enough: It is 200x200x30 mm³. 😉

And his sister wanted me to print her an own 3D-printer (interesting, how quickly people can hit on that idea). 😀 I took RichRap’s „Advent Makerbot Replicator 2“ from 2012 and put it onto a 2×4 parametric lego duplo by Domonoky. OpenSCAD was bitchy about the STL import, so I had to use TinkerCad again => https://www.tinkercad.com/things/h0YDzexmWZQ

At this point I had changed the filament to „EPR InnoPET“ again, in yellow this time.

Duplo RepRap

Later I also used that PET to print a Rocktopus 2 ( 2 hands and hair ) by joeostrander, which looks good enough after blow-drying. (PET is normally sticking to PET like hell on every occasion – and I feared that the hairstyle would be caulked.)

And I could replace a pair of gears with caries in the drive train of my son’s Mario Kart 7 RC Donkey Kong. For some reason the guys at Carrera choose tooth modules of 0.6 and 0.8 mm on this one and the whole drive assembly (priced 9.95 €) was sold out.

So the kids are delighted. What about SWMBO?

It turns out (at least in my case) the WAF can be raised significantly by printig cute Baby Groots. ^^

As I had lately seen a small one printed out of an „Easy Wood“ sample, I took a look at the different „Laywood-D3“ versions and finally ordered a spool of PRI-MAT3D „3D Wood, Oak“. I have printed the excellent waving Groot from Byambaa on Thingiverse and the Air Plant Planter by JuliaTruchsess yet. The flower pot: „Gardens“ of the Galaxy 2 from myminifactory.com is still on the list.

What you have to know about printig with (natural) fibre infused PLA is, that a 0.4mm nozzle is borderline small. (See Jeremie Francois‘ post here.)
=> There are more things to go wrong with this type of material.

I had two failures because of a clogged orifice so far, luckily only about an hour or so into the prints. Annoingly I also had a piece with oversized diameter (2mm), which leaves the machine without chance to finish the print. (OK, Prusa’s optical filament advance sensor could have paused the print, but I don’t even have a filament presence sensor yet – and that would have been useless anyway.)

As (IMHO) just complaining to the internet is not the right thing to do in that situation, I contacted PRI-MAT3D in Poznań. After all they had production date and batch number on the label of the spool – and the more feedback they get the better their products will be in the future. So I wrote an email (in english) and immediately received a response from an Export Manager (in german). She explained to me, that they do have a laser measurement system in place, but it will only alarm the machine operator and the rejection has to be done by hand. So errors can not be completely eliminated. I also received a few packs of sample filament in compensation. Now that’s customer service!

The „original Sumpod nozzle“ is already removed, checked for it’s thread (yes, it is M6) and awaiting to be drilled out to 0.6 mm or so. Then I can use up the rest of the 3D Wood and decide whether 3D Bamboo is next (3D Cork is among the samples 🙂 ).

The rest of that failed Groot was already printed and given to a workmate, who wanted to cut and glue it together himself.

Next construction area:

The strangely shifted layer on this print was caused by pushing filament into the bowden tube by hand, as the extruder skipped some steps. So not only Z-sync, but also a stronger guide of the X axis is now on my agenda. The linear rails of the JunkStrap are already salvaged for that.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.