Warning: Use of undefined constant description - assumed 'description' (this will throw an Error in a future version of PHP) in /homepages/32/d763672482/htdocs/clickandbuilds/CNCMakerZone/wp-content/plugins/thingiverse-embed/thingiverse-stream-widget.php on line 12
Bluetooth – CNC Maker Zone

Make a GRBL CNC pendant with a Bluetooth data link

If, like me, you like to spend time surfing the internet looking at photos of CNC accessories, you’ve probably thought how nice it would be to have a pendant (i.e. a controller on a cable) for cheap Chinese CNC machines using GRBL controller boards. In fact, I wanted one so much I decided to build one to allow me to jog and zero axes, as well as to let me turn the LASER on for focusing and accurate jogging. I decided to do it using an ESP32 microcontroller as it allows the pendant to act as a Bluetooth link for G-Code sending/receiving as well. I thought my finished design might be useful for others to base their pendant designs on too, so I made it open source, and you can see what it looks like in the photo below.

A photo showing the finished pendant as well as the inside and a view of the circuit board.

It’s important to note that this could probably be described as an advanced maker project, as it requires skills with 3D printing, circuit making, soldering and Arduino coding. But if you’re up for the challenge you can get all of the files and details needed on Github and Thingiverse. The links are below and good luck making one as they can be an invaluable CNC accessory 🙂

3D files on Thingiverse:

https://www.thingiverse.com/thing:3521653

All files, including code, on Github:

https://github.com/drandrewthomas/ESP32_GRBL_CNC_Wireless_Pendant

Tagged : / / / / /

Controlling your CNC from Android using G-Code2GRBL

If you’ve added a Bluetooth wireless module to your CNC machine, you might be thinking of using an Android tablet, or even a smartphone, to do some wireless routing or LASER cutting. If so, you may be wondering what software to choose. So I thought I’d write a short post about my favourite go-to Android app for controlling my CNC machine: G-Code2GRBL which is available on the Play Store. While I can only give my personal opinion, I find it excellent. It gives all of the functions I need in a nicely designed interface, as the screenshot below shows.

A screenshot of the G-Code2GRBL Android app

Once connected over Bluetooth to your CNC, G-Code2GRBL gives you a range of screens to choose from. The main ‘GRBL Control’ screen gives you buttons for jogging the XYZ axes (with step adjustment controls), buttons to zero XYZ positions, pause/reset buttons and a text-display of the GCode file being sent for routing/LASERing. The file to be sent can be chosen from the ‘Select files’ screen with just a few taps, which is nice. And another useful screen is the ‘Send Commands’ one. It lets you send your own one-line GCode commands for simple control, which is very handy for things like turning on a LASER (on low-power, obviously) for focussing, and turning it off again. Overall, I think it’s well worth a look if you’re after a way to control your CNC wirelessly from Android devices.

Tagged : / / / / / /

Add Bluetooth to make your CNC wireless

Most cheap CNC machines come with a GRBL controller board that communicates with a computer using a wired USB connection. There’s no problem with that if you want a computer near your CNC, but a much more convenient way to communicate with it is over a wireless connection. That way you can keep your valuable PC well away from potential hazards or even use an Android tablet or smartphone instead. And the easiest way to do that is add a Bluetooth module to the GRBL board if it has serial connections available.

So a bit of manual reading, and looking at the boards’ circuit diagram, are necessary. You’ll be looking for connections for connecting wires to its positive (e.g. 3.3V or 5V) and negative (a.k.a. ground or earth), transmit (Tx) and receive (Rx) headers. Normally they’ll be on pins soldered into the board. Then you need a Bluetooth-serial module which are a few pounds/dollars on eBay or Amazon: I used a HC-05 which is commonly available. The module will need its name and communications speed set up first and I’ve put some tips on that at the bottom of this post.

Then the Bluetooth module needs a connection from positive to Vcc and from ground to GND, to power it. The Tx on the GRBL board goes to Rx on the Bluetooth module and, similarly, Rx goes to Tx. I’ve put a diagram below that shows how I wired my HC-05 to my Woodpecker 3.1 GRBL controller board, which is quite common on cheap Chinese CNC machines. Sometimes Tx and Rx connections are reversed on the Bluetooth modules, so if you have problems you can try swapping them over. And to make it easy to get started consider using female-female jumper wires (i.e. sockets both ends) for the connections, like I used in the photo above, before committing yourself.

Circuit diagram for an example Bluetooth wireless connection
Hopefully now your Bluetooth module will flash an LED when the CNC is powered, to tell you it’s waiting for a connection. If not, check everything carefully, especially your positive and ground wiring. If that’s OK you should be ready to pair with your PC or Android device and have fun doing wireless CNC’ing.

Setting up a HC-05 Bluetooth module with an Arduino

If you know nothing about microcontrollers then now is probably a good time to find a friend who does, or even try to talk an online supplier into doing the setup when you buy. However, it isn’t really very difficult if you have an Arduino as you just need to wire the HC-05 to it as described for the GRBL board above (see www.arduino.cc for help on your particular board). The code below can then be used to set the Bluetooth module to be called ‘CNC’ (which you can change) with a speed of 115200 bits/second. Most modern GRBL boards communicate at that speed but if yours is quite old, and uses 9600 bits/second, you can change ‘BAUD8’ to ‘BAUD4’ or simply remove that line. And then, hopefully, your HC-05 module is good to go.

void setup()
{
  Serial.begin(9600);
  delay(1000);
  Serial.print("AT+NAMECNC");
  delay(1000);
  Serial.print("AT+BAUD8");
}

void loop(){}

Tagged : / / / / /