Arduino Projects :-  Mini CNC 3D printed PCB Creator.

A project in the making..

 

I wanted for a previous project to be able to create PCB`s quickly and simply.

I have tried many methods :-

  1. Toner Transfer ( Iron Method )
  2. Photosensitive
  3. Hand Drawing

None of which I found particularly inspiring or in fact reliable.

So after watching countless videos on Mini CnC machines , I have decided to build my own.

I have been using Google SketchUp to design my parts and my AnyCubic Kossel to realize my designs.

The design phase has been quite challenging for me , making sure each part has the correct dimensions and that each component will work with the rest of the project. then of course you have to print it and things very rarely go to plan, so you then need to tweak it , Re-model in SketchUp and Re-Print.

A list of the components brought are:-

6mm Steel Rod 1M cut into ( 2x 25 cm ) ( 2x 40cm )

6MM_Rod

6mm Linear Bearings LM6uu ( Two Lengths  35mm & 20mm)

6UU_Linear_Bearing

x2 mini bearings for the belt to run on.

6mm_bearing

Arduino Uno

arduino-uno-r3

Mini CNC Sheild

Mini_CNC_Shield

A Buck Converter to step down from 12V  to  5V for the servo etc..

Buck_Convert

x2  Pololu A4988 drivers  only for the X & Y Axis

Pololu_A4988

 

5M of GT2 Belt and 2x GT2 Pulleys

GT2_Belt_Pulley

2x Nema 17 Stepper Motors

Nema17

x4 Mini Micro Switches.

Mini_Micro_Switch

1x Metal Geared EMAX ES08MAII Mini Servo

Emax_ES08MAII

Also purchased was a standard picture frame 5x7inch so i could use the glass as a bed, coincidentally the bed size i was aiming for was a half sheet of A4 paper which is 5x7inch.

Oh and you will need some MDF to use as a base.

Nextup:-

Software side to enable an exported Gerber .GBL file from Fritzing to be translated into GCode and sent to the Arduino via Serial comms, I am aware that there are many programs out there that will enable me to do this but there is a couple of  issues i need to overcome.

Most GCode assumes that the Z Axis is a Stepper , Not true in my case its a servo. Now i do have GRBL V1.1 installed on the Arduino with the servo mod enabled but his poses another issue , The Servo mod assumes that a M03 S1000 command will issue a PWM of 255 and a M03 S0  or M05 will issue a PWM of 0.

But i want a  M01 Z-1.0  to translate to PWM 255 and  M01 Z1.0  to translate to PWM 0, So i have written a little utility in Visual Studio to replace any of the Gcodes listed below with the correct ones .

Comands

Also i have added the function to check to see if there is a M01 Z1 before the first travel command if not then insert one because i do not want the pen dragging across the surface before starting. Then a check for a return to X0 Y0 after the job is complete.

My Little App:-

So the first screen is just a preview of the current Gcode loaded.

GcodeChanger_Capture1

The second screen, After you press the GO.. button is a view of the edited Gcode and the insertions made by color type.

GcodeChanger_Capture2

 

 

My ideal would be to have an SDcard loaded with the GCode file to be read by the Arduino so the whole unit would be stand alone from the computer, But i am fully aware that an Arduino Uno running GRBL is at maximum capacity regarding program space and i cannot push in the required header files and re-program to read from the SD.

I need to experiment with reading the SD with one Arduino and Passing over Serial to a second Arduino running GRBL, this is definitely an option but i didn’t have much luck when trying to link the two serial ports together.

For now , I need to concentrate on getting the basics and functionality of the machine working properly and then move on to adding extra bits and pieces.

Below is some pictures of the project thus far.

 

My Printer:-Anycubic Kossel

MiniCNC

The X_Stage

X_Stage

The Pen_Mount

Pen_Mount

The Y_Stage

Y_Stage

 

Photo`s of  3D Printed Parts.

Fully_Printed

Pen_Holder_CloseX_Stage_Close

UPDATE:-

So i normally use Fritzing to desgin my circuit boards , I love the breadboard mode and the PCB export options. ( Straight to Gcode would be an absolutely smashing option ? )

Routing of the traces is not a very enjoyable past time mainly hampered by Fritzing`s slow response even on a powerful computer.

 

Fritzing_Capture

 

Then I Export the PCB to .SVG and load it into an offline version of Makercam.

 

Makercam_Capture

 

Another really good program , This allows me to generate ” Follow Path ” Gcode and save ready for import into UGS  “Universal Gcode Sender “.

 

UGS_Capture

Which spews the Gcode to my Arduino running GRBL and the CNC Shield.

I have limit switches installed and this allows for homing.

Below i will include links where you can grab the Zip which includes the Sketchup project and also the individual .STl files / Programs i made and used.

**  I`m not sure if my Gcode Changer software will run just as an .EXE, as long as you have the .NET framework installed it should be fine. Any issues give me a comment and i will try and publish it through VisualStudio. The Disclaimer is that this software is provided free of charge and i will accept no responsibilities for any damage to any equipment in any way shape of form ( Use at your own risk ).

Click Here To Download from my OneDrive

Some videos are located on Youtube if you fancy a look at it in action.

Overview of the Mini CNC Arduino Plotter.

 

 

Close Up Plotting.

 

If you have any questions please leave a comment below and i will try and respond.

 

 

Advertisements
%d bloggers like this: