Raspberry Pi setup

Followed Joec’s “My $45 Shop Computer” idea, and after a bit of tweaking done this:

The desk drawer on wheels is bought from a junk yard for A$50. The monitor is from year-2003.

Note stiffener on the original waste board and a panic button for emergency shut-down.

Limit switch closure indicator. Currently the system is protected on X and Y - both sides and in the Z - up. Note the thread-lock applied to screws. That was critical: without it, the vibrations destroy adjustments.

Wires at the back. Left to right: light, monitor power, Pi and USB hub power, X-Carve 24V power supply.

The hero itself: Raspberry Pi B. Ports used:
o DVI is plugged to monitor via DVI-to-VGA adapter (my monitor is old and does not know DVI)
o Power supplied from the USB hub via micro-USB cable
o One USB socket is used for WiPi wireless connector dongle, the second is plugged into the USB hib

Under the hood:
o Blue wire connects USB hub to Pi
o Silver wire brings one USB port out for plugging USB sticks
o Little black dongle in the USB hub is for the wireless keyboard
o Two black USB wires: one supplies power to Pi, one connects to Arduino and G-shield (note the custom enclosure with 24V fan.


Nice rig! What software are you using to send Gcode? I’ve been running GrblController on my Pi and it’s pretty great. Lightweight and solid. Not as fully-featured as UGS and certainly not anything like Easel.

I’ve also read instructions on how to use the Pi as a USB over IP relay for another computer, so you could run Easel on it (or whatever other software you want) but I haven’t had a chance to dig too far into it yet.

Nice setup!

I am also using a Raspberry Pi (v1), but am running it “headless”. I use grblweb to send Gcode and control the machine using a tablet or smartphone. Haven’t had any problems so far; sent a large Gcode file that took 4 or 5 hours to carve without issues. I do have Ethernet in my shop, so my Pi has a wired network connection.

There’s a nice write-up over at Instructables which was very helpful in getting this setup.

The only issue I’ve had is with the homing / limit switches, but I believe this is hardware related. I did have them working perfectly at one time with my current setup, then did some tinkering with a newer Pi (v2), went back to the v1, and now only have the Z homing switch working. [The reason I am guessing this is hardware related is because I can wire the X and Y limit switches to the Z pin on the grbl shield and they work fine.]

In terms of future upgrades, I am holding out for the X-controller (anxiously awaiting its release) and would like to get it going with grblweb and the Pi v2. I considered wiring up the EStop, Hard Reset, Pause, and Resume buttons myself but would rather spend the $ on the “complete” hardware controller and spend more time carving.

I’d also like to investigate using the Pi as a relay so I can become a full-fledged member of the Easel community. But right now the X-carve is busy with holiday gifts!


George, I just got my RPi2 set up last night running GRBLweb. But when i try to jog the machine with it, from any device (phone, laptop, or desktop) it does not move. I thought in the interim of the last few days without playing with it, maybe something went wrong with the arduino or my clumsy wiring (I wish the x-controller would hurry and be ready!!!), so I hooked it back up to the laptop and jogged it with UGS and it worked fine. Did you have any issues with GRBLweb not controlling the x-carve once you had it connected? If anyone else had this issue any help would be appreciated!


Hi Nathan, I am running a Pi v1 with an older version of GRBLweb that was built for a v1. Basically I got it up and running several months ago before a build was available for the Pi2. I did get a Pi2 with the latest build a month or so ago but ran into some issues with GRBLweb (probably the same issues you are having). I reverted back to the Pi1 and all is well, except for the X and Y homing / limit switches (but that’s another story!).

Here are some things you can try:

  1. Make sure you only have one device / browser session connected to GRBLweb. I have run into issues when trying to issue commands from both my iPhone and tablet at the same time. Close all other browsers and only have one running.

  2. Connect the USB cable, and then reboot the Pi (I have no elegant way of doing this other than disconnecting / reconnecting the power cable to the Pi). GRBLweb should re-detect the serial port when it starts back up.

  3. Are you only having trouble jogging the machine, or is it a general connectivity problem? On the GRBLweb page in the upper left, there is a dropdown that says “Select a serial port”; you should see your serial port listed there and be able to select it.

  4. Related to number 3, can you successfully send any other commands? For example, if you click the “Settings ($$)” button, or type “$$” in the command box and click “Send to CNC”, you should see all the GRBL settings get sent back to the big gray text box in the upper right to the page. If you click a jog button, you should see a G90 command sent, and a response of “Ok”. But, if your serial port is not listed and it is not selected, obviously none of the commands are going to work.

  5. I would say to double-check all your wiring to the motors, etc., but it sounds like you’ve already done that and are good to go, since you are working fine with UGS.

It’s been a while since I looked at the GRBLweb V2 build, but the V1 build seemed a lot more stable. I remember that, in the v2 build, you could issue commands without having a serial port connected, and nothing would happen; but in the v1 build, you get some sort of “you must select a serial port” popup. If you can your hands on a Pi v1 I’m sure you’ll be able to get it going. I’ve carved a few projects with it already; the largest gcode file I’ve sent is 1.4Mb, which took about 5 hours to carve, and it had no issues.

I am anxiously waiting for the x-controller as well, and definitely want to get it working with the Pi2 and GRBLweb. (The Pi2 has a faster processor and double the RAM of a v1.) Unfortunately I’ve been busy with several projects I need to finish for the holidays, and probably won’t get a chance to do any upgrades until January. Hopefully the x-controller will be released by then, and when I get my hands on one I’ll tackle the Pi2 / GRBLweb then.


George, thanks for getting back! I Actually fixed this problem (I think) which of course leads into another. I will get into the new issue after answering your suggestions. Maybe someone will have a similar experience and can benefit from this.

I wondered about this and had tried this myself. I did notice once that one of the few times i was able to get commands to show up in the log window, it had transferred to the other devices when i went to shut them down, so i am not sure if this is a real issue or not, but it does not hurt.

This was tried too. Always the first resort in troubleshooting, restart the computer, lol.

Jogging was just an example but, no, i cannot do anything with the machine from this window except connect to it. GRBLWeb will not even load in the browser if the machine is not plugged in so the RPi has to recognize something when it is. I did see the Arduino in the upper left of the window, but no other commands worked, typed or clicked.

Yeah my rats nest was one of the first things ii tried.

Okay now for the “solution” after some research. I finally found the little hint on the GRBLWeb main page about the baud rate being different for GRBL .8 and .9. I looked here in the forums, and i found one article that suggested that the GRBL firmware is .9 from Inventables. (Please correct this if i am wrong.) So i went in and changed the baud rate to the suggested number. Right after i was able to see differences in the GRBLWeb browser page, machine pos not at 0;0;0 for one, I almost jumped for joy! Then it still wouldn’t control anything. Refreshed the browser and the page wouldnt load. Looked at the RPi and the light was out on the WIFI dongle. Long story a little shorter, when i plug in the x-carve, i lose the dongle, if i unplug the x-carve, the dongle comes back. I read somewhere that OOTB the RPi can have underpowered USB ports and maybe needs a boot file set up to automatically give them more juice. This is the only solution i can think of at this time. If anyone else has had these issues and fixed them, please share!

Thanks again George and the rest of the x-carve community!


Thanks for the reply; it reminded me of a few details I forgot to mention.

I had already done the baud rate change to 115200 for version 0.9 of GRBL. And, yes, the GRBL firmware is 0.9i. [I confirmed that with my current setup - send the $I command and the build number is returned.]

I’m afraid I can’t help with the WIFI issue. In terms of IP connectivity to the Pi, I am using a wired ethernet connection. I have a Gigabit wired network with a wireless access point that I only use for smartphones and tablets, and an ethernet drop in the shop, so the Pi is hardwired. I configured the Pi to get a static IP address over the ethernet connection, and I use the IP address as the URL in my browser to get to GRBLWeb.

My sense is that my IP connectivity to the Pi is okay, but I’m having some sort of problem with GRBLWeb talking to the X-Carve over the serial port (either hardware or software). But it’s definitely something for me to double-check (as well as the baud rate).

The V2 build of GRBLWeb has some support for plugging in a webcam, which I don’t have. The V1 build, which I am running now, has no such support. I doubt this is an issue; just pointing out differences.

It’s great that you found the baud rate issue and the WIFI dongle problem; hopefully fixing these will solve your problem.

If I can spare some time to fiddle with this and make any headway, I’ll post the details …

I am using self-made text-only sender, written by myself. It runs in the text terminal, using CURSES library. If interested, I can post the source code in Python 3.2 (3.2 is standard Raspbian issue).

After playing with the machine for some time, I don’t think the remote control operation – even with video streaming and a remote shut-down capability – is worth it. One got to be close the machine at all time.

I got it working, “it’s alive”!
Okay after looking all over for my issue and not finding it, I decided to try a powered usb hub. I had to play with it a bit and plug the WiFi dongle directly into the RPi and the x-carve into the powered usb hub. It took about 5 minutes for the RPI to recognize the X-Carve, but it’s been working perfectly since! At supper now will post a pick of my first carve with it later.