Artillery Sidewinder X3 Plus Experiences

January 14, 2025

My trusty Kossel died last Friday, and I just picked this Artillery Sidewinder X3 Plus without much consideration. The features I knew I wanted were direct drive extrusion (not Bowden) and 32-bit microcontroller (smoothieboard). And once I picked a printer, the feature that excited me the most is PETG. My specific complaint about years with the Kossel is that PLA turns brittle after a few years, whether it sees sun and water or not. In fact, that's what killed my Kossel.

This printer cost me $169 shipped. I think the price is so low partly because there is an insane race to the bottom on price, and also because it is last year's model? The QC triangle says 2023-11-02. So I guess this has been sitting in a warehouse for a year waiting to be sold? The price is absolutely absurd.

Anyways it is already here!

I assembled it according to the instructions in the Youtube video. I wish it had been clearer about how to get the thing out of the box...but basically you remove everything except the base, including the gantry. And then you put your fingers under the base without removing any more foam, and lift the entire base up with a couple pieces of foam still on it. Then it is easy to remove those pieces of foam.

It is packed very well. UPS made a deep cut a full inch into the box in one corner, but hit nothing but foam. And UPS also made a big dent from strapping the box, also to no effect.

It took me an hour and a half to assemble it. I took my time about it, but I did not like take the base apart to check for loose connectors.

Then I selected auto bed levelling from the menu. Then I took the small sample of white "HS PLA" filament that came with it, and hung it on the spool holder, and passed it through the filament detector, and then into the back of the end effector. And I turned it on and went through the menus to set the temperature to 200C and then through the filament change menu asked it to feed it 10mm at a time until some started coming out. It seems like it was about 70mm to get all the way through the extruder. There was some black filament that I guess they used to test it at the factory, but it soon fed through to the new white filament.

Then I inserted the microSD card with it and picked a model called "3DBenchy-18.g". And it simply printed a benchy! As easy as that!

It printed very quickly in my opinion. Seemed faster than my old printer. But looking at the details, the model says it was about 3m of filament, which in my old printer would take roughly 30 minutes at 0.2mm layer height or 15 minutes at 0.5mm layer height. It appears to be 0.25mm layer height, so it is definitely an improvement but not like twice as fast or anything.

The benchy is "perfect" compared to expectations from my previous printer... Specifically the towers and roof are a big improvement. My old printer did not have a fan to cool the work (and its hot end couldn't keep up if you used an area fan), and it also had so much Bowden hysteresis! But looking closely, this benchy is full of flaws. The top and bottom layers are both underextruded, and the tower and overhang both show flaws on one specific corner (presumably on the wrong side of the cooling fan). And the hull has a subtle wrinkle in it that is actually a total stumper and could represent a fatal flaw with the printer for all I know. There is some mild stringing. And the most pathological overhang failed, with one strand of spaghetti.

But mostly I think they just used stupid slicer settings for this benchy, and I think I will do much better.

The most impressive thing is, I didn't do anything for the bed...and once it was printed, I simply lifted it off with my fingers (not touching the bed of course). And the object was already cool the moment it was done printing, so it definitely has a good fan pointing at the work!

I also tried to use my USB G-code terminal program, and it didn't work. The Marlin with my old printer wanted a checksum every line, but this one rejects that same checksum. So I need to hack that a little bit, if I am even going to use it. Maybe just to copy files onto the microSD card? Is that possible??

I have two complaints so far... The USB connector on the front means the cable is going to be in an awkward spot on my workbench...which maybe doesn't matter so much because the whole thing is just fantastically huge. I got the large Plus because it was the only one in stock for immediate shipment. Really, I simply need to clear off an even larger space on my workbench for it.

I guess another complaint is that the end effector is so bulky that I can't see it extruding. So that may make it hard to diagnose some problems? And it will certainly blunt my relationship with my slicer somewhat.

So I need to clean up my workbench, adapt the G-code terminal, and figure out Slic3r settings for PLA and PETG. And then I can get right back to the project I was working on when my old one broke!

I am still just completely in awe of the price of this thing. I last shopped for 3D printers in 2014, and back then you would struggle to find anything for less than about $500...and this just has absolutely everything, and covers all of the details. They even sent me some (very crappy) diagonal wire cutters!

Oh and! I did my first mod of the printer. At the top of the Z towers, there is an exposed bearing mounted sideways. So I put a bit of paper over that, and taped it in place. That way, dust won't settle into that bearing.

January 17, 2025

Just playing with it to test my understanding of its coordinate system and G-code behavior, I ran the head into the bed by issuing the "automatic bed leveling" from the front panel when I happened to have the head at Z=0. I can kind of imagine the flaw within Marlin that would have this effect. It feels familiar from my struggles with bed leveling before.

I have a very low opinion of Marlin as an example of software engineering, and it is full of these kind of flaws. I'm disappointed in myself for being fooled by the presence of a touchscreen UI into believing that it had been decently well-thought-out. But now I am acutely aware of why some of its head movement patterns don't make much sense -- Marlin is awful. I'm suddenly convinced they never worked out the coordinate confusion at the heart of the thing, and every additional hack on it is even more painful than the one before??

Anyways, it gouged the PEI or whatever coating on the bed. Not sure I care about that -- before, I let the painter's tape get pretty gouged up without caring. But it's kind of a bummer. I'm also nervous about whether it will damage its movement or its hot end with this kind of encounter. I know this kind of thing wasn't enough to kill the Kossel (because it died of something else, hah!), but I don't know about this new printer.

January 18, 2025

I'm just running with it, and trying to adopt a less precious attitude towards time and filament. So I reset slic3r to defaults using its configuration wizard to make a new template .ini file (the old one was *old*). I upped the temp to 210 because that's what it was before for my pink filament, and what was used for the benchy on the white filament. I upped all the speeds, infill up to 120.

Then I tried to print exactly the object that I was working on when my Kossel died, as a test object or maybe as a final draft. That's how I roll.

First problem is I had left the layer height for that object (which does not have fine details) to 0.5mm, but the new nozzle is only 0.4mm. And you can't do layers bigger than your nozzle? Sure enough, the second layer delaminates. Restart with layer height 0.4. And I increased the speeds some more because the general quality looked 'perfect'.

first_layer_speed going from 30 to 60 absolutely destroyed the first layer, it suddenly looked even worse than the stock benchy. Going back to 30.

Even with layer height 0.4, I'm getting some delamination, and looking more closely, there are horizontal gaps or thin spots between the lines. So I increased extrusion_multiplier to 1.1 (I used 1.2 with my old printer).

1.1 is much better, but there is still a series of little gaps between the solid infill and the perimeter on the first layer. I wonder if this is the result of some sort of movement shaping within the printer? But second layer adhesion looks much better now. And the second layer infill looks good too, at 60. And the top layer infill looks good at 40!

Big moment - testing the change-over because the white starter filament is used up. Pretty seamless! Made some adjustments to my 'send' program so it will be a little more streamlined in the future. But it worked fine to retract the filament, approximately "G92 E60\nG0 E0 F200\n". And then feeding it back in was about the same.

Noticed a little underextrusion, and then saw that the filament had tangled because of how carelessly I have handled it (this is about 20m of filament without a spool). I like an easily-explained problem!

Just noticed the fan is off. It looks like slic3r has tried to be clever, turning it on just for overhangs and towers. I used to use a script I wrote "airout.pl" to add idle time in towers, and it looks like slic3r is using the fan for that purpose. I'm setting fan_always_on=1, at least as an experiment.

There is some vibration in the perimeter. I am reducing the external perimeter speed from 80% of 100 to 50% of 100.

There is a tiny bit of stringing but it's not on every layer so I am going to leave retract_length at 1.

And my first part is pretty good. The perimeters look like crap, and the inside perimeter of some screw holes isn't even enough to let me put the screw through. But I'm used to drilling out screw holes anyways so I am just using it, without testing my new settings.

In other news, I got the PolyMaker PolyDryer. It shows some signs of having been stored wet -- its included desiccant is all black (dark dark green), and the coin cell battery in its hygrometer is a little rusty! But I simply put the purple MatterHackers PETG spool that I just got into it and started it up. Perhaps it will dry both at once, given the relatively dry state of my basement (it says 45% RH) and this filament. Anyways, not monitoring the oven during a slow drying process is the whole point of this gadget so I'm going to see how much it lets me get away with.

I am running the filament dryer on a concrete floor 2ft away from anything else, so hopefully it isn't a fire risk even if I leave it unattended.

The dryer has been running for 5 hours and the indicated RH has been decreasing slowly that whole time. It is now down to 22%. And the desiccant hasn't changed color at all. So I think I will need to use a different approach at least for the first run.

January 19, 2025

Decided to try to actually level the bed. The bed leveling matrix shows a clear hump in the bed, even though the whole thing is within 1mm.

At first, I couldn't have any effect, so I went ahead and loosened all six adjustments completely, until there was no resistance. They're push-only, so beyond a certain point they just aren't pushing. And then it was clear what the problem is, the bed is inclined from about +2 in the back-right to -1 in the front-left. But it is pretty flat.

Tightening it has the effect of making it more negative, so I figured I'd tighten everything until it's -1 to match the front-right (which cannot become more positive with this adjustment). But that has the effect of making it humped, not tilting it. The reason is pretty obvious from looking under it -- in the center, there are two columns between the alignment plate and the build plate that are fixed.

So I came to an alignment that was between about 0 and -1, but not as humped as the original factory setup. But you know what, I don't care if the range is between -1 and 2, all I want is flat!

The difference from 0 is just a slight dimensional distortion. The horizontal diagonal is 424mm, with 3mm of orthogonal error over that range it comes to a hypotenuse of 424.01mm. So that's 0.01mm of horizontal dimensional error. Simply immaterial. So I am repeating the levelling procedure, aiming at flat instead of trying to get everything to the same numerical value.

Which isn't exactly as easy as I hoped -- things get just a little squirrelly when there's no tension on any of them.

Anyways, the way I'm visualizing these things is I'm pasting the bed leveling matrix (provided by G29 or M420 V1) into a file (just the Z coordinates, not the column/row headers). Then I'm using gnuplot:

gnuplot> splot "level-20250119-17" matrix with lp, y*0.8/6.0-0.4

That formula is the flat plane I decided on, which I used as the reference. I also would reference it to the previous matrix by plotting that as well. Anyways, once I settled on that plane by estimating what was possible at the front and back respectively, it was really easy to methodically get closer to that plane. A couple points in the very front row are as much as 0.23mm off, but most of them are much better than +/-0.1mm. And the total Z distortion across the whole distance is 0.8mm. Nothing.

And I noticed a little unpredictability when connecting my G-code terminal. I had to use the reset button (three arrows in a circle) on the front panel in order to get it to connect. I figured out a protocol. First, connect the USB. Then, at the shell:

$ (while true; do ./send && exit; sleep 0.5; done)

Then turn on the printer. As it comes on, the USB will establish immediately and we'll get the boot up text from the printer and nothing will get jammed.

January 22, 2025

I struggled to dry the desiccant with the PolyDryer. After more than 15 hours in the 3-bars mode with an empty box with just the desiccant and hygrometer in it, no progress. So I took the hygrometer from the corner where it sits, and balanced it precariously directly over the rear vent. The majority of the beads turned orange within an hour. After 6 hours, only the ones in the corners were at all green. That's good enough for me.

I just don't want to dump the desiccant out of its little container because it's a pain to get it all back in.

So I ran a regular dry cycle on the PETG and I figure that's fine. I left it in the sealed box, with the filament coming out the top, and immediately going into a about 30" length of teflon tube. I draped the tube over the printer's filament spool holder, and bent up a bit of a coat hanger to hold it at the right bend angle to go into the filament detector.

I'm nervous about printing PETG because a lot of people are destroying their PEI build plates with it. But I don't really want to become a Windex or glue stick user. Some people say the textured PEI plates don't have any trouble (and mine seems to be textured). So I'm using --print-center 50,50 on my first print so that at least it won't destroy the center of the build plate. Which is probably a good idea all around, since I tend to use much less than the full size of the plate. I wish I could ask slic3r to align-to-corner.

I just updated the slic3r config to have 245C hot end, 65C bed, and to use the fan much less (turned fan_always_on back off, and reduced max_fan_speed to 50. I did not reduce the print speed, because the MatterHackers FAQ didn't advise me to, but I figure I might have to.

I have a small doodad I want to print (a stand to hang my Xaphoon on the wall for convenient drying), so it is the test case for PETG. Watching PETG print, it is definitely different from PLA! It is a little stringy, it seems like it underextrudes when I want it to extrude, and overextrudes when I don't. If I get around to it, I hope to try some different temperature, extrusion multiplier, and speed settings to see if I can improve it.

It sure does have a ton of tension on the filament, going up and over and then pulling the whole heavy spool around inside the box. I can feel the tension with my hands, or I can see it with the filament sensor flexing its little metal arm. But it doesn't seem to matter?? Is this how everyone just lives these days? I used to always unspool about 60m-100m of filament at a time and hang it on a little arm, and hand-advance it every couple meters because that didn't tend to unspool well. You know, to avoid putting stress on my old "geared Wade's Bowden extruder." This extruder definitely seems to be strong!

It made it to about 2cm up and then the bottom layer let go. I added some glue stick, and switched to 0.2mm first layer height (from 0.4mm). It would not stick at all. I rubbed off most of the glue with a rag, and it still wouldn't stick. I switched it back to 0.4mm, and now it sticks. So the 0.2mm first layer height seems no good, but the jury is out on the glue.

So I aborted that print -- which I see had already peeled up in the corners -- moved it to print in the other corner, in case that corner is dirty (it's the closest to where I might touch it). And I switched to 0.4mm layer height throughout just so I don't wait so long for it to print to a height, and I'm curious how 0.4mm will work out with this filament anyways. And I increased first layer temp to 250C / 70C.

That worked for slightly longer but gave way also. So I washed the bed with dish soap and hot water (nice that it is so easy to remove!), and increased the first layer temp further to 255C / 75C, and increased the general bed temp to 70C.

And it made it to the end of the print! I don't know if cleaning it or increasing the bed temp was the secret. It is now hard to remove after it's done. I will wait for it to cool some more.

I'm pretty happy with the product. The corners look good, it is pretty strong, it does bend when I really go at it with my fingers (this piece is pretty stout). There is some stringing but it's not any worse than with the PLA. There's no brim on the first layer, which always plagued my old printer (but maybe was responsible for improved adhesion??). And the first layer is actually flat -- it only peeled up at the corners when I experimented with glue stick.

The bridge part of the overhang does have some spaghetti. I'll try with a little more aggressive fan setting in the future maybe.

One downside is that the perimeter surface finish represents some attribute of the material behind it. Like the hollow on the inside of the shape shows up on the outside of it as well as a bit of roughness. I had an effect like that with PolyMax PLA years ago. I think it's from the temperature of the filament and its surrounds mattering so much. So it cares if it's being laid down beside slightly-cooled or slightly-more-cooled neighbors. With the PolyMax, it was enough to meaningfully affect dimensional accuracy so I'm going to just pray that doesn't become a problem with PETG.

I'm pretty pleased. I think I'll be able to live with PETG's defects. I'll learn a lot over the future though. The dimensional accuracy seems to be better than I expect with PLA (like how much extra you have to add or remove to achieve a friction fit). We'll see how that holds up to future experimentation. And we'll see if first layer adhesion is a chronic problem.

January 27, 2025

I turned off a fan elsewhere in the house, and the USB connection between my printer and laptop froze. This was a problem I had with the old Kossel, but I "resolved" it by putting the laptop and printer on the same power strip. I am using that same power configuration today, but the new printer is still vulnerable to it.

The thing is, this incentivizes copying to the SD card and printing from that. Which I don't want to do for a bunch of reasons, not least of which is inertia. I guess I can try to learn how to use M28, huh?