milling machine for pcb manufacture - ceitwiki.pdf

Download Milling Machine for PCB Manufacture - CEITWiki.pdf

If you can't read please download the document

Upload: gedeus

Post on 29-Nov-2015

192 views

Category:

Documents


1 download

DESCRIPTION

CNC

TRANSCRIPT

  • Milling Machine for PCBManufacture

    ByEric PengMike Reed

    Worked On Summer 2012-13Project Status Complete

    Milling Machine for PCB Manufacture

    From CEITWiki

    The CEIT PCB Milling Machine was developed for students at the University ofQueensland to have a cheap and fast method of prototyping printed circuit boards forteam projects and other research based projects.

    Contents

    1 How to Make a PCB1.1 Design PCB1.2 Generating G-Code

    1.2.1 PCB-GCODE (highly recommended)1.2.2 Cad.py (Generate from image only)

    1.3 Simulating G-Code (Optional)1.3.1 NC-Plot1.3.2 Cam-Bam

    1.4 Setting up Apparatus for Mill1.5 Sending G-Code to Firmware and Start Milling!

    1.5.1 Universal G-Code Sender2 Design

    2.1 Mechanical Design2.2 Electrical Design2.3 PCB Design

    3 Implementation3.1 Mounting Box3.2 Electrical Connections3.3 Software Implementation3.4 Firmware (GRBL v0.8)

    3.4.1 Compiling GRBL3.4.2 Flashing GRBL to Arduino Uno3.4.3 GRBL settings

    4 Problems, Solutions and Current Limitations4.1 Fixed Issues4.2 Current Issues4.3 Limitations4.4 Bug Logs

    5 Alternatives Considered6 Design Images and Videos7 Future Developments, Possible Improvements and Additional Features8 Additional Resources

    8.1 Datasheets8.2 Resources

    9 Reflection

    How to Make a PCB

    The following section outlines how to make a PCB using CEITs Milling Machine.

    Design PCB

    Firstly, download Cadsoft Eagle (if you have not done so already)

    Design your custom PCB Using Cadsoft Eagle as per usual. However, when designing the PCB, please keep in mind some ofthe limitations of the machine.

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    1 of 12 27.10.2013 23:19

  • The following limitations must be considered when creating the board in Eagle:

    Maximum board size 12.6x6.3cmSingle sided PCB only (no bottom layer or vias)

    Generating G-Code

    Once a complete PCB design is completed in Eagle, G-code must be generated from the Eagle board file. G-code is a uniquecode which the milling machine firmware can read and actuate the machine. Therefore it is imperative to generate G-codebefore proceeding. There are two methods of generating G-Code. The two methods are PCB-GCODE or Cad.py. Theinstructions are each of these are outlined below.

    PCB-GCODE (highly recommended)

    This Eagle add-on is a very good tool in developing G-code from circuit boards designed on Eagle

    The follow instructions outline the procedure to generate G-Code from your Eagle design.

    1. Download the PCB-GCODE ULP Script and install as per instructions. (Can be downloaded here:http://www.pcbgcode.org/)Enter your board design on Eagle and open the PCB-GCODE ULP script which you have installed.Edit the PCB-GCODE settings (Generation Options and Machine Options). The important options which must be edittedare:

    In Generation Options

    Isolation Default, Maximum, Step sizeEtching Tool Size (set to the diameter of mill bit inserted in milling chuck)

    In Machine Options

    Set Units = MillimetersSpingle Spin Up Time: 3Z-High, Z-Up, Z-Down, Drill Depth, Drill DwellSet Feedrates: XY 100mm/min, Z 500mm/min

    Save G-code file (.tap extension) in a folder where you can easily locate

    Example Screenshot:

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    2 of 12 27.10.2013 23:19

  • Cad.py (Generate from image only)

    This is another G-code generator software. However, PCB-GCODE on Eagle is the much preferred method.

    General process:

    1. Obtain image file

    2. Feed through cad.py (generates g-code)

    3. Send through gcodesender

    Simulating G-Code (Optional)

    Simulating G-Code is an optional but recommended step. This process ensures that the G-Code generator has created usableand reliable g-code.f Example G-Code Simulators Include:

    NC-Plot

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    3 of 12 27.10.2013 23:19

  • Upload G-Code file extension (.gcode, .tap) Opens in a new window

    Photo Courtesy of: Hackerspace http://hackerspace.pbworks.com/w/page/48330990/Designing%20PCBs

    Cam-Bam

    This is another G-code simulator which can be used.

    The link is in the resources sections.

    Setting up Apparatus for Mill

    Apply blank copper board with double sided sticky tape to the platformConnect USB

    Sending G-Code to Firmware and Start Milling!

    To start milling, simply install the Universal-Gcode Sender software

    Universal G-Code Sender

    Download the program. Make sure the arduino Uno com port is installed on your computer

    Make sure you plug in the machine with USB

    Once connected, execute the universal g-code sender program.

    From here, in the Command Mode section, type: $H. This homes the machine to zero and this step is vital and essentialeverytime before milling.

    Then, enter File mode and find your generated G-Code from Eagle in your file system.

    Then press send to START MILLING

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    4 of 12 27.10.2013 23:19

  • Design

    Mechanical Design

    Mechanical Artwork for frame: The frame work was produced by a laser cutter.

    Electrical Design

    Electrical Components:

    3 x Bi-polar stepper motors 42BYGHM8093 x Big Easy Drivers v1.2 (schmalhaus.com/BigEasyDr iver)

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    5 of 12 27.10.2013 23:19

  • 2 x 4 legged RGB LED6 x Limit Switches1 x Arduino Uno1 x 12 volt power source3 x 220 Ohm Resistors (for LED)6 x 10k Ohm Resistors (for limit switches)1 x H Bridge1 x Hex Inverter3 x 0.1microF Capacitors (for noise reduction)Carbide End Mills 0.8mm - 1mm

    Arduino Uno GRBL Connections:

    PCB Design

    After functionality of the machine was fully tested, a printed circuit board design was developed. All electrical components ofthe milling machine would be designed as an Arduino Uno shield with the 3 Big Easy Drivers mounted on the top side of the

    PCB

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    6 of 12 27.10.2013 23:19

  • Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    7 of 12 27.10.2013 23:19

  • Implementation

    Mounting Box

    Electrical Connections

    Software Implementation

    The aim of the software implementation component of this project is to create g-code from an Altium file which is thenstreamed (through a g-code sender) to the Arduino. Here, the Arduino, working with grbl will actuator the motors and spindle toetch out a PCB board from a blank copper sheet. In order to do so, a couple of simple steps is required to set up the software.The following process demonstrates the general functionality of the software implementation of the current design

    Download grbl1.Compile grbl2.Flash grbl to Arduino3.Adjust grbl settings4.Finalise PCB Design on Eagle5.Generate G-Code from Eagle6.Stream g-code to arduino7.Run8.

    Firmware (GRBL v0.8)

    The firmware installed on the Arduino Uno is GRBL v0.8. Grbl is an open source, embedded, high performance g-code-parser

    and CNC milling controller written in optimized C that is capable of running straight off an Arduino board. GRBL software is

    downloadable from their github site: https://github.com/grbl/grbl

    Compiling GRBL

    1. In command prompt (cmd):

    2. navigate to grbl folder (when downloaded)

    3. type: make clean

    4. type: make grbl.hex

    Flashing GRBL to Arduino Uno

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    8 of 12 27.10.2013 23:19

  • 1. Plug Arduino into PC via USB connection 2. Install driver for the Arduino Uno (For windows: http://arduino.cc/en/Guide

    /Windows#toc4) 3. xLoader is the programmed used (downloadable from: http://russemotto.com/xloader/) 4. Open xLoader 5.

    Upload the .hex file from the GRBL folder that you have compiled (see Compiling GRBL above) 6. Once this is completed, theGRBL file will have successfully been flashed to the Arduino.

    GRBL settings

    The settings used for my CNC Milling Machine are as follows:

    $0=2456.000 (x, step/mm)$1=2456.000 (y, step/mm)$2=2456.000 (z, step/mm)$3=10 (step pulse, usec)$4=20.000 (default feed, mm/min)$5=500.000 (default seek, mm/min)$6=192 (step port invert mask, int:11000000)$7=25 (step idle delay, msec)$8=10.000 (acceleration, mm/sec^2)$9=0.050 (junction deviation, mm)$10=0.100 (arc, mm/segment)$11=25 (n-arc correction, int)$12=3 (n-decimals, int)$13=0 (report inches, bool)$14=1 (auto start, bool)$15=0 (invert step enable, bool)$16=1 (hard limits, bool)$17=1 (homing cycle, bool)$18=224 (homing dir invert mask, int:11100000)$19=25.000 (homing feed, mm/min)$20=700.000 (homing seek, mm/min)$21=100 (homing debounce, msec)$22=5.000 (homing pull-off, mm)

    Problems, Solutions and Current Limitations

    1. It was orginally test on the EtherTen (supposedly Uno Compatible Board from Freetronics). I found that 2. grbl 0.8 hashoming

    The electrical component of the design was first tested using chipKit Uno32. However, this board was not compatible with grbland therefore was later not further used. In one of the preliminary design stages, the spindle control was activated using: 1 xTIP120 MOSFET 1 x Diode (for MOSFET) 1 x 2.2k Ohm Resistor (for MOSFET)

    Fixed Issues

    Get G-Code SenderCheck G-code hardware output (used NC Plot, Cam Bam) (G-code simulators)Obtained Blank Copper Boards (FR4)Electrical Mount (PCB is currently being shipped)

    Try to obtain FR4, CEM1 Copper material for easier cutting (paper based instead of fibre-reinforced (FR4)) (Not

    available online)

    Current Issues

    The following section is indicative of the further improvements and additions to functionality that still needs to be implemented.

    0.8mm carbide end mills frequently snap on FR4 material when cutting too deepCarbide end mills cannot be secured tightly into the existing rigid coupling (Micro-chuck ordered from overseas)Heat issues (Mini Heat Sinks ordered)LED

    Limitations

    Due to the physical limitations induced by the mechanical design of the milling machine, it is only capable of millingprototype boards of maximum 12.6x6.3cmCurrently the minimum track width is constrained to 0.8mm due to the end mill used

    Bug Logs

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    9 of 12 27.10.2013 23:19

  • Current issues with the design: As of 27/11/12

    Unable to load grbl hex file with xLoader (currently flashed to Arduino using Ubuntu)g-code interpreter unable to demonstrate any form of visible functionality (currently using Circle G-code examples)6 limit switch pin layout needs to be minimized to 3

    10/1/13: Bug Update:

    All previous bugs have been fixed$H, M3, Disconnect, $X, Run

    7/2/13 Bug Update:

    High noise susceptibility with PCB (possible fixes capacitors for noise reduction, higher value pull up resistors)

    Alternatives Considered

    Other alternatives to the Arduino Uno/grbl considered were:

    Building the controller around the architecture of a Sanguinololou with Marlin and execute off Pronterface.

    Design Images and Videos

    Testing Stage (Video):

    Youtube link: http://www.youtube.com/watch?feature=player_embedded&v=wmre5PYL6Zc

    Electrical Design Development Image:

    Finished Arduino Shield PCB:

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    10 of 12 27.10.2013 23:19

  • Final Construction (without Mounting Box):

    Final Design (with Mounting Box):

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    11 of 12 27.10.2013 23:19

  • Completed Stage (video):

    Youtube link: http://www.youtube.com/watch?feature=player_embedded&v=6zRelE_qVc8

    Future Developments, Possible Improvements and Additional Features

    Implement vacuum to the final designDouble sided PCB Capability

    Additional Resources

    The following links were extremely helpful throughout the construction of the milling machine.

    Datasheets

    Resources

    Cad.py: http://sourceforge.net/projects/cadpy/Cadsoft Eagle: http://www.cadsoftusa.com/NCPlot: http://www.ncplot.com/CamBam: http://www.cambam.info/PCB G-Code: http://pcbgcode.com/Github for grbl: https://github.com/grbl/grbl/wikiMTM Snap: http://mtm.cba.mit.edu/machines/mtm_snap-lock/Universal G-Code Sender: https://github.com/winder/Universal-G-Code-Sender

    Reflection

    Retrieved from "http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manufacture"

    This page was last modified on 22 February 2013, at 16:38.

    Milling Machine for PCB Manufacture - CEITWiki http://ceit.uq.edu.au/wiki/index.php/Milling_Machine_for_PCB_Manuf...

    12 of 12 27.10.2013 23:19