Welcome to Our Community

Some features disabled for guests. Register Today.

      1. Build Progress:
        • Build Complete!
      Rate This Build
      0/5,
      0 votes
      Introduction: CNC Cyclone PCB Factory, My Way, Step by Step.
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      By reef
      Code repo

      I'd like to renew my cnc for PCB so I decide to create new one from an existing project named Cyclone PCB Factory. You can find the original project here.

      (I know I need to buy a good webcam)

      Step 1: History
      [​IMG]
      [​IMG]
      [​IMG]


      I write an Instructable about Millin PCB with my homemade CNC, and I continue to develop and use board for personal use, but I'd like to get a more little CNC with some features like TTrack or probe to simplify the use.

      I also refer to my other Instructables to explain the use of bluetooth pass-through serial interface to control CNC wireless.

      I write a simple code for CNC shiled to calculate step/mm, you can find It here.

      I explain my way to get It efficiently and more comfortable, but this is the first step, next I'd like to do a board to resolve all the problem I find and I resolved now with various simple "service boards".

      I change some part like Z Axis with new one to fix a lot of problem, new Herringbone gearsto prevent noise and precision problem, and electronic with new one less expensive.

      Some part like stepper and smoth rod taken from old printers.

      If you have some additional experience or have a better solution write a comment or directly to me, so I can integrate you solution to the board.

      Next step is to add a simple display and some digital control and minimal wifi remote.

      But do all step by step.

      Step 2: Printing Parts: Original
      [​IMG]
      First you need to printing the needed part, as I already say I rebuild some part to fix problem or to get more precision and less noise.

      The base part to print from the original project is this:

      • Cycl_YfrontFrame.stlDownload
      • Cycl_rodFixer_x6.stl
      • Cycl_XleftFrame.stl
      • Cycl_XrightFrame.stl
      • Cycl_XYgearCover_x2.stl
      • Cycl_YbackFrame.stl
      • Cycl_Ycarriage_linearBearingHolder_x4.stl
      • Cycl_Ycarriage_nutHolder.stl
      • Cycl_Yfront_RodIdlers.stl
      You can find a variant here of left/right frame for little 3d printer.

      (Download file from original site so you can get update)

      [​IMG]Cycl_YfrontFrame.stl
      Download

      Step 3: Printed Parts: TTrack and PCB Holder
      [​IMG]
      To hold the PCB you can use a TTrack, It's very usefully.

      The remixed project is here.

      A divided T-Track base can be found here.

      (Download file from original site so you can get update)

      [​IMG]TTrackWithCorrectHole.stl
      Download

      Step 4: Printed Parts: Z Axis
      [​IMG]
      [​IMG]
      I completely redo the Z axis to prevent movement and other problem.

      You can find project here.

      (Download file from original site so you can get update)

      [​IMG]carriage_dremel.stl
      Download

      Step 5: Printed Parts: Herringbone Gears
      [​IMG]
      I redo the gears also to be more efficient and with less noise.

      You can find project here.

      (Download file from original site so you can get update)

      [​IMG]standardGears_Screwrev.stl
      Download

      Step 6: Cutted Parts: Base and Workbed
      In the original project there are various file formats of this elements, PDF, images or file to lasercut.

      I printed pdf version and reproduce it on a plexiglas sheet.

      Exist design to create a printable version, of the base and workbed.

      (Download file from original site so you can get update)

      [​IMG]Cyclone_workbed_template_A4.pdf
      Download

      Step 7: Parts: Shopping List
      [​IMG]
      [​IMG]
      You can find a complete shopping list in the official site.

      Remember to take personalized parts also.

      Wait for electronic part, we are going to do something alternative in the next pages.

      The first needed part is

      M3 screw;

      M8 threaded rods (3Meter);

      some M8 smoth rods (I get It from old printer and cut when I assembled first part);

      M8 Nuts and M8 Blocked Nuts;

      some M8 and M3 washer;

      For the 3 Nema17, to prevent deformation of PLA or ABS or PETG material I advise Nema17 damper and my gears with 3 M3 nut and 3 grain to fix It;

      Step 8: Parts: Assembly
      [​IMG]
      [​IMG]
      [​IMG]
      As already mentioned to assembly all part refer to the wiki of Cyclone PCB, but for z axis refer to thingiverse project..

      Step 9: Electronic: Introduction
      For electronic I'd like to use Arduino with CNC Schield v3 (with 3 stepper driver), It's open and cheap.

      I take 3 mechanical end stop switch as described in the original project (the third one is for Z axis).

      3 stepper nema 17 (form factor is important to fit on printed part), if you have some old printer at home now It's the moment to disassemble It.

      A bluetooth module like ones described in this instructables It must be an serial pass-through module, not BLE one.

      A relay module, a mosfet for additional/future use, 4 buttons, 2n2222a transistor and some capacitor.

      Wire, some dupont (male and female), 2 crocodile clip.

      A power supply, 12v 10A It's sufficient.

      Step 10: Electronic: CNC Shield
      [​IMG]
      You can find this CNC Shield at low cost (eBay).

      This is a shield for Arduino UNO, but some Arduino have problem with serial communication with grbl program, in particular some CH340G usb serial connection doesn't work.

      My personal experience I have had some problem with micro-usb arduino, but no problem with "standard" arduino USB port (even if It was CH340G).

      For this project is preferable to remove all jumper on shield because threaded rod work as demultiplexer then with divider became to slow.

      Step 11: Electronic: Stepper Driver
      [​IMG]
      [​IMG]
      [​IMG]
      I choice A4988 driver instead a more powerful and precise DRV8825 for 3 reason:

      • A988 cost less;
      • We don't need 1/32 step divider;
      • My motors (taken from old printers) have less than 2A phase.
      There is a simple "trick/way" to set correct amperage, you must put tester + on potentiometer and tester - to GND of the driver (look the image) then:

      • DRV8825: Imax = 2 * Vref (if Imax = 1.5A, then Vref is to be set to 1.5/2 V = 0.75V)
      • A4988: Imax = 2,5 * Vref
      In my situation I put 0,8v*2,5 = 2A even if the step amp phase is 1,7amp but I need more power hehehe.

      Step 12: Electronic: Mechanical Limit Switch
      [​IMG]
      [​IMG]
      [​IMG]

      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]

      The printed part expect the limit switch in the photo, and It's a good choose to prevent part of noise.

      In the last image grab from shapeoko forum, you can see that noise reduction schema is quite similar to the schema of mechanical switch module, but there is a problem, the capacitor is near switch not near pin.

      Original guide to remove noise.

      To prevent my additional noise I add (as you can see in the picture) an additional capacitor 473 near the controller, if you want, you can add It directly to the wire or create an additional service board, you must connect blue (or green) and black wire of the switch.

      Step 13: Electronic: Relay Module
      [​IMG]
      [​IMG]
      I'd like to use dremel like splindle, It's the more cheap solution, you can get 160w dremel like for 20€.

      It's powerful and fast, but to control high voltage you must use relay.

      A relay module want a lot of power (40mha is the limit of arduino pins) so I create a service board with an 2n2222a transitor and 1K resistor to power relay and a led also, It take in input (from top to botton at the left of image) GND, signal (spindle enable pin), and 5v VCC, and result in GND (activated from signal) and VCC for various operation. Fritzing schema is available.

      Step 14: Electronic: Power Supply
      The choice of power supply depend on various factor like the current and voltage of stepper.

      But if you must buy new stepper and power supply the solutionis are low voltage and amperage stepper with 12v 10amp (or less) power supply. Low voltage stepper grant low working temperature and prevent deformation of printed part. 12v can power arduino board without volts reduction.

      I get a little 10amp power supply and insert It in a case of fired power supply of mini Itx desktop case.

      Step 15: Electronic: Wiring
      [​IMG]

      For Probe add a service board to prevent noise.
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      Remember the schema of wiring connection must be integrated with service board that I create to prevent all the problem I encountered.

      To connect all I use a dupont and Header pin, very versatile instrument.

      The machine get a lot of vibration so when you made al junctions and you test all, fix all with some hot glue.

      Step 16: Electronic: Wiring, Buttons and Led
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      As described i connect all with dupont.

      I add resistance directly to the led wire.

      Step 17: Electronic: Wiring, Switch and Buttons
      [​IMG]
      2xMaleFemale + 3xMale","top":0.3350694444444444,"left":0.3642578125,"height":0.2951388888888889,"width":0.169921875}]" style="padding: 2.5px; flex: 1.5 1 0%;">
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]

      Mechanical switch is connected from internal to external as GND, SIGNAL, and you must add a service board to give VCC.

      As you can see in the photo service board is simple prefored board that have 2x6pin (male-female) and 3x6pin male, with this I add a pin with vcc to switch and "expanded" VCC and GND for all other component.

      As already write I had to create an additional service board to reduce noise near the microcontroller, that simply add a capacitor 473 to the GND and SIGNAL of limit switch (BLUE and BLACK wire), as you can see you can add It directly to the wire.



      Step 18: Electronic: Bluetooth and Probe
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]

      For voltage divider service board refer to bluetooth instructable.

      Connect probe to SDA and GRD (SDA is A5 pin).

      The probe helper without a service board to reduce noise can generate error, but work correctly, a schema of system to reduce noise is in the photo.

      In my case the module spp-c have a trouble, after about an hour of work It's going to disconnect, so I buy an HC-05 (ZS-040), this module work correctly for a long time.



      (You can find service board schema here)

      Step 19: Electronic: Wiring, Additional
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]

      I add a Mosfet for 12v external power activated with splindle pin, the schema is very simple.

      I also add a 7812 as 12v votlage regulator to Arduino and 7805 for 5v external power (5v used for bluetooth and other module if It's necessary).

      Remember Mosfet and Voltage regulator can going hot so you must add an heat sink.

      I use old CPU heat sink Where I made a hole and doimg a M3 thread.

      (You can find service board schema here)

      Step 20: Case
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]
      [​IMG]

      I use as enclousure an old ITX desktop case with fired power supply, and the result is in the photo.

      Step 21: Firmware: Upload
      [​IMG]
      For the firmware I use a grbl from here.

      In my particular situation I don't use a variable splindle so I made a fork of the project hereready to be uploaded as normal ino scketch program (If you want you can import it as sloeber project also).

      Step 22: Firmware: Configuration
      $0=10 (step pulse, usec)<br>$1=25 (step idle delay, msec)<br>$2=0 (step port invert mask:00000000)<br>$3=3 (dir port invert mask:00000110)
      $3 Identify the direction of movement, you can obtain the same inversion with rotation of stepper plug.

      $4=0 (step enable invert, bool)
      $5=0 (limit pins invert, bool)
      $6=0 (probe pin invert, bool)
      $6 Identify the direction when you do the probe

      $10=1 (status report mask:00000011)<br>$11=0.010 (junction deviation, mm)
      $12=0.002 (arc tolerance, mm)
      $13=0 (report inches, bool)
      Here you can find adjustment of movement.

      $20=1 (soft limits, bool)<br>$21=1 (hard limits, bool)
      $22=1 (homing cycle, bool)
      This is the property for Limits and homing activation you must activate (and test) in this manner:

      activate $21 (hard limits, anche check if they works correctly, click by hand the limit switch when machine is in idle state);

      then activate $22 first and $20 then, $22 is the activation of homing and $20 is soft limit (check the size defined in the $130, $131, $132, i explain in order), if you activate $20 first you can broke configuration.

      $23=3 (homing dir invert mask:00000001)
      Here the direction of homing It's dependent on $3 configuration, if you change $3 you must correct this.

      $24=25.000 (homing feed, mm/min)
      $25=500.000 (homing seek, mm/min)
      Here the speed of homing, for my stepper is to high and block the movement.

      $26=250 (homing debounce, msec)<br>$27=1.000 (homing pull-off, mm)
      Other homing adjustment.

      $30=1000 (Max spindle speed, RPM)
      $31=0 (Min spindle speed, RPM)
      $32=0 (Laser mode, boolean)
      $30 and $31 are needed if you use PWM and variable speed, but I used a Relay to activate spindle.

      $32 is laser mode new configuration for laser CNC.

      $100=159.000 (x, step/mm)
      $101=159.000 (y, step/mm)
      $102=199.000 (z, step/mm)
      Here there are the number of step to do 1mm of movement, very important for precision, normally this value is ok for all Nema17 motor but exists not only 200 step motor but 400 or 75 step motor.

      I create a simple program to get this value, you can find here.

      $110=300.000 (x max rate, mm/min)
      $111=300.000 (y max rate, mm/min)
      $112=150.000 (z max rate, mm/min)
      This is the max speed of your CNC, remember that threaded rod is a big demultiplex so the speed that you can raise isn't very high.

      $120=10.000 (x accel, mm/sec^2)
      $121=10.000 (y accel, mm/sec^2)
      $122=10.000 (z accel, mm/sec^2)
      Acceleration parameter, we use a big demultiplex as described so they aren't very important for now.

      $130=160.000 (x max travel, mm)
      $131=96.000 (y max travel, mm)
      $132=40.000 (z max travel, mm)
      Here there is the size of CNC area.

      Step 23: Test: Homing
      Now start the homing test, I create a simple video, I use Universal Gcode Sender, but there are a lot of alternatives like bCNC, Mach3 ecc..



      Step 24: Test: Probe
      Simple video of Probe testing.



      Step 25: Test: Autolevelling ChiliPeppr
      Autolevelling feature not working on UGS so to test this features I use ChiliPeppr.




      Step 27: Test: First Milling PCB With Noise Problem.. and Panic!!
      I try to mill a PCB without a service board to reduce noise and in the video you can see what's happend.



      Go to the first minute of video (1:06).

      Step 28: Test: Milling PCB (Puff!!)
      [​IMG]


      [​IMG]
      [​IMG]
      First I need a vacuum cleaner :p

      Here you can see Cyclone PCB at work.

      Now work very good, and It's very precise.

      Step 29: Thanks
      [​IMG]
      [​IMG]
      As already said (with your contribution) I would like to create a board that includes all the fixes, if you have any experiences to share, write me or comment, so I can integrate your improvements.

      Recap of all link

      Original project: CarlosGS/Cyclone-PCB-Factory

      Where you can find a lot of usefully info and shopping list.

      My thingiverse: xxreef's Thingiverse Profile

      Where you can find fixed part and upgrade.

      Grbl github: gnea/grbl

      Where you can find arduino grbl firmware.

      My github: xreef (Renzo Mischianti)

      Where you can find ready to upload grbl and a program to calculate step/mm, or service board schema.

      Bluetooth information: Arduino Remote/wireless Programming and Power Bank Homemade

      How to program and wire bluetooth.

      Guide to milling PCB with ruoter: https://www.instructables.com/id/Milling-PCB-easy-...

      Some video: https://www.youtube.com/playlist?list=PLOHujNnRvJ6...
      Giarc, GeoffH, MaryD and 2 others like this.
  • Loading...
  • Build Details

    Build License:
    • CC - Attribution NonCommercial - Share Alike - CC BY NC SA
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice