Any Arduino wizards out there? / FSR bed leveling

Look here for custom firmware, networked 3D printer hosts like OctoPrint, and more!
Post Reply
bam
Posts: 117
Joined: Thu Sep 19, 2013 11:37 pm

Any Arduino wizards out there? / FSR bed leveling

Post by bam » Wed Apr 30, 2014 9:50 am

Heyo!

I'm working on something pretty awesome that I think you guys will get a kick out of. As you may know, we're hard at work on a new printer codenamed Azalea (http://devel.lulzbot.com/Easy_TAZ_Mini/Azalea); the goal is to produce TAZ quality parts with as little calibration and fiddling as possible.
IMG_1393.JPG
the adorable mini bed. It'll most likely be just over a 6" cubed build volume (155mm)
We're currently going down a couple of routs for the bed leveling, but my favorite by far is a force sensitive resistor (FSR) based system. It's clean, adds no additional moving parts and will completely get rid of the probe to nozzle offset calibration that plagues other bed leveling systems. Here's a setup pretty similar to what we're working on: http://www.youtube.com/watch?v=HcnhCNh2Ln4
IMG_1366.JPG
I sense a great disturbance in the force...
IMG_1394.JPG
the FSR's are hooked up in parallel, it gives pretty consistent readings regardless of where the bed is touched
We've got the mechanical components pretty well nailed down, and as always the development source is openly available: http://devel.lulzbot.com/Easy_TAZ_Mini/autolev/. In order to avoid mechanical calibration of the FSR sensitivity we're looking at using one of the extra thermistor ports to read the resistance of the FSR's, rather than the Z endstop pin.

On the firmware side, I'm getting tripped up trying to get the firmware to recognize a drop in the readings from thermistor port 3 as a Z-home indication (nozzle touching glass=homed in z). Anyone interested in helping out with the firmware tweaks? You'll definitely earn my eternal gratitude (and possibly some Lulzbot schwag :))

More updates to come
-bam
Last edited by bam on Wed Apr 30, 2014 3:34 pm, edited 1 time in total.

User avatar
piercet
Posts: 4022
Joined: Sun Aug 25, 2013 1:37 am
Location: Battleground, WA
Contact:

Re: Any Arduino wizards out there? / FSR bed leveling

Post by piercet » Wed Apr 30, 2014 10:47 am

Very interesting looking! Unfortunatly, the arduino side is where I'm weakest so I won't be of much help. Hopefully someone can help you get it working though!

bseishen
Posts: 1
Joined: Wed Apr 30, 2014 12:07 pm

Re: Any Arduino wizards out there? / FSR bed leveling

Post by bseishen » Wed Apr 30, 2014 12:33 pm

Super easy way of accomplishing this is with a little hardware. A simple comparator would just require an opamp, some resistors, and a potentiometer, possibly a couple caps to filter out some noise. With the comparator, the z endstop pin could be used.

How bad will heat affect the resistance? Will the readings tend to drift over time?

bam
Posts: 117
Joined: Thu Sep 19, 2013 11:37 pm

Re: Any Arduino wizards out there? / FSR bed leveling

Post by bam » Thu May 01, 2014 9:06 am

piercet wrote:Very interesting looking! Unfortunatly, the arduino side is where I'm weakest so I won't be of much help. Hopefully someone can help you get it working though!
Thanks man! It's going to be pretty sweet, hopefully something we can retrofit to a full size TAZ 8-)
bseishen wrote:Super easy way of accomplishing this is with a little hardware. A simple comparator would just require an opamp, some resistors, and a potentiometer, possibly a couple caps to filter out some noise. With the comparator, the z endstop pin could be used.

How bad will heat affect the resistance? Will the readings tend to drift over time?
We're looking into this, but want to see if we can accomplish it in the firmware without adding any more hardware. Also, from what I've seen, the actual readings form most FSR's aren't terribly consistent and do change with heat and age. I'm thinking that a firmware fix could be adaptive so that if the FSR's change over time (thermal changes, get lulzjuice spilled on them, etc) they'll still work without you needing to fiddle with the bed sensitivity knob.
IMG_1397.JPG
super early Azalea prototype. We're working on dropping the LCD in favor of a full debian system with 7" touchscreen
I think it'd be more reliable in the long temp to have a system that will take the average of 15 or so readings as a baseline as it starts to home or probe the bed, then register a set drop (30% seems attainable) as a Z-min limit. We'd need to chose a drop that's outside of the normal fluctuations of the fsr's as the bed moves, but small enough that we can reliably register a nozzle touch before the nozzle pushes the bed down too far. This shouldn't be too bad once we've got a starting point in the firmware :)

bam
Posts: 117
Joined: Thu Sep 19, 2013 11:37 pm

Re: Any Arduino wizards out there? / FSR bed leveling

Post by bam » Fri May 09, 2014 3:34 pm

Heyo

After a chat with the awesome people of sparkfun, we had our doubts about the longevity of the force sensitive resistors.

Luckily, we've begun work on a super elegant solution. We're replacing the bed fingers (little tabs that hold down the corners of the bed) with metal bits of a known thickness - shim washers in this case. We then wired the 5v side of the Z endstop to the nozzle and the ground to the bed.
IMG_1398.JPG
washers > limit switches
Check out the images and videos of the probing sequence at http://devel.lulzbot.com/Easy_TAZ_Mini/ ... Budaswitch

There's development firmware up as well if you're inclined to give it a try :)

More to come
-bam

User avatar
gannon
Posts: 47
Joined: Wed Jul 10, 2013 11:42 am

Re: Any Arduino wizards out there? / FSR bed leveling

Post by gannon » Fri May 09, 2014 3:38 pm

I've seen this form of homing / leveling before. The issues come into play when your nozzle is covered in plastic mostly :)

jebba
Site Admin
Posts: 689
Joined: Mon Mar 25, 2013 4:11 pm

Re: Any Arduino wizards out there? / FSR bed leveling

Post by jebba » Fri May 09, 2014 4:45 pm

gannon wrote:I've seen this form of homing / leveling before. The issues come into play when your nozzle is covered in plastic mostly :)
Ya, we're likely gonna add a wire brush or similar to clean the nozzle too. This will be nice in general, but needed here.

Post Reply