Thursday, April 23, 2020

Root 3 CNC - Y-Axis Drag Chain Guide

The y-axis drag chain has quite a few wires running through it and seems to have a tendency drift a bit along the x-axis while in motion.  To keep the drag chain honest, a small guide was printed and mounted to the base.

The part is available on Thingiverse.


The part was designed for #8 sheet metal screws:


After mounting, the drag chain no longer dances around the table...


Root 3 CNC - Dimensions

The final dimensions for my Root 3 CNC work area is:

X - 350mm
Y - 726mm (726.98)
Z - 90mm

Root 3 CNC - USB Booster

In order to move my laptop a safe distance away from sawdust clouds I purchased a long USB cable:

JSAUX Printer Cable, 15 feet

 Unfortunately attempting to use the cable resulted in the following error:


15 feet is at the end of the USB specification, and apparently was just too far for the signals to travel (either voltage drop or latency, not sure what was the problem here).  To remedy the problem, I found a USB booster and small 1 foot A-B converter cable:

Printer Cable 1 Foot, A Male to B Male


IOGEAR USB 2.0 Booster Extension Cable, 16 Feet


Using these two cables allowed the Arduino/RAMPS board to connect to the laptop at a 15 foot distance without issues.

Root 3 CNC - Endstop Software Testing

In order to test endstop functionality, the following application was used:  Pronterface.  It was originally designed for 3D Printers, but has a generic console which conveniently allows g-code commands to be sent directly to the Root 3 CNC.

The M119 command was used to test the endstops.  This g-code command reports the status of each endstop (open or triggered).  Each limit switch can be tested independently by manually pressing each switch and sending the M119 command:



 The default Marlin configuration did not meet my needs, so several firmware changes were needed:
  • enable maximum endstops at all times (not just during homing operations)
  • enable maximum endstops (defaults are only for minimum endstops)
  • set the work area limits

Research was performed online to find the relevant code, with these links being the most useful:

The changes were made by modifying the marlin files via the Arduino IDE, recompiling, and uploading the new firmware to the CNC.  The changes are shown below:


CONFIGURATION_ADV.H


CONFIGURATION.H


CONFIGURATION.H

Wednesday, April 15, 2020

Root 3 CNC - Endstop Breadboard

This is probably one of those cases where its best to start with a picture of the end state:


The endstops are fully connected and routing from the machine through a DB9.  The next task was to "unpack" the DB9 and get the signals to the RAMPS board.  The DB9 pinout is the following:


and the original schematic for an endstop is:


A smoothing capacitor was already mounted directly to the endstop (documented in previous post).  To complete the "normally closed" endstop hookup, the following steps remained:

  • unpack the signals from the DB9
  • add a pull-up resistor to the circuit
  • ground the cable shield/braid
  • route the signals to the RAMPS board 

The easiest way (for me, mileage may vary) to do this for each of the six endstops was to put together a small breadboard.  This took up a bit more space in my electronics drawer, but I liked the idea better than trying to cram everything inline around the cables (easier to maintain).  Each endstop would implement the following pattern, and the shield braids would be run to a common bus so that a single ground wire could be run to the RAMPS board:



Since the breadboad would have quite a few wires, I also designed a mount to keep the board stable.  The mount design was posted to Thingiverse.  The pictures below show a few snapshots of the construction.

3D Printed Breadboard Mount:


Mount with DB9 Breakouts Installed:



Solderable Breadboard found on Amazon:


Breadboard with pins and components installed:


DB9 interface cables:


Breadboard mounted and one inbound endstop cable installed:


All six inbound endstop cables installed:


Outbound cables for RAMPS endstop connections:


Outbound cables connect to RAMPS headers here:


Wiring strain relief designed and printed; file available on Thingiverse:


Outbound endstop wiring installed:


The completed setup (back to where this post started):


Saturday, April 4, 2020

Root 3 CNC - Creating the Endstop Panel

The default Root 3 CNC control panel has one DB9 connector slot available for endstops.  Most will use that connector for home/minimum and then program Marlin for the maximum extents of the machine.  However, since it is not uncommon to set home to the origin of the work piece and not the origin of the actual machine, I wanted to install minimum and maximum endstops for safety.

I made one attempt at soldering a DB9 connector before deciding that it was more trouble then it was worth for my purposes.  I opted instead for a DB9 breakout board found on Amazon:



Using the following specifications for a DB9:


I designed a quick panel to hold the breakout boards which can be found on Thingiverse:

Root 3 CNC Endstop Panel


The wiring of the DB9 is somewhat arbitrary, but I attempted to keep the axis wires together.  Red wire connects to limit switch NC, black wire connects to COM, and the cable shield/braid wire is a passthough so it can connect to GND on the Arduino/RAMPS board.


Final wiring seen below.  Note that heat shrink tubing was added to the cable shield wires (normally bare) in order to avoid accidental contact.



Friday, April 3, 2020

Root 3 CNC - Installing the Endstops

The endstop wire assemblies were prepared in the last step.  Each of the limit switch bores was tapped for M3 screws, then installed to min/max positions on the machine.

X - Axis:



Y - Axis:




Z - Axis:

 


The machine wiring (pulled in a previous step) originates at the control panel and routes through the drag chains up to the endstop locations.  The wire ends were finished with JST connectors, and mounted with tie zips or anchors depending on their location.