Connect with us

GRBL + Arduino + CNC Plotter need help!

Discussion in 'Project Construction Technologies' started by Giorgos, Jun 5, 2015.

  1. Giorgos

    Giorgos

    28
    1
    Apr 6, 2015
    Hello people!
    As you can see in the following link, i developed a mini cnc plotter device made from used DVD drives.
    http://readme.esy.es/?p=162

    I used a "dummy" code to drive the motors drawing the image.
    I had a look on GRBL method and so, i am interesting in use it. But i don't know how!
    I don't know the way to prepare the arduino board to be connected with GRBL software.

    I would be very happy if someone could help me out!

    Thanks!
     
  2. Fish4Fun

    Fish4Fun So long, and Thanks for all the Fish!

    436
    99
    Aug 27, 2013
    Hey Giorgos!

    Have you read this: https://github.com/grbl/grbl/wiki ? After being generally fascinated with CNC machines since the 1980's, in the last decade I have actually built several CNC machines, and am currently building a 3D printer.....In my opinion the most difficult part of CNC has been learning the software side....Gaining an understanding of the roles CAD, CAM and Controller play in the process can be vexing.....and quite counter-intuitive....often with overlapping boundaries and cascading ramifications.....I plan to wade through the open source software for my 3D printer, but do not look forward to the task.....The best advice I can give you is to "stand back" and attempt to get perspective on the role of each portion of the software process.....

    CAD, in its simplest role, is a collection of vectors used to define an object...in this context presumably an object to be actualized through some CNC process.

    CAM is an intermediate phase in the evolution from vectors to tool paths that allows the user to define how the actualization will occur.....Here the user defines things like the tool, spindle speed and feed rate...order of operations etc, etc....at the end of the CAM process is a text list or collection of text lists of discreet commands generally referred to as "g-code". G-Code "tells the controller" what operations to perform...what paths to follow in a "universal" language, but the G-Code itself contains no information about HOW the machine actually achieves these operations.....

    A Machine Controller is the final step in the process....translating generic paths into machine operations....It takes the "suggestions" from the G-Code text file and translates them into discrete, machine specific operations....some machine controllers augment the G-Code "suggestions" to fall within the machine's capabilities, others do not....regardless, it is the machine controller that expands G-Code directives to Machine Primitives....

    For example, if a specific machine uses a stepper motor and lead screws to create linear motion at a rate of 30,000 "steps" per inch, and the machine controller receives a "G-Code" statement to "move" 1 inch at a rate of 900 inches per minute, it is the machine controller's responsibility to "accelerate" from its current velocity to 900ipm at a defined acceleration rate and output the result as 30,000 "timed steps".....If the machine has a defined maximum feed rate of 100ipm then (depending on the Machine Controller) it might reduce the requested feed rate to the Machine's maximum feed rate...or it might simply "halt execution" and report the error...or it might simply attempt to move the machine @ 900ipm regardless of the machine's ability to achieve this rate.....If a different machine ran the same G-Code file but this machine used closed-loop servos the machine controller might simply output an analog signal indicating feed rate to the servo controller and monitor the axis position via the encoder.....The controller's job is to translate G-Code directives into a specific machine's primitives.....

    In short, each portion of the process is designed to generate an output or accept an input that is platform/machine independent on at least one end....In the "bad old days" of "NC" machines (Numerical Control) a machine was "programmed" to perform operations by directly inputting each "step"...some early "paper fed machines" had long rolls of paper tape with holes punched in them to trigger various machine operations....much like a "Player Piano"....The task of creating the "tape" for any given operation required hundreds if not thousands of man-hours restricting the fiscal viability of NC machines to long production runs.....The evolution of NC to CNC was in large part dictated by the evolution of computer hardware/software and the increasing capabilities of MicroControllers in a stutter-step fashion....until relatively recently all of the software/firmware was proprietary, developed almost exclusively for a fairly limited number of larger industrial corporations with engineers dedicated to the task of implementation....

    While "reasonably" priced software has been around for over a decade, "reasonable" for industrial budgets is frequently well out-of-reach for hobbyist.....and to be frank, for quite a while "Pirated Software" was the only economically viable choice for many hobbyist....enter "Open Source" software.....With the advent of the 3D printer revolution "Open Source" Software // Firmware // Hardware has been catapulted from basic functionality with tons of caveats and limitations to the "bleeding edge" of industrial features in a very short time-frame....Sadly, while the "Open Source" software/firmware/hardware revolution has given Hobbyist very powerful tools, the onus of learning to use these tools falls squarely on the shoulders of the Hobbyist and frequently requires a great deal of effort. There really aren't any "short-cuts" or "Easy Buttons".....no way to "skip" a step and expect some "wizard" to walk you through...though perhaps in the future such features will be available....for now you still have to go through each step....

    Best advice I can muster is, "Take your time on the front-end, learn each step and its role in the over-all process..... and remember that as little as 25 years ago there weren't more than a handful of people in the entire world who had a firm grasp on all of the facets of building and using a CNC machine.....most of the people at the center of the 3D printer revolution have professional training and formal education in the field and are doing their best to make the hobby affordable and accessible; they have made great strides, but the hobby still requires more than a casual user to get any given machine up and running and actualizing user generated projects."

    Good Luck!

    Fish
     
    abuhafss likes this.
  3. Giorgos

    Giorgos

    28
    1
    Apr 6, 2015
    @Fish4Fun thank you for taking the time to read my post and also thank you for your detailed answer.

    Although i graduated from Industrial Informatics department(University in Greece), i have a background on programing in additional platforms, software for "desktop" use and web development.

    I have middle-level knowledge on embedded systems etc bit i am willing to learn as much as i can. Notice that i started using Arduino board and now i am developing using FPGA. Everyday is a challenge for me to discover more and more. When i decided to do this project, i didn't have any idea about how to control stepper motors, what G code is all about etc etc. What i am trying to say is that i don't want to make something and say "Hey, look at this! i made it! i am genius!".... I am interesting to see the deep side of it. That means all of what you are saying above. Except that, there are many many ways to make the same result using different ways (even more difficult or not). Mention that if you want to make a web site you can use code(HTML, CSS, Python, PHP etc etc), CMS(Joomla, Wordpress etc ets). Internet is full of informations and stuff. So, the issue is how much someone wants to try and do his best. Although, wheel has been invented once!

    About your words "remember that as little as 25 years ago there weren't more than a handful of people in the entire world who had a firm grasp on all of the facets of building and using a CNC machine.." To be unique, does not means that you must be the one who know something, you can be unique by using your knowledge with most productive and "artistic" way...!

    I will have in mind what you said to me and i hope your experience can help more people.

    PS.1 I am on my way to develop a 3d printer too, using open source tools, like GRBL, Arduino etc. I'll keep you updated for the process!
    PS.2. I hope you get what i tried to say, forgive me for my low-level english!
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-