This is my first attempt at an instructable. I hope it helps someone else.

Switches and Lights and fans, oh my...

Please read through the comments for more details.

I bought a CNC machine some time ago and I was never happy with it. It used a traditional parallel port controller and of course no modern computers have those. So it was always a point of frustration. I used an old Pentium based computer and ran LinuxCNC on it for a while but was still not happy with that. So I started looking for another solution. I decided that I would try to put together an Arduino based controller and try to use USB to communicate with it.

After studying that for a while I came to realize the Arduino was just not going to be able to do all that needed to be done on its own. The Arduino UNO just does not have enough memory or processing capacity to process a design file by itself. So I modified my solution and started working on using a Raspberry Pi as my host computer.

I created a Visio drawing of what I intended to do: It didn't turn out that way and the drawing continued to evolve as I learned more. It kept on changing until I finally got my project completed.

I have now built an Arduino based CNC Controller system that uses a Raspberry Pi as its host computer. The Raspberry Pi processes an "nc" file that contains a design that is described in GCode commands that can be understood by the Arduino. I have used a few tools on my Windows 8.1 Pro laptop to design a few simple things (like tutorials in makercam here: http://www.makercam.com/). This is a great introduction to designing things for CAD/CAM and it is really easy to use.

After creating a design that I wanted to use I wirelessly connected to the Raspberry Pi using WinSCP to transfer design files to the Raspberry Pi. You can get WinSCP here: http://www.soft-now.com/listing/123823/WinSCP?did=11055&pid=1&ppd=search,44532390848,winscp20download,e,,c,0,,,&gclid=CJuIkNHds74CFagWMgodpxMAJw. Its great, you can just drag a file from one window to the other to move files between systems. You will have to know the IP address of your Raspberry Pi to connect to it. If you have gone through the initial setup of the Raspberry Pi and setup a network connection you can get the IP address by using the ifconfig command on the Raspberry PI. A really helpful tool for getting your IP address and seeing that your Pi is online is a tool called the Advanced IP Scanner here: http://www.advanced-ip-scanner.com/. Another great tool is Wireshark: http://www.wireshark.org/

I then used Remote Desktop Connection (Remote Desktop connection is part of Windows and should be on your Windows machine. It can be run by entering mstsc in the Run Open: box) to connect to my Raspberry Pi. Otherwise you could use VNC or TightVNC: http://www.tightvnc.com/. TightVNC is what you need to put on your Raspberry Pi to allow you to use Remote Desktop Connection from another machine. I can now run the Grbl Controller on the Raspberry Pi which in turn connects to an Alamode (an Arduino like board that plugs directly into the GPIO connector on the Raspberry Pi and provides automatic voltage level translation. So that the Arduino can communicate with the Raspberry Pi directly. The Alamode also provides Arduino headers to allow for Arduino shields to be plugged directly into it. So I ended up with a stack of three boards that are tightly integrated due to being plugged directly into each other. The Alamode (Arduino) processes the GCode commands from the Raspberry Pi into signals that are sent to the CNC Controller shield to run the stepper motors and passes the various function signals on to the CNC Controller shield too. They can then be accessed from the external world. All is well so far... But now I have to connect these things to the external world.

Step 1: 100% Grbl Compatible CNC Controller

First, I purchased the 100% Grbl compatible CNC Controller shield from: http://blog.protoneer.co.nz/arduino-cnc-shield. I already had an Arduino and intended to use that with the CNC Controller shield and run something on my laptop to control everything. Then I found out that the Arduino would not be able to process an entire design file all by itself. This is due to it not having enough memory to handle more than one GCode command at a time. In fact not all GCode commands are currently completely implemented in the Arduino Grbl software. However, the Arduino does directly interface with the CNC Controller shield and can pass commands to the stepper drivers on the CNC Controller shield without any additional circuitry.

The sets of three yellow jumpers that you see in the pictures set the micro stepping for the stepper motors. The one single yellow jumper selects how the limit switches work. Mine are set up so that when the switch closes a ground is detected (the default). The alternative is to sense a hi when Vcc is selected. That is to say that the limit switch logic can be set to sense a hi or lo, your choice. The two yellow jumpers on the left side of the picture are for selecting which axis the A-axis mirrors (two motors on one axis).

I used polarized headers to connect to the stepper drivers so that I would not be able to plug in my stepper motors backwards - that's pretty important.

The 100% Grbl compatible CNC Controller shield does not actually include any stepper motor drivers. It is only a means of integrating the stepper motor drivers into an Arduino shield conveniently and it works great for that purpose. The CNC Controller shield is designed to use the Pololu type step driver modules like the A4988 stepper motor driver carrier that is shown here: http://www.pololu.com/product/1182

I purchased some from China that were about $4.00 each and appear to be exactly the same (we shall see when I actually try to use them). They came with some heat sinks too but I decided to use the ones you see (from Adafruit) instead of the ones that were included instead. You actually only need to populate the X, Y and Z stepper driver carriers on the CNC Controller board (because the Grbl software on the Arduino only knows about three axes). Unless you intend to use the A-Axis too (for a second motor on one of the primary axes). The CNC Controller allows you to mirror the control signals from X, Y or Z to the A axis by using jumpers. I am not using the fourth axis. I just included the fourth stepper driver carrier so that I would have a spare in case one of the others stops working. Then again who knows what might be in the future?

I've been a maker for 50 of my 58 years and an Instructable reader for as long as they have been around. I can say with certainty that this is one of the best written that I've ever read. Clear, consise, well thought out, well written. if you had entered a contest I would have voted for it! very well done. you have a future in technical writing should you persue that line of work.<br>
Thanks for the kind words. I am now 66 and have been tinkering for a long time. I am a disabled Viet Nam veteran and fully retired now. I actually did work as a technical writer for a few years and in my last job, before I retired, I worked as a Test Program Engineer and wrote test plans and test procedures for sophisticated electronic systems. I also designed and built prototype electronic test equipment and fixtures and mentored more junior associates. I don't really think that I ironed out every instance where there could have been some misunderstanding but I think my write up is pretty good. I never thought that it would get as many views as it has. When I look at the number of views it always surprises me. I tried to enter it in a contest but was not allowed to as I submitted it a couple of days before the contest started. I would have really liked to have won a laser engraver but I still feel pretty good about it just due to the number of people who have read it, tried it, and made comments about it. I recently purchased a 3D printer from a Chinese place and I am enjoying learning about it. Maybe I will write another instructable about that someday. Thanks again for reading my 'able and your comments.
I too am a disabled vet and I apologize for assuming you were a young person!
No problem at all. I thought that it was kind of funny that mentioned that I could be employeed as technical writer, as I had actually been one for many years. Thanks for helping me to feel a bit younger than I am.
<p>Can you point me in the direction you used to get LinuxCNC installed and running on your RPI, I have everything else working on my setup including talking to my alamode board. Thank you!</p>
I am sorry, but I do not use LinuxCNC at all. I am using the Grbl Controller software on my RPi and the Grbl firmware on my Alamode/Arduino. I am not aware that LinuxCNC can be run on a RPi at this time. At least, I have never tried to do that. I am not sure that LinuxCNC would run very well on an RPi either. perhaps someone else has done it and maybe give you more positive feedback. Check out the liinks in my write up and you should be able to get Grbl working pretty quickly (if you are familiar with Linux/Unix). Good luck.
Well that makes more sense! I musta missed that step. Thank you
<p>Great instructable. Thanks for all the detail and extensive references. Good photos. Well done!</p>
<p>Hi, not found realy 5VDC 12 VDC, please Help!!!</p>
Here is where I got the relays that I used: <br><br>https://www.itead.cc/electronic-brick-5v-relay.html
<p> It was a great help for me. I am trying to make one.</p><p>I have a request and a question please.</p><p>Question</p><p>Can I disconnect my PC or Laptop from the RPi after upload the G-Code into the RPi. I don't want to monitor the process but I want to run the machine without allocating a PC for the operation continuously.</p><p>Request</p><p>Can you please provide the necessary codes for the arduino and RPi.</p><p>Thanks in advance. </p>
If you built a system like mine then you should be able to test your theory to see if it works - I am able to connect wirelessly to my RPi, transfer files, start Grbl and connect to the Arduino (Alamode) and then set up the machines and eventually start making the part. I can disconnect from my RPi at any time and reconnect at any time. <br><br>I am not sure as to how to answer your request. <br><br>There are newer versions of the Grbl code that you might be interested in on the GitHub Grbl site here:<br><br>https://github.com/grbl/grbl<br><br>The code for the Alamode is available from the WyoLum site here: <br><br>http://wyolum.com/projects/alamode/<br><br>How to setup the Grbl code is available from the Protoneer site here:<br><br>http://blog.protoneer.co.nz/arduino-cnc-shield/ <br><br>I like the new CNC hat from Protoneer that works with the newer RPi's because it does not need the Alamode functions as they are incorporated into the CNC hat (so the Alamode is not needed) and it includes an Arduino Nano that is pre-programmed with the Grbl software. They, Protoneer, also have a link to download their own customized version of the software for the RPi (includes everything you need on the RPi already installed and ready to go) with just one download. You download it and then install it on your SD/TF memory module and then boot your RPi and you are up and running. Only thing left to do it set up you wireless networking on you RPi (make sure that you get a wireless module that is known to work with the RPi to avoid a lot of frustration). Good luck, I hope I answered your questions as you needed to have them answered.
<p>Your box looks great, inside and outside. Like a pro, you could sell them! Thank you so much for sharing and for giving additional information that I also will need. Very nice instructable!</p>
Thanks, I hope you build one too.
<p>Thank you for your quick reply with concern.</p><p>I think you made it clear what I have needed. Thank you so much</p>
<p>A great write up. Many thanks for taking the time to compile this. Very helpful</p>
Your welcome.
Your welcome.
This is a very nice description of all the guts of a CNC controller. But if you want to dodge most of the bits and pieces to assemble this, you can buy a 4 channel CNC controller board from http://synthetos.myshopify.com/products/tinyg. It sells from their store for $129.00. It has a USB input and can be driven from most any computer using the free Chili Pepper software. You will still need fans, a power supply, case and switches etc, but going this route will result in a much more compact and complete CNC controller. If this idea has been described further down in the comments, I apologize. In addition I have no connection with Synthetos other that being a very happy customer.
Thanks for letting us know about that. There are many solutions out there for building a CNC controller, this certainly is not the only way to do it. It is how I did it and it works well, and I learned a lot doing it. Why not write you own instructible about what you are proposing? I am sure that others would like to see how you did it and what it looks like along the way.
<p>Nice work! Can I ask where you got your panel mount cable connectors? ...and buttons while we're at it.</p>
You can try the ones that I mentioned in a previous comment: <br><br>http://m.ebay.com/itm/110983775612?_mwBanner=1<br><br>The buttons came from Adafruit.<br><br>Hope that helps.
Is it possible to just connect to the arduino through a usb cable on the pi? I already have the arduino and cnc shield set up and using my PC to control.<br><br>Also, can a touch screen be used to display and control the jogging of the machine with the pi?<br><br>Looks awesome!
The communications between the RPi and the Arduino happens through the UART on the RPi and the UART on the Arduino. In my project this connection is provided by the Alamode boad (including the required voltage translation between the RPi and the Arduino). It doesn't necessarily have to be that way but the software expects it to be that way. Could you use the USB to communicate between the RPi and the Arduino - I am sure it could be done but you would probably have to write some extensive code to do that. I also believe that you would loose some functionality on the Arduino. Someone else might have better insight into doing that sort of thing than I do. What I did was use the software that I found as easily as possible - I was not interested in trying to invent an alternate way, I was just interested in trying to get everything to work together. As for the touchscreen monitor to run the machine: I have done that on several occasions. I just connected an HDMI touchscreen to the RPi and could control everthing - actually, I never got the touchscreen to work correctly with the RPi so I just used a miniature wireless USB keyboard that has a touchpad built in to run everything. I have not tried to get the touchscreen to work in a while. Using the remote desktop is just so much easier that I just have no desire to try to get the touchscreen working any longer. Touchscreens have their own set of problems on top of everything else. So I just dropped it and went with the remote desktop instead. My HDMI monitor is something like 5 inches wide and the touchscreen was More accurate enough for me to use it effectively. If you have a larger screen thenyou might have better results. I hope I answered your questions. Perhaps others might give you different answers. Check out what the Grbl guys have to say on Github too. Good luck.
I meant LESS ACCURATE More More accurate. Auto correct strikes again!
<p>Hello, cdtaylor51 very good job. I work with a CNC in my day to day and want to build one for me to be able to test work that may be made no real scale. I have ordered some stuff, I have a raspberry pi, ordered the shield alamode, and cnc, lack ordering stepmotors but do not know what type / model to buy, you can provide me a link? Now I have more technical issues in my day to day use the PC to design and create the G code and send to as the machine is operating the machine with some switches and a touch screen of 15 &quot;wanted my cnc could have a screen to show me what you're doing, but more importantly as the grbl only supports 3 axes would be possible to double the system to have 6-axis? X, Y, Z to the movements a and C to swivel and tilt head and an extra lathe with interpolation with the other 5-axis, using either a PC or another raspberry pi to control the other 2 raspberry pi, or using one raspberry pi but two alamode shells and two cnc, it would be interesting to create a CNC complete the small scale.</p>
I believe that I understand your question and I have to say that you are already far beyond my knowledge level about CNC. I would suggest that you get in touch with the guys who are working on Grbl on github. As for the stepper motors: you have to match up the stepper motors with the drivers that you want to use and the motors need to have enough power to move the axes at the speed you want and enough torque to hold as you need. The most important factors are the maximum current specified for the motors and the maximum voltage and current that the drivers can handle also microstepping is an important feature (as you no doubt already know). You will need to understand these relationships to get everything you work. Otherwise buy a kit that has the motors, matching drivers and the high current power supply included - that is the easiest way to go. If you want to build a controller like mine then you may want to consider the new CNC Controller board from Protoneer (no Alamode board needed). I have a couple of them and I am working on a new version of my controller using that new board (look at some of the other comments for more information about the new board). I don't work for them or anything but I really like the way these boards are made and work. You can use the A4988 type plug-in drivers or external drivers that can handle much higher current and voltage (meaning larger, more powerful motors).<br>I am not sure if I answered all of your questions or not but good luck. I would really like to see what you come up with. I am still trying to learn about CNC... Maybe I will take a class or something...
<p>Hi <a href="https://www.instructables.com/member/cdtaylor51/" rel="nofollow">cdtaylor51</a>,</p><p>Thank you for your great instruction!</p><p>I just have a quick question. You were saying an arduino is not able to process itself, and thus u have to include a raspberry pi, is that because you are running the nc file totally without a laptop or a desktop to generate and command the gcode? <br>If I want to use laptop to create, process and command gcode directly to the arduino, do I still need a raspberry pi?</p><p>Thank you very much!</p>
Your question is interesting. I have discussed it before but maybe not directly as you asked. There are a few reasons for the RPi to be part of the project. The Arduino/Alamode is pretty busy. It is taking care of the &quot;real time&quot; management of the signals that are causing the motion in the CNC machine. It is also monitoring the limit switches continuously. On the other hand the RPI is not doing very much. It parses the .nc file and sends one gcode statement at a time to the Arduino. It also keeps track of what has been done and what is yet to be done. The RPi also provides a means to monitor the progress of a design that is being processed. Of course, I monitor that progress on a separate computer that has a monitor as there is no monitor on my controller. I like being able to just kick off a design and let it go without monitoring it at all. If I want to then I can reconnect to RPi at any time I desire to see how far along it is.<br><br>Does it have to be that way? Not at all. It is just the way that I did it. You need to have something that sends the gcode statements to the Arduino. The RPi does that by running the Grbl Controller. There are other software tools that you could use or you could write something to do that yourself. Finally I suggest that you take a look at the Grbl wiki for more insight into what else the Grbl Controller does - it does not have to be run on an RPi. It could be run on a separate computer instead. <br><br>You would not want to do any design work on the RPi. It is just much too slow for that. So my advise is that you do your design work on the fastest computer you can use. Then you can run the Grbl Controller on that computer or some other one that will stay connected to the Arduino for the entire time that the design is being processed on your CNC machine. I chose to let the RPi stay connected all of the time and just connect my laptop to it (wirelessly) when I wanted to copy a file to it for processing or to start the processing or to monitor the processing. It works well. It also off loads the requirement of keeping my laptop tied to my CNC machine for the entire time it takes to make a part. Still, other options are possible. This is just what I did. I hope you get the idea.<br>
<p>Thanks a lot for your detailed comment! I quite got the idea now. I'll try do do more research on Grbl!</p>
<p>Yes The Raspberry pi is just acting like computer . You can use lap top and arduino + arduino cnc shield for making cnc <br>Search on google GRBL arduino </p>
<p>Hi Mile,</p><p>Thanks a lot for your comment. I'm very new to this stuffs, but u've made it a lot clearer!</p>
<p>hello, really amazing, I'm 13 years old, I built a 3 axis cnc controller with grbl, I would like to build a 5-axis I do not very well understand the links you send me a diagram as much detail as possible? what have you loaded into rasperry more 2? softwere that you use? I would like to know as much as possible! thank you so much for your help! my email stefanodimaria03@gmail.com excuse for my English I'm utillizando google translator thanks again.</p>
<p>Okay, I have read your messages. I do not have any information on building a 3D printer or any other 5-axis machine. Grbl is limited to 3-axes. You might want to look at the RepRap wiki as it is essentially a 5-axis machine. Grbl is the only thing that I have loaded on the RPi in addition to the operating system.</p>
<p>I made this diagram based off of what I could see from your Instructable, could you tell me if this is wired correctly or not?</p>
<p>I like your diagram. It is pretty much accurate however it appears that there a couple of things that I think may need to be cleared up. Of course, you can do whatever you want to do. In my build I used 8-pin aviation connectors and the Endstop / Limit switch wires are connected to four of the pins of the aviation connectors. In your diagram you ran all of the limit switches to a separate 6-pin connector. That's okay by me but it is not the way that I did it in my build. I also noticed that you tied the limit switches together in your diagram. I did not do that in my build. Each of the switches are completely separate. I don't know that it matters. That would be a question that the would have to be posed to the Grbl guys.</p><p>Another thing that I would like to draw your attention to is that the colors for the axes are not correct. X should be red, Y should be green and Z should be blue. I got it wrong in my build but because of some of the feedback that I got (read the earlier comments for more info about the colors coding of the axes). The purple and yellow were completely arbitrary on my part. There may be some standard for those too but I am not aware of what it might be.</p><p>It might be more useful if you labelled the USB connectors for the different things that they go to. One goes to the Raspberry Pi and the other one goes to the Alamode. It might also be useful to label the switches.</p><p>I got the wires going to the steppers a bit mixed up in my photos too. Pin 1 in my build is blue, Pin 2 is red, pin 3 is green and pin 4 is black.</p><p>Just in case is was not noticed: There are four current limiting resistors on the power distribution board that are there to limit the current that goes through the LEDs in the switches.</p><p>I have attached a few pictures to this reply to show some of what I have mentioned.</p>
<p>Hi, first of all congratulations, you did a very good work.</p><p>My question is if I don't have the Alamode shield for raspberry, it's possible to use Arduino UNO, I have seen in new RPI CNC BOARD that just connect 10 pin from RPI, to RPI this pins are I2C and UART I think they are the principals.</p><p>I have your cnc shield (the red one) but I don't have Alamode shield.</p><p>Thanks, I hope your answer.</p><p>Sorry for my English. :)</p>
Yes, you can use an Arduino UNO if you want to. You will still have to use a voltage translator so that the RPi and the UNO can communicate with each other. Its no big deal but it is required that you provide some way for the +5V on the Arduino UNO to work with the +3.3V on the RPi. Otherwise, you run the risk of destroying either or both of the boards. A voltage translator can easily be made with a couple of MOSFETs for each pin that is going to be connected to the other device. You could also use the voltage translators that are provided by Sparkfun or Adafruit or something of your own design. Take a look at these, I think that either one will work.<br> <br> <a href="https://www.sparkfun.com/products/11771" rel="nofollow">SparkFun Voltage-Level Translator Breakout - TXB0104&nbsp;</a><br> <br> <a href="https://www.adafruit.com/products/757" rel="nofollow">Adafruit 4-channel I2C-safe Bi-directional Logic Level Converter - BSS138&nbsp;</a><br> <br> I have attached an image that shows what each of the pins on the new CNC board are used for (it only uses 7 of the 10 pins). The new board that you mentioned has the voltage translators built in and it includes a pre-programmed Arduino Nano in the price. That might be your simplest choice depending on what you are trying to do.<br> <br> As I have mentioned previously, the Alamode board made it easy for me to tightly couple the RPi to the Arduino and the CNC shield. &nbsp;I didn't want to have an extra PCB in my solution. &nbsp;You could easily put the voltage translator underneath with the power distribution board - that is probably what I would have done if I would not have had the Alamode. You could also make your own voltage translator PCB or build a voltage translator on an Arduino prototype PCB.<br> <br> I have to tell you that the RPI CNC board is really nice too. &nbsp;If it would have been available I probably would have gone with that solution rather than what I did. &nbsp;I did not use most of the functionality that is built into the Alamode but I did use the real time clock and the voltage translators.<br> <br> I am in the process of building a new controller using the new board. &nbsp;I will be making a new instructable too but it will take a few more weeks for me to get that done. &nbsp;In the mean time you might want to look at the new card too. &nbsp;It solves the voltage translation problem very nicely.<br> <br> <br>
With a local display you could control the system locally. I personally don't see that as very useful. You could also monitor the progress of your project. That might be more useful but definitely not essential. As I mentioned previously I can completely control and/or monitor my system with my Remote Desktop Connection. I do not have a display on my system locally. I just use my laptop to do everything. I might someday decide to build a pendant to do things &quot;manually&quot;. Then a local display might be more advantageous.<br><br>Replacing the push buttons with touch screen buttons would be an interesting thing to do. The push buttons are physically connected to the Arduino not the Raspberry Pi. So you would have to change the way things are wired up and then you would have to write some code to capture the touch screen button functions press / release / hold (or whatever you need) and then follow that up with some code that would send the captured event to the Arduino to effect the press of the button. Lastly, you would have to write something to run on the Arduino to &quot;hear&quot; the button presses on the Pi. I would suggest that this might be the hardest part as you would not want to interfere with Grbl which is already loaded and running on the Arduino (you might be able to control relays from the Pi to effect the button actions on the Arduino). It would be a substantial amount of work but I think it could be done - you might find some libraries on the Internet to help. I have not researched this at all. It is so much easier to just connect the buttons to the Arduino at this point. The code on the Arduino (Alamode) is already there and works. If you decide to do that sort of thing, I am sure that others would be interested in that too. Good luck with your project.
if i was to add a touch screen would it be wired to Pi or to Arduino
It would be easiest to just plug a touch screen LCD into the HDMI port on the Pi. The touch screen itself would actually get plugged into one of the USB ports on the Pi. I don't think it would be possible to run it with the Arduino - it is already very busy controlling the stepper motors and the spindle and at the same time monitoring the buttons and the limit switches. On the other hand the Pi is not very busy. Don't expect very fast response times on a local display and you will need to monitor the temperature on the Pi with a local display running. Those are the concerns that I had that pushed me towards using a Remote Desktop Connection. Hope that helps. I probably would have put a local LCD/Touchscreen on my build if I would have had a bit larger enclosure.
<p>2 questions, one is silly and one serious.</p><p>Silly Question:<br>Would you have put an LCD for the cool factor or do you so an actual need?</p><p>Seriously though:<br>I was curious if the push-buttons can be replaced by touch screen buttons? </p><p>BTW, thank you for your prompt reply. You rock my friend.</p>
<p>wow!!!! very,very nice.... appreciate the way the wires were harnessed, the placement of the boards...thumbs up!!! </p>
Thanks for your omments.
I am also new to these electronics; so I am sorry if my questions are dumb.<br>1. would the Rasberry Pi be able to control a CNC through a breakout board and into stepper motor boards without using an arduino? <br>2. you mentioned in another comment that there was a new controller board that takes the place of the Alamode. Can you post the link for it?<br><br>Thanks for posting this awesome build.
<p>There are no dumb questions.</p><p>First - This system is based on Grbl. You can learn more about Grbl at GitHub Here: <a href="https://github.com/grbl/grbl" rel="nofollow">https://github.com/grbl/grbl</a>. Grbl actually runs on the Arduino. The part of Grbl that runs on the RPi is the Grbl Controller. It is a G-Code sender. The Grbl Controller takes a design file and breaks it into individual Grbl statements that are then passed on to the Arduino where Grbl interprets the statements and causes the Arduino to generate various electrical signals which are sent to stepper motor drives to cause motion or other functions to occur. It is significantly more complicated that but basically that is how it works.</p><p>I am not aware of any other system that would run on something like an RPi without using an Arduino or something like that to process the Grbl statements. It is very difficult to run real time code (to control the stepper motors for example) on a time slicing device like the RPi. I have read about people who have wanted to do that sort of thing but I am not aware of anything like that at this time. The closest thing to that would be LinuxCNC but I do not believe that will run on an RPi. You could do it if you could get a real time operating system for the RPi and then wrote something equivalent to Grbl to process the G-Codes. Electrically it would be pretty easy to do but the software would be pretty complicated. I believe that is why Grbl is so widely used. It is simple, easy to set up and use and it already exists.</p><p>Second - You can find the new board from Protoneer here: <a href="http://www.ebay.com/itm/271901344091" rel="nofollow">http://www.ebay.com/itm/271901344091</a></p><p>If the link doesn't work then Google for: <em>Raspberry Pi CNC Board </em></p><p>The new board (hat) is really nice and provides access to the new features of Grbl. It also includes an Arduino Nano that is pre-programmed for you with the latest version of Grbl. Just add a RPi B+ and some Pololu stepper motor driver boards and you are pretty much ready to run some stepper motors. Of course, you need to have a power supply for the stepper motors and all of the wiring too.</p><p>I hope this helps...</p>
Sure, you can put any size screen you like on the RPi as its output is HDMI. Of course, you would also need to have a keyboard and mouse to manipulate your system. That is actually the reason that I went with a WiFi connection instead of a local display, mouse and keyboard - the screen was too small and I ran out of room. I just use the Remote Desktop application in Windows to connect to my RPi and I can then manipulate my CNC system with my laptop. I have a 17 inch laptop and the remote desktop looks really great and is very responsive. You can certainly run everything on the RPi with a local display, mouse and keyboard. However, I would not try to do any CAD, CAM or design work on the RPi. It just does not have the speed that you need to work on a 2D or 3D image. It is best to do your design work on some other machine and then just send the G-Code, deisgn file to the RPi to be processed by Grbl.<br><br>The second question is significantly more difficult to answer. If the rated current of the motors is less than about 2.2 Amps and you want to run the motors with less than 36 Volts then you can use the Pololu stepper motor drivers. The CNC hat claims that it can handle up to 36 volts. If you need more voltage or more current than that then you will need to use external stepper motor drivers. You might want to look at the M542T or TB6600HG based drivers. You should not have any problems using either of those drivers with the new CNC hat. It has pins so that you can connect to the control lines of the drivers. Of course, you would not populate the CNC hat with Pololu drivers in that sort of configuration. You would not connect the stepper motor power supply to the CNC hat either. So you could go to as high a voltage as the driver allows, typically about 50 volts, and most of the external drivers will provide 4.5 to 5.1 Amps to your stepper motors. If you need more current than that then you will probably need to look at something like the Gecko Drive stepper motor drivers - really great stuff from all I have heard but expensive.<br><br>I am building up a new milling machine (and maybe a new lathe that I have too) as CNC machines and I have spent a lot of time trying to decide what I am going to do about stepper motors and stepper motor drivers. The motors that you mentioned are really powerful. My new motors are NEMA 23 size and only 425 oz-in. They have a rated current of 3 Amps. I believe I can run them at 2.2 Amps so I am going to try running them with the Pololu DRV8825 stepper motor drivers. If I don't get the performance I want then I can pretty easily change over to external stepper motor drivers, as I mentioned earlier.<br><br>Hope this helps.
thank you for clearing that up. I was under the impression that the rasp pi was running cnc linux and passing commands to grbl on the arduino. thanks for the link as well.<br><br>If i may ask a few more questions:<br>i plan on making a 4'x8' cnc router and i want it to be run with your setup, but with a small screen so i can run everything straight from the rasp pi. is that possible?<br><br>also, can the control boards handle the amperage of these large motors?<br>2 NEMA 34 Stepping Motor (651 oz-in 1/2&quot; dual shaft)<br><br>NEMA 24 Stepping Motor (425 oz-in 1/4&quot; single shaft)<br><br>again, i apologize for bombarding you with questions.
<p>Just a quick question, what type of Raspberry Pi did you use in your build? I am new to the whole Raspberry Pi/Arduino scene and would really like to know. Im sorry in advance if I missed a part in your awesome write up.</p>

About This Instructable




Bio: Viet Nam War Veteran
More by cdtaylor51:Raspberry Pi Alamode CNC Controller 
Add instructable to: