Giter Club home page Giter Club logo

tc-maker-4x4-router's Introduction

Full machine

TC Maker logoThis repository centralizes the documentation and status of the on-going restoration of the custom-built 4x4' CNC router, affectionately named "Chico", found at the TC Maker hackerspace in Minneapolis, MN.


Chico is up and running as of 6/25/2017!

If you want to get trained on using the machine, start by reading through the wiki,


Useful links

  • Read the wiki for any and all documentation generated during the restoration process, including cabling/wiring schemas, mechanical component data, electronics datasheets, operational procedures, and more.
  • Visit the projects page to see all of the active, upcoming, and completed tasks identified so far, broken down by sub-system.
  • Visit the issues page to see the tasks that are currently being worked on, with detailed notes about what has already been done for each task. Note that these tasks are derived from the tasks marked as "In progress" in the projects section.

Getting involved

If you are interested in helping with documentation or helping to maintain this Github project (task management, wiki page writing, etc), shoot me a message so I can add you as a collaborator.

If you are someone who likes to cover all their bases and be as up-to-date as possible, the official channels of communication for TC Maker are:

  • The TC Maker Google Group tends to be the place where some CNC router updates get posted, as well as cancellations to upcoming work plans.
  • The TC Maker Facebook page might have some information too once in a while.

tc-maker-4x4-router's People

Contributors

jasonwebb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tc-maker-4x4-router's Issues

Get shuttle mouse working

Pete would like to get his shuttle mouse working with the host machine for easier jogging control.

As of today's date he has done a little bit of experimenting, but has not yet got it fully working.

The issue appears to be that there is not a Linux driver written for this particular model of shuttle mouse, and some additional mapping and configuration needs to be done to get it fully functioning.

Since this is not critical to the success/failure or general operation of the machine, it is not a high priority issue.

Properly route and label all machine cabling

Right now all of the various stepper motor and endstop cables are just dangling underneath the machine, and most are not labelled.

Let's add labels to all cables (both at the connectors and along the length for easier tracing), and secure them to the machine better using zip ties.

Add active ventilation to box

To help prevent excess hot air from building up in the box we need to install some fans to pull air from inside the box to the outside.

We already have two standard PC case fans, we just need to cut suitable holes in the box and install them.

Once installed they can be wired up in some way to the power.

Document current PC hardware specs (RAM, CPU, GPU, etc)

  • RAM = 2GB
  • CPU = Intel Core i5-3470 @ 3.20 GHz
  • GPU = Intel HD Graphics 2500 (integrated with CPU)
  • Hard drive (make/model) = Unknown
  • Hard drive capacity (total and available) = 300GB total, ~285GB available

Assuming non-SSD hard drive.

Find and document specifications stepper motor driver board

  • Make/model = HobbyCNC PRO Rev1 Chopper Driver Board (4 axis)
  • Source = HobbyCNC (no longer sold)
  • Manual = added to repo under docs/electronics
  • Current ratings (per phase in A) = up to 3A
  • Microstepping (capable) = up to 1/16
  • Was custom case found and repurporsed, or bought with/for board?
    Came with stepper driver board from HobbyCNC. Appears to be a Pactec DM-4 with a custom panel cutout design. I've only found this design on paper currently, and will scan and upload it soon.

Create "up and running" guide for LinuxCNC

LinuxCNC is complicated. First-time and casual users (myself included) could really benefit from a focused guide on how to go from design to cutting with as little stress as possible. Less of an in-depth analysis of the GUI, configs and programming aspects and more of a "click here, wait a couple seconds, wait for this light to come on" type of guide.

Remove old PC and shelf

The previous PC used by the machine is still sitting on a suspended shelf on the back of the machine. It will not be used in the future, so we should remove it (and the shelf) to give us more space and reduce clutter.

Process all of the materials underneath the machine

There is currently a lot of stuff being stored underneath the machine, most (if not all) of which does not appear to be useful going forward.

Does anyone have any good arguments for keeping any of it? If not, let's start tossing it out.


2017-05-14 14 01 05

Fabricate and wire up a panel of appropriate interconnects for all motors and endstops

Initially, all the wiring for each component (endstops, motors, etc) went directly their appropriate controller devices. To make things more maintainable we are planning to instead use panel-mount interconnects on a panel on the mobile control station.

We've already wired up all of the controller devices' inputs and outputs to a long terminal strip, so now we just need to acquire and set up some connectors on a panel that run to the other side of the terminal strip.

Diagnose and fix Y axis binding problem

Y axis gantry often jams up at various points during travel towards the maximum endstops. The track closest to the wall appears to be the main problem, getting stuck at particular points while the opposite track moves forward to cause jams.

This issue appears to be the result of a complex confluence of multiple factors, including:

  • Uneven wear on the V-wheel bolt holes causing inconsistent tension to the track over the course of travel. One or more V-wheel bolts need to be rigidly shimmed to be more perpendicular to the gantry itself. A future upgrade of these MDF gantry blocks could be valuable.
  • "Mushrooming" effect on leading edges of angle iron ways, potentially enough to cause irregularities in tension. This may be less of a problem than previously thought. Sharpening / filing these down in key spots appeared to help slightly, but not as much as the other tweaks.
  • Slight misalignment of bearing blocks on each end of axis tracks. Loosening their mounting bolts and moving the gantry to various extremes seems to tram things up nicely. Seems to be a major culprit
  • Uneven tension on the gantry wheels due to rigid tension bar underneath lower V-wheels being controlled by only one eccentric nut. Use this bar to get a "rough" amount of tension, then the eccentric nuts on the V-wheels themselves to get a "finer" tension dialed in.

Source and acquire all parts required for Grbl controller

Part Qty Cost Source
Arduino Uno running Grbl 1.1 1 $10.99 Amazon
Screw terminal shield for Arduino for simpler wiring 1 $6.99 Amazon
TB6600 stepper motor drivers 4 $43.99 eBay
24V @ 15A power supply 1 $20.49 Amazon
DB9 connectors (panel mount) for steppers 4 $2.08 Digikey
1/8" mono jacks (panel mount) for endstops 8
1/8" mono jack (panel mount) for Z probe 1
1/8" stereo jack (panel mount) for spindle 1
AC plug, ideally with switch 1
Emergency stop switch 1

Figure out how to map VFD frequency to true spindle RPM for display in LinuxCNC

LinuxCNC has no way of knowing the actual speed of the spindle, it just outputs a number within a range defined by a configuration setting. This number is then sent out to the VFD the form of an analog voltage, which in turn proportionally changes the frequency of the VFD's output signal.

If we can figure out the correlation between VFD frequency and RPM for this particular spindle, then we can configure LinuxCNC such the speed displayed on the screen corresponds to the true speed of the spindle.

The bad news is that our spindle is a very generic, unbranded Chinese model that may not have an exact datasheet associated with it. The good news is that these particular spindles are pretty abundant, and lots of other people have already gone through this task and documented it for us. We just need to find the right random blog article or forum post that tells us what we need!

Retrieve and upload copy of LinuxCNC config(s) to repo

A good deal of information can be learned about the machine through it's LinuxCNC configuration file, which exists somewhere on the host machine.

I think it would be great to get a copy of it, upload it to the repo and thoroughly document it in order to (1) learn all the nitty gritty machine details, like steps-to-inches conversions, (2) use as an educational resource for better understanding LinuxCNC, and (3) serve as a backup in case of a catastrophic event.

Add filtration to the box

To help keep wood dust from the shop out of the box, we need to install some filtration to an intake port of the box.

We already have a sheet of filtration material, harvested from an off-the-shelf air conditioner filter. The plan is to cut a good sized hole into one of the walls and install the filter over it.

Replace or rebuild old spoilboard

The existing spoilboard is pretty cut up, and at the very least should be resurfaced.

While we're at it, though, let's try to optimize the spoilboard height, making it at thin as possible in order to maximize usable Z height.

2017-05-14 14 38 21

2017-05-14 14 38 16

Find and document specifications for stepper motors

  • Source = HobbyCNC
  • NEMA size = 23
  • Torque ratings (oz-in and/or kg-cm) = 305 oz-in unipolar, 425 oz-in bipolar
  • Current ratings (per phase) = 3A
  • Voltage = 4.2V
  • Steps per revolution (S/R) = 200
  • Shaft diameter = 1/4"

Datasheet was also found, and will be uploaded to repo shortly.

Wire up and test out VFD with spindle

VFD has a somewhat cryptic manual, and we have a somewhat cryptic mains setup, so some "expert knowledge" (guess work) is needed.

Jeff wired up the VFD with a 5-pin female XLR (?) connector mapped to the U, V, and W outputs. This allows for the spindle to be connected easily with an accompanying 5-pin male XLR connector.

There is still some knowledge transfer to be done, but Pete did figure out how to operate the VFD and get the spindle running.

Spindle seems to run very smoothly, quietly and cool, with no noticeable runout or vibrations. Ready for further testing and cutting!

spindle

Initiate discussion of relocation project

Jon Alt (wood shop manager) has requested that we move (or develop a plan to move) the CNC machine into the adjacent "Scary Bathroom" space.

This would have clear benefits to both the wood shop and to the CNC machine, specifically:

  1. Wood shop gaining much-needed floor space to better serve its members.
  2. CNC machine being better isolated from dust and noise.
  3. CNC machine having a dedicated and clearly-defined workspace so that members can keep relevant materials and tools on-hand as well as stay focused on their projects without disruption (or causing disruption) to wood shop.

Some of the challenges of moving the machine include:

  1. Readying the bathroom to be capable of housing the CNC machine. Dust collection, power (120V and 240V), and evaluating practical space requirements for working with materials.
  2. Physically moving the machine into the room, possibly requiring disassembly, reassembly, and recalibration.. This is potentially the most crucial topic, requiring strong coordination and planning for how to get done.

Given the complexity of the machine and the delicate nature of its calibration, we ought to figure this out before continuing on any further work, especially involving mechanical tuning and tweaking.

Jon and Pete need to discuss options and plans, and Jason will be involved as desired to facilitate discussion and coordinate work.

Given that this discussion involves the re-appropriation of shop space (the bathroom in particular), I feel it would be best to be as transparent as possible with the membership base and the board. Before plans are acted upon, they should perhaps be approved by the membership and board (though maybe that doesn't need to be done?).

Gather all parameters required for Grbl firmware.

Grbl needs a number of settings configured before it can properly control the machine. These are things like maximum movement speeds, travel distances, steps per mm, and more.

As shown in grbl/defaults.h these settings are:

  // Grbl generic default settings. Should work across different machines.
  #define DEFAULT_X_STEPS_PER_MM 250.0
  #define DEFAULT_Y_STEPS_PER_MM 250.0
  #define DEFAULT_Z_STEPS_PER_MM 250.0
  #define DEFAULT_X_MAX_RATE 500.0 // mm/min
  #define DEFAULT_Y_MAX_RATE 500.0 // mm/min
  #define DEFAULT_Z_MAX_RATE 500.0 // mm/min
  #define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_X_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Y_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Z_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_SPINDLE_RPM_MAX 1000.0 // rpm
  #define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
  #define DEFAULT_STEP_PULSE_MICROSECONDS 10
  #define DEFAULT_STEPPING_INVERT_MASK 0
  #define DEFAULT_DIRECTION_INVERT_MASK 0
  #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
  #define DEFAULT_STATUS_REPORT_MASK 1 // MPos enabled
  #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
  #define DEFAULT_ARC_TOLERANCE 0.002 // mm
  #define DEFAULT_REPORT_INCHES 0 // false
  #define DEFAULT_INVERT_ST_ENABLE 0 // false
  #define DEFAULT_INVERT_LIMIT_PINS 0 // false
  #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
  #define DEFAULT_HARD_LIMIT_ENABLE 0  // false
  #define DEFAULT_INVERT_PROBE_PIN 0 // false
  #define DEFAULT_LASER_MODE 0 // false
  #define DEFAULT_HOMING_ENABLE 0  // false
  #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
  #define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
  #define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
  #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
  #define DEFAULT_HOMING_PULLOFF 1.0 // mm

Test coolant pump with 220V

Pete tried out the pump a couple weeks ago but didn't have much success (very weak stream, required some manual siphoning to start).

Jeff pointed out that the box says it needs 220V, not the 110V that Pete was originally using.

Need to wire it up to the 220V outlet and see how it goes.

Hang all tubing and wiring for spindle and dust collection from the ceiling

Pete and Jason hung the dust collector tube from the ceiling via some rope, with the spindle wire and coolant tubing loosely wrapped around it.

We also (re-)installed a hacky wooden and aluminum guide rail onto the back of the machine to help keep the tubing out of the way.

Additional supports are needed to ensure that the tubing will all stay completely out of the way during jobs at both ends.

2017-04-23 16 04 11
2017-04-23 16 04 19

Evaluate and convert any existing paper-based documents to digital formats

All of our documentation currently exists as a disorganized pile of paper. Some pages are from manuals, others from assembly guides, and still others are scribbled notes with wiring schemas and other helpful information.

For posterity and education it would be good to get all of this information formalized and centralized within this repo.

Source and acquire/build Z probe

In order do get very accurate Z leveling we need to get a proper, machined Z height probe. These are fairly simple, and may be easy to make in-house. But if they are cheap enough let's just go ahead and buy one.

This sensor will be especially useful when multiple tool changes are needed during jobs.

Securely mount electronics and other "guts" into the box

Pete sounds like he has a good idea of where things should go and how they can be mounted, so if you want to work on this task be sure to talk to him.

Things that currently need to be mounted onto the shelf include:

  • Solid state relays (SSRs) for programmatically turning on/off high power systems like the spindle + VFD.
  • Terminal strip to distribute and route power and signal wires within the box and to external connectors.
  • The MESA 7i76 breakout board with parallel port cable.

Things that need to be mounted or otherwise placed in the station include:

  • The stepper motor driver box (white plastic box with the big green toggle switch that we use to enable/disable motors).
  • Coolant pump submerged in coolant bucket.
    • Get a lid for the bucket, with cutouts for tubing
  • VFD for spindle.
  • Host machine (PC).

Am I missing anything?

Create some additional vertical bracing on the gantry and on the new guide on the back of the machine to keep all of the tubing clear of the machine at all times

The way the dust collection and coolant tubing is currently mounted, they can easily get caught on the Z axis assembly as the machine runs through its full work envelope.

To prevent this from happening we ought to create some additional bracing such that these tubes are vertical for a foot or two at both ends (at the dust shoe and at the back of the machine). Doesn't need to be pretty, but I'd sure like it to be!

Would be extra cool if someone were to cut some custom brackets and a better back support bar out of wood using the machine :)

Document any custom cabling/wiring schemas for all interconnects

Document any custom cables and interconnects, making sure to map wires to pinouts in an easy-to-read way.

Specifically:

  • Stepper motors, which we use DB15 connectors for
  • Endstops, which are using 1/8" mono audio cables
  • Spindle power cable, which seems to be a 3-pin XLR.

Mount and wire up the Z axis min endstop

Sudar and Brent took a crack at fabricating a Z axis endstop mount using a scrap piece of angled metal, but it turned out to be a pain in the butt to do. They also mounted the endstop to the Z axis assembly horizontally at one point, which worked pretty well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.