Pseudo-closed-loop positioning for the Rostock MAX with FSRs

General hangout discussion area for other non-printing stuff
Post Reply
User avatar
626Pilot
ULTIMATE 3D JEDI
Posts: 1716
Joined: Tue May 14, 2013 12:52 pm

Pseudo-closed-loop positioning for the Rostock MAX with FSRs

Post by 626Pilot »

I've been working on a heuristic calibration routine that uses parallel simulated annealing (parallel because each variable type can have its own annealing temperature) to figure out the right settings for arm length, inidvidual tower radii (the average of which is the delta radius), endstops, tower angles, and build surface normal. It works by Z-probing the print surface in a grid, and then "annealing" the printer's configuration until it comes up with the settings that would most likely produce the observed measurements. It works pretty well so far, but a Z probe can only tell you Z. If I could get X and Y as well, the annealing would be able to work on all three dimensions rather than just one. Correcting errors in Z is likely to improve X and Y as well (since no axis is independent on a delta printer), but if I had ALL three axes? That would be better still.

I was talking to someone in the Z=0 bug thread and he mentioned that his "Z probe" is three force-sensitive resistors (FSRs) under the glass, and tied in parallel to the Z_min pin. Wherever the hot end touches the glass, the three FSRs generate enough signal that it always triggers perfectly. He ran my probe calibration routine and found that his repeatability had a mu=0 and sigma=0. (That's statistics-speak for "utterly perfect" - no variation at all, it always triggers at precisely the same elevation.) This suggests to me that the FSRs he is using are highly accurate, at least for the way he's using them. Perhaps, then, FSRs can be used in a more elaborate way.

It occurred to me that IF:
  • You have three FSRs - one near X, one near Y, and one near Z, in precisely known locations (this would require some change in how the heated bed and glass are mounted)
  • Your controller has x_min, y_min, and z_min pins available to connect each FSR independently (they have to be ANALOG)
  • The FSRs are hardy enough to withstand routine temperature cyclings from 0C to 120C
  • The FSRs have enough resolution to discriminate the force and turn it into a usable signal, not just on or off, but on a gradient
...then, you have the beginnings of a CLOSED-LOOP calibration system! It would not be closed-loop when the printer is actually printing, but it would during calibration, which is when it matters the most. (Why? Because the steppers on these things would have to lose steps to require closed-loop during printing - and they don't.) In fact, this would be better than using servomotors with encoders, because that only tells you where each carriage is. The carriage position by itself isn't enough to figure out tower rotations and arm lengths and all that.

If the hot end touches the glass at (0, 100), near the Z tower, the Z tower's FSR should register more force than X's or Y's FSRs. If the hot end touches the glass at (0, 0), all three should register the same force. There should be some mathematical formula that would triangulate the true (x, y) based on the differences in force between the three FSRs.

Are there FSRs that can withstand repeated temp cycling up to 120C? Do they have enough accuracy to produce a signal we can use for triangulation?

If such a setup is possible using FSRs that are being produced today, we would get precise endstop adjustments, and that would take a considerable amount of slack out of the calibration. If you adjust the endstops, you also have to adjust the delta radius, and if you're messing with the tower radii and rotations, those have to be redone as well. However, if the endstops are known concretely, it's one less variable that could be throwing everything off. I've found that the annealing algorithm can be tripped up if you set it to calibrate two kinds of variable that produce similar error when they are mis-calibrated, especially if you turn on all the available calibration types at the same time. (Which you really want to do, because they work better when they're converged simultaneously.)
critical_limit
Printmaster!
Posts: 141
Joined: Thu Jul 10, 2014 11:15 am
Location: Berlin Germany

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by critical_limit »

bdjohns1
Printmaster!
Posts: 224
Joined: Sat Jan 25, 2014 9:50 pm
Location: Madison, WI

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by bdjohns1 »

Those are the standard FSRs everyone is using. They're not really compatible with heated beds.
User avatar
Nylocke
ULTIMATE 3D JEDI
Posts: 1418
Joined: Sun Jun 23, 2013 1:43 pm
Location: Iowa

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Nylocke »

I have my FSRs under my bed, they work fine. Ive printed for hours with them under a bed at 95C. I have a mount I made for them so they mount in place of the nylon spacers.
User avatar
Generic Default
Printmaster!
Posts: 554
Joined: Mon Jun 03, 2013 6:56 pm
Contact:

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Generic Default »

What if the FSRs are in contact with an actively cooled plate under the hot bed that is insulated from the hot bed? I was thinking about doing this with either FSRs or regular limit switches on springs. I'd much rather touch off on the plate than at the top of the machine, especially since thermal expansion of the aluminum T slots can make big differences in calibration when the T slots get longer.

I've been trying to find a zeroing solution that works in a huge heated build chamber.

For X and Y (horizontal) you can have the force sensors on the side of the bed, then touch them off like a CNC lathe would do with tools. With that method, you can not only calibrate X, Y, Z, radius, arm length, nonlinearity errors, ect, but you can also calibrate the tool geometry (not that useful for plain nozzles only).

As always, we need lots of inputs on the electronic control board.
Check out the Tri hotend!
User avatar
jdurand
Printmaster!
Posts: 397
Joined: Mon Dec 01, 2014 12:41 am
Location: Silicon Valley, California
Contact:

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by jdurand »

You could run insulated (thermal) posts to the bottom of plate and down to the resistors. Maybe even mount the resistors on the bottom of the wood (under the heater).
Standing on the edge of reality... (me)
Quando omni flunkus moritati (Red Green)
Let no man belong to another that can belong to himself. (Paracelsus)
All things are poison and nothing is without poison; only the dose makes a thing not a poison. (Ibid.)
User avatar
626Pilot
ULTIMATE 3D JEDI
Posts: 1716
Joined: Tue May 14, 2013 12:52 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by 626Pilot »

Nylocke wrote:I have my FSRs under my bed, they work fine. Ive printed for hours with them under a bed at 95C. I have a mount I made for them so they mount in place of the nylon spacers.
Details?
User avatar
Nylocke
ULTIMATE 3D JEDI
Posts: 1418
Joined: Sun Jun 23, 2013 1:43 pm
Location: Iowa

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Nylocke »

They are a lot like rpress's mount in aluminum, but I made mine to be printed. The mounts should be in ABS, the puck should be in PLA. The upper mount is designed to have one of the tee nuts used with the wood kit keeping the screw captive.
Example
Example
If you want .ipt, STEP, or F3D files let me know. I can design the upper part of the mount to be threaded directly into, or whatever really. Installation is pretty obvious, but I can take pictures if needed.
Attachments
FSRPuck.stl
(20.39 KiB) Downloaded 492 times
FSRMountLower.stl
(84.16 KiB) Downloaded 503 times
FSRMountUpper.stl
(113.56 KiB) Downloaded 516 times
User avatar
626Pilot
ULTIMATE 3D JEDI
Posts: 1716
Joined: Tue May 14, 2013 12:52 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by 626Pilot »

I don't quite get what you do with them. Can you show what they look like mounted?
User avatar
Nylocke
ULTIMATE 3D JEDI
Posts: 1418
Joined: Sun Jun 23, 2013 1:43 pm
Location: Iowa

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Nylocke »

Yeah sure, but I can't get super indepth with everything, I have a print going atm. Basically those 6 small white Nylon(?) roller bushings used as spacers under the bed are replaced with 3 of these. Sorry for the sorta poor lighting. I have them positioned under the Melamine heat insulator in the same positions at the Mini Kossel has them I think.
Put in place
Put in place
Side view
Side view
This last one is an attempt to show how the FSR wiring comes out the cutaway part of the lower mount. Its back in the depths of the bed, so its hard to show properly.
Wiring hole
Wiring hole
Basically it all forms a sandwich, the lower part of the mount gets mounted to the base with countersunk #4 screws, the FSR goes on top of that, then the PLA puck goes on top of the FSR (to even out the less than flat surface of the upper part of the mount, it won't work without the puck). Then the upper part of the FSR mount goes on top with one of the Tee Nuts used to mount the bed on the base and the belt clamps on the cheapskates embedded into the bottom (make sure its either flush or slightly deeper set than the bottom of the upper mount). Then the whole rest of the bed assembly goes on top of that with one of the countersunk #4 screws holding the bed to the upper mount (you may have to trim the screw so it doesn't extend too far).

I hope that clears things up a bit. I was thinking of doing a guide of sorts but there aren't really that many steps. I might create a post in my build thread for installing these that goes into more detail though..
DGBK
Printmaster!
Posts: 106
Joined: Sun May 17, 2015 10:03 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by DGBK »

Nylocke wrote:They are a lot like rpress's mount in aluminum, but I made mine to be printed. The mounts should be in ABS, the puck should be in PLA. The upper mount is designed to have one of the tee nuts used with the wood kit keeping the screw captive.
2014-11-21 22.17.29.jpg
If you want .ipt, STEP, or F3D files let me know. I can design the upper part of the mount to be threaded directly into, or whatever really. Installation is pretty obvious, but I can take pictures if needed.
I'm looking into possibly getting some FSRs for my ring. I have a question. Why do the pucks need to be made from PLA? Is there something wrong with using ABS?
User avatar
ZakRabbit
Printmaster!
Posts: 186
Joined: Sat Jun 20, 2015 5:07 pm
Location: Orange, CA

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by ZakRabbit »

DGBK wrote:
Nylocke wrote:They are a lot like rpress's mount in aluminum, but I made mine to be printed. The mounts should be in ABS, the puck should be in PLA. The upper mount is designed to have one of the tee nuts used with the wood kit keeping the screw captive.
2014-11-21 22.17.29.jpg
If you want .ipt, STEP, or F3D files let me know. I can design the upper part of the mount to be threaded directly into, or whatever really. Installation is pretty obvious, but I can take pictures if needed.
I'm looking into possibly getting some FSRs for my ring. I have a question. Why do the pucks need to be made from PLA? Is there something wrong with using ABS?
If you get the kit from Ultibot, it comes with pucks. They're rubber, I'm guessing you want something a little softer to do the actuation to keep them from wearing.
User avatar
Renha
Printmaster!
Posts: 280
Joined: Fri Apr 11, 2014 2:18 am
Location: Balashikha, Russian Federation
Contact:

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Renha »

Guys, sorry for offtopic, but what do you think about moving FSRs from heatbed platform to the effector?
3D printing is magic!

Sorry my engrish :-/ you could PM me in Russian.
User avatar
ZakRabbit
Printmaster!
Posts: 186
Joined: Sat Jun 20, 2015 5:07 pm
Location: Orange, CA

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by ZakRabbit »

Renha wrote:Guys, sorry for offtopic, but what do you think about moving FSRs from heatbed platform to the effector?
Something I've thought about, but how to mount them so that the hot end is solid enough to print with yet will allow the FSR's to act as the switch?
DGBK
Printmaster!
Posts: 106
Joined: Sun May 17, 2015 10:03 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by DGBK »

ZakRabbit wrote:If you get the kit from Ultibot, it comes with pucks. They're rubber, I'm guessing you want something a little softer to do the actuation to keep them from wearing.
Are the pucks the "6 High temperature silicon pads"? I'll probably order the FSRs soon. I'm so tired of terrible calibration on this thing. I'm hoping this will help.

Thanks
User avatar
ZakRabbit
Printmaster!
Posts: 186
Joined: Sat Jun 20, 2015 5:07 pm
Location: Orange, CA

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by ZakRabbit »

DGBK wrote:
ZakRabbit wrote:If you get the kit from Ultibot, it comes with pucks. They're rubber, I'm guessing you want something a little softer to do the actuation to keep them from wearing.
Are the pucks the "6 High temperature silicon pads"? I'll probably order the FSRs soon. I'm so tired of terrible calibration on this thing. I'm hoping this will help.

Thanks
They look to be about 12mm Diameter X 1mm thick, they are silicone adhesive, and there are 6 of them.
Edit: there are three at about 1mm and 3 at about 2mm thick, 6 total.
User avatar
Jimustanguitar
ULTIMATE 3D JEDI
Posts: 2608
Joined: Sun Mar 31, 2013 1:35 am
Location: Notre Dame area
Contact:

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by Jimustanguitar »

Nylocke wrote:Yeah sure, but I can't get super indepth with everything, I have a print going atm. Basically those 6 small white Nylon(?) roller bushings used as spacers under the bed are replaced with 3 of these. Sorry for the sorta poor lighting. I have them positioned under the Melamine heat insulator in the same positions at the Mini Kossel has them I think.
So in this arrangement, are any of the screws going through the whole assembly, or is the bed just floating on top of the base?
User avatar
ZakRabbit
Printmaster!
Posts: 186
Joined: Sat Jun 20, 2015 5:07 pm
Location: Orange, CA

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by ZakRabbit »

Jimustanguitar wrote:
Nylocke wrote:Yeah sure, but I can't get super indepth with everything, I have a print going atm. Basically those 6 small white Nylon(?) roller bushings used as spacers under the bed are replaced with 3 of these. Sorry for the sorta poor lighting. I have them positioned under the Melamine heat insulator in the same positions at the Mini Kossel has them I think.
So in this arrangement, are any of the screws going through the whole assembly, or is the bed just floating on top of the base?
I haven't seen any FSR's with a hole in the middle, I assumed we'd need to have a set of three two piece "risers" where the upper part were a slip fit into the lower part.
DGBK
Printmaster!
Posts: 106
Joined: Sun May 17, 2015 10:03 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by DGBK »

I think Jim had the same question about this setup that I do/did. I always assumed that there were 3 out of the 6 screws that were still holding the heated bed to the Rostock frame, but it appears the whole bed plus snowflake is simply resting on the 3 FSRs. Is this correct?

It makes more sense to me to have them setup this way for proper actuation. I just always assumed we needed the other 3 screws going all the way through the frame for stability.
User avatar
ZakRabbit
Printmaster!
Posts: 186
Joined: Sat Jun 20, 2015 5:07 pm
Location: Orange, CA

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by ZakRabbit »

DGBK wrote:I think Jim had the same question about this setup that I do/did. I always assumed that there were 3 out of the 6 screws that were still holding the heated bed to the Rostock frame, but it appears the whole bed plus snowflake is simply resting on the 3 FSRs. Is this correct?

It makes more sense to me to have them setup this way for proper actuation. I just always assumed we needed the other 3 screws going all the way through the frame for stability.
I can't see how that would be possible without causing interference with the FSR reading. That's why they're mounted at the bottom of a "cup:" the close fit of a post coming from beneath the bed is what provides the stability. 3 points are the most stable mount possible.
User avatar
forrie
Printmaster!
Posts: 159
Joined: Wed Apr 16, 2014 7:15 am
Location: Crab Nebula

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by forrie »

ZakRabbit wrote: If you get the kit from Ultibot, it comes with pucks. They're rubber, I'm guessing you want something a little softer to do the actuation to keep them from wearing.
I used the Ultimo pucks in Nylocke's design no worries. I've gotten pretty much identical results using this fsr setup (and McHackney's) compared with limit switches using pilots smoothie firmware. The disadvantage of the limit switches is the repeatability goes haywire when you heat the bed. The disadvantage of the fsr is that you need perfect buttery smooth movement in your setup to trigger the fsrs equally at all points, the advantage is the heat doesn't screw up repeatability. I had to vapor Acetone treat my fsr setup before I got it nice and smooth. I think an aluminum setup would be best.
I'm not an alcoholic...I'm Australian!
User avatar
626Pilot
ULTIMATE 3D JEDI
Posts: 1716
Joined: Tue May 14, 2013 12:52 pm

Re: Pseudo-closed-loop positioning for the Rostock MAX with

Post by 626Pilot »

The heated bed has to be "floating" on the FSRs, or you won't be able to get a reading at all. I also have a Deltaprintr (from a startup a while back) and their acrylic build surface sits directly on top of FSRs. The FSRs have sticky pads to hold everything in place, another necessity.

I recommend heating the bed before you do any kind of calibration, unless you plan to never, ever use bed heat. Best to calibrate the system in its normal operating condition. You WILL get a worse calibration (especially if you use a Z-only correction scheme, like G31 A in my firmware) if you calibrate with the bed cold, and then heat it up to do actual printing. The glass expands, simple as that!
Post Reply

Return to “The Lounge”