General 3D Printing Thread


 
I spent the evening merging the auto level code into my tree, just the relevant parts, and blue-painter's-taping my wiring to the printer. So far it doesn't look good, I'm getting a lot of variation and I've also managed to issue a gcode to my printer to make it wreck the X axis GT2 belt's tension in a way I need to take it apart to fix.

For a test I have the Z probe run 100 times in the same spot. I get a range of about 0.12mm and sometimes I even get numbers as far out as 0.25mm. Obviously this won't do at all for the purposes of printing a 0.2-0.3mm layer.

I think half the problem is that the servo doesn't stay in the same place. It acts like it has had 10 cups of coffee. I hooked the scope up and the pulse width sent by the firmware is actually varying enough that the servo changes position back and forth frequently. You can see this jitter in other videos where it looks like the servo arm is bouncing up and down while printing. A small change amplified by a 40mm arm = enough jitter in the Z measurement that it becomes less than helpful. This is in the standard Marlin firmware so unless I can get around it or get another servo with a wider deadband, the servo is out. EDIT: unless someone makes a cool flipdown switch like they have on lulzbot.

That said, the leveling code does work, it does properly transform the Z heights so I can see my Z going up and down slightly during printing.
 
Last edited:
It is definitely the servo jitter. I just tried disabling the servo once it is in place and I get great repeatability (0.01mm). Check this because it is odd:
-- For every probe I run with the heated bed off, the bed gets 0.007mm closer to the probe
-- For every probe I run with the heated bed on, the bed gets 0.01mm further from the probe

I would say that the Z steppers are skipping steps when the heater is on, but that wouldn't account for it getting closer when the bed is off. Unless my steps per mm were off, and that's an easily calculated number (200 steps * 16 stepping * 0.8mm/rot = 4000). I guess my threaded rod could be off too, but what are the odds of that?

Unfortunately you can't disable the servo in code because the firmware can't tell when the servo has reached its position. I've also tried directly setting the microseconds for the pulse width and it still jitters. I don't know if the servo jitter is fixable. :/
 
I would think that too, but I would expect the bed to get closer when heating up (thermal expansion toward the probe). The giant red flag is that with the heated bed off, never turned on at all, the bed gets 0.007mm closer every time you test it anyway. So there's more in play than just thermals, it's something internal to the whole measurement method.
 
Or it could be backlash.

dave

I would think that too, but I would expect the bed to get closer when heating up (thermal expansion toward the probe). The giant red flag is that with the heated bed off, never turned on at all, the bed gets 0.007mm closer every time you test it anyway. So there's more in play than just thermals, it's something internal to the whole measurement method.
 
Easy way to test this out - just flip the PCB and re-test. Your traces are on the bottom and heat-spreader on the top? The traces themselves are hotter than the top copper, and will expand more than the heat spreader, doming the PCB downward. Personally, I really dislike those PCB heated beds. They're inexpensive but so damn slow.

And I like your servo implementation for bed leveling. I wonder if it would be better to follow the Lulzbot method of having a cam on the X-carriage that actuates the Z-probe. Perhaps mounting a servo onto the X-end and moving a hooked boom into and out of position to operate the cam. I'm in the process of re-imagining my X-axis now...hell, I've been working on re-designing most of the parts of the machine for the past week. Printed a lot of it off and installing the upgrades bit by bit on my big machine. That and I've been busy with a lot of other stuff. Now you know why I've been pretty silent on the forums lately.

And I'll post my servo/fan setup in that thread when I get a chance.

Happy printing!
 
Whoa! Those nuts are crazy. I don't think mine are like that yet. I'll have to check. You might be right about the PCB too. I'll look into that once I get the measuring part nailed down.

I also agree that the servo is overthinking the problem. It's pretty cool when it moves over and WEERP the servo drops the endstop switch, measures, then pulls it back up. I sort of threw this design together at lunch. Just starting the basic idea of the same concept. There will be one piece that mounts around the existing holes in the x carriage which will have a screw that holds the toggle, then there will be a shell that fits around the mount that slides back and forth enough to actuate the toggle (not shown). Hopefully get a chance to at least get a prototype out of this tonight. Ah crap I gotta fix my printer, maybe not.
 
I considered a magnetic mount but I'd prefer something automatic, mostly because I will forget to put it on once and cram my hotend into the bed for 5 minutes. I'm sure I'll still figure out a way to do that!
 
I just saw the rostock max printer. I think I fell in love :)

Now someone tell me why it isn't more popular.

dave

I'm guessing it takes a lot more effort to keep the X, Y, and Z axis aligned on one of those compared to a regular flatbed printer.
 
I'm guessing it takes a lot more effort to keep the X, Y, and Z axis aligned on one of those compared to a regular flatbed printer.

The traditional 3-axis printer had been around longer and therefore a larger user base so people usually begin with that. From what I've seen, the Rostock printers perform very well but are probably a little bit much for a newbie to dive right into. I believe Matt has been working hard to port over the newest rostock model into autodesk 123d.
 
Whoa! Those nuts are crazy. I don't think mine are like that yet. I'll have to check. You might be right about the PCB too. I'll look into that once I get the measuring part nailed down.

I also agree that the servo is overthinking the problem. It's pretty cool when it moves over and WEERP the servo drops the endstop switch, measures, then pulls it back up. I sort of threw this design together at lunch. Just starting the basic idea of the same concept. There will be one piece that mounts around the existing holes in the x carriage which will have a screw that holds the toggle, then there will be a shell that fits around the mount that slides back and forth enough to actuate the toggle (not shown). Hopefully get a chance to at least get a prototype out of this tonight. Ah crap I gotta fix my printer, maybe not.

FYI...Colin at MakerFarm is working on integrating the auto-leveling code to his firmware...
 
Oh really, where did you see that? The blog on their site doesn't have any info (at all).

I've got the switch part, but I can't figure out a clean way to actuate it. The only idea I've got is to make a giant piece that extends the X ends out far enough to allow them to contact the carriage extension I made. I suppose it could work but it won't look good. I can't move the switch back any because then it wouldn't contact the bed at Y=0. I'm still working on it, but today I need to make some BBQ!
 
Bryan, did you mention previously that you print with monoprice filament? If so, what temp are you extruding at and what bed temp are you using? I just got some to try it out and am having terrible results.
 

 

Back
Top