Sunday, July 6, 2014

3D Printer Mini-Update

This project is still alive! The printer was coming together nicely until I had to pack it up in preparation for graduation. I've since resumed work and the final bits and pieces are all falling into place.

The highlights of the past week:

  • All wiring has been completed. This includes connectors for ease of maintenance, heatshrink to prevent shorts, zip-ties to bundle groups together, and braided PET sleeving on exposed wiring for cosmetic purposes.
  • The Z smooth rods are now adequately anchored at the bottom. In conjunction with the mid plate, the rods are now completely stable. This was a critical improvement as the long Z axis would significantly amplify any error due to rod wiggle.
  • Auto bed leveling functions as intended! Some of the software configuration took longer than expected due to inconsistencies in documentation. I suspect when ABL was incorporated into Marlin, some things were tweaked and the material I referenced was longer up to date.
Challenges of the past week:
  • The printed ABS mounts I made to carry the Y-axis linear rail were not rigid enough to counter the racking forces introduced by the H-gantry. This resulted in a few mm of error every time the Y-axis changed direction. Printing like this would result in parts skewed at a 45 degree angle. Options to correct this include switching to the "CoreXY" system, or creating a new, more rigid mount. I chose to go with the latter by making a mount from angle iron and flat steel bar. This does add some weight to the carriage, we'll see how that translates into performance soon...
  • While tightening the belts for a test, I snapped off the belt mount. I've since changed the model to have much stronger supports, and was able to get the part printed locally.

Saturday, May 3, 2014

3D Printer Buildlog #4

Most of the hardware is assembled at this point so I've been focusing on configuring Marlin and testing out several components! Configuring Marlin for ABL was more difficult than I expected. I had originally planned to have the servo control pin on the EXP2 header pin 11 to keep all the standard connections open. However, something wasn't right with the pwm signal so I reverted to the E-stop connection. This may have been related to the fan-pwm issue. A few other tweaks were necessary to get the servo to quit twitching, I'm listing my changes here in case someone else needs help setting up auto bed leveling on a Printrboard!

configuration.h
334 - #define ENABLE_AUTO_BED_LEVELING
400 - #define PROBE_SERVO_DEACTIVATION_DELAY 500
694 - #define NUM_SERVOS 1
701 - #define SERVO_ENDSTOPS {-1, -1, 1}
702 - #define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 90,0}

pins.h
1573 - #define FAN_PIN            -1 // -1 disables fan to fix PWM (Default 16)
Insert the following somewhere after 1545 and before 1574
#ifdef NUM_SERVOS
#define SERVO0_PIN 37               // This corresponds with the E-stop pin closest EXP1 header
#endif

The arrow on the diagram below shows the location of pin 37 on the E-stop connector. This pin should be connected to the servo's control pin. Do not use the other pins to power the servo! The Printrboard cannot provide enough power to run most servos. Instead, power your servo externally. Using an ATX power supply is useful here, since the common voltages (5v/12v) are readily available.

 

To test the servo, send an M280 command which will look something like this: M280 P0 S0
The number following P refers to which servo is being addressed, while the number following S refers to the angle the servo should move to. M280 P0 S45 will move servo 0 to an angle of 45 degrees. Keep in mind that the servo indexing starts at 0!

Another important issue I'd like to bring attention to is the power requirements for large heated beds. I'm using one of the QU-BD 12" silicone heaters which states it can draw up to 20 amps from a 12 volt source. This is quite a bit of power for a Printrboard, too much in fact! To fix this, I wired a simple relay to switch the current. However, the wire I was using between the psu and relay was too thin to handle the current, and could've started a fire. The wiring in question was a 4 pin molex connector from Sparkfun, which looks like 22 gauge. 18 or 16 might be more appropriate and wiring in parallel on the PSU side would help make this a whole lot safer!