Saturday, December 6, 2014

3D Printer Buildlog #5

At long last, the 3D printer project is beginning to come to a finish! Recent progress has been excellent, and a number of hardware and software problems have been tackled. Most notably, I completely reversed course on servo based automatic bed leveling and switched to a force sensing resistor (FSR) system.

Force sensing resistors are fantastic little devices which change resistance as a force is applied to the sensing area. They're fairly cost effective at around $5/ea too! Why'd I change from the mechanical switch mounted to the servo? Reliability. Once I began testing the servo leveling system, I found the results to be too erratic for my purposes. Additionally, the servo occupied a large amount of space near the hotend, sacrificing print volume.

The new system utilizes four FSR sensors, one under each corner of the build plate. Since FSRs don't work well between two flat surfaces, a felt floor pad is placed between each sensor and the bed. When leveling, the tip of the hotend contacts the build plate. The pressure applied to the plate drops the resistance in the sensors, which is detected by an ATtiny85 microcontroller. The ATtiny85 loops a simple rolling average filter, which outputs a signal to an NPN transistor that triggers the Printrboard endstop. An LED is simultaneously lit when the endstop is triggered for debugging purposes. See the circuit diagram below for details. Code and pictures will be posted to Github in the next update. The ATtiny85 was flashed with an Arduino Uno following the guide by High-Low Tech.


The potential fire hazard that was the former heated bed relay has also been replaced with a "Beefcake" relay from SparkFun. I would have preferred a quality solid state relay, but this will do.

Moving forward, my next tasks will be to tune and improve some of the mechanical aspects of the printer. The motor mounts for the H-gantry aren't as rigid as they could be, and the build platform has some wobbles that will likely affect printing. Once I begin doing some print tests, I'll need to check if racking is still an issue. If so, I will be switching to a CoreXY style belt arrangement. Now that I have the Shapeoko mill, any critical parts can now be cut in 6061 aluminum. That comes with its own set of challenges, which will be discussed another time!