Teensy 4.1 Based CNC Controller

I had a look at the grblHAL repositiory. It indeed has much improved lathe support. Looks like I have a nice winter project :)
 
I've built up one of these boards as a replacement for for a g2core based CNC setup on a mill. I had been using ChiliPeppr to control it, and was pretty happy with that setup partly because it's one of the few controller setups that runs on a Macintosh. I've got an old Mac laptop that I'd like to continue using for this. My initial testing showed that ChiliPeppr grbl 1.1 doesn't work well with grblHAL. It'll run the motors, but the position counters and 3d preview don't update.

I have a Windows PC in my home office that I use for computer graphics, and I have been testing the board with that running the Universal Code Sender GrblHAL fork, and that works, but I'd rather not have to get another windows PC just to run it.

Anyone know of a Gcode sender that runs on a Macintosh that will play nicely with this controller?
 
Hi John. Have you tried grblHAL with compatibility settings? It takes a recompile though I have prebuilt 3, 4 and 5 axis versions on the github page. Or, you can build it yourself from the grblHAL github site. Follow the instructions in the wiki. The recently introduced changes to the build system make it easy to configure.

On senders - UGS and bCNC work with grblHAL built with compatibility settings as well. Most java based senders work though you might have to play with the compatibility settings. (I think a section in the wiki needs to be created.)

If you use a Windows PC, your best bet is the CGode Sender built for grblHAL. It truly is the best one out there. Even though it is in a "pre-release" state, beta 6 is very stable. I have been using it for a while now. Just recently I used it to make quite a few signs for a recent wedding and they all came out great. Visualizations are realtime. It's grbl config section is head and shoulders above the other senders. It's probing capabilities are outstanding - especially height map probing to mill/route uneven surfaces. Great for engravings and PCB milling. Works with simple contact probes as well as 3D probes. If you use it, be sure to check the site regularly - Terje, the developer, is actively adding features as well as fixing bugs.
 
Ah, I didn't know about the compatibility setting builds. I'll give that a try, thanks.

I hear you on using the forked grblHAL Universal Gcode Sender. It does look like the best option. I was just trying to avoid getting another Windows PC to install in the garage when I already have an old Mac that's been doing the job for a few years now.

I figure these grblHAL controllers are likely the future of hobby cnc work, given that grbl on 8bit avr micro controllers is at a dead end. These faster and more capable controllers have so much more headroom for improved features and are getting to be so inexpensive these days that I've gotta imagine they'll be everywhere soon.
 
I'm hoping that the UGC and bCNC folks get grblHAL religion. It is capable of taking significant share from both grbl "classic" and LinuxCNC.

But, to be honest, java based GCode Senders have their limitations. It would be great to get a native IOS app but, since there isn't one for grbl classic, I won't hold my breath.

If you are going to be doing a lot of CNC work, it's probably worth getting a cheap/old Win PC (even win7) to run the sender I linked to previously. It supports ethernet which is highly preferable to USB. My BoB also supports ethernet, by the way, just add the magjack.
 
Hey buddy you are controller just looks amazing. i think you can help me as i am also looking for GRBL CNC Controllers and i don't know how to make them so looking to purchase. So according to you which controller will be good for me. My requirement are :-

Supports 4 axis
Supports integration with 3 stepper motors
and if its comes in good price range then it will be jerry on the cake. I also check one article on these GRBL CNC Controllers and got some good recommendation but want to know other options from community.
You controller is also just awesome.
Did you make customized cnc controllers ? If yes, then i think you can help me
Or if you know any best option then plz let me know

Either way have a good day
 
Hey buddy you are controller just looks amazing. i think you can help me as i am also looking for GRBL CNC Controllers and i don't know how to make them so looking to purchase. So according to you which controller will be good for me. My requirement are :-

Supports 4 axis
Supports integration with 3 stepper motors
and if its comes in good price range then it will be jerry on the cake. I also check one article on these GRBL CNC Controllers and got some good recommendation but want to know other options from community.
You controller is also just awesome.
Did you make customized cnc controllers ? If yes, then i think you can help me
Or if you know any best option then plz let me know

Either way have a good day
Well, all the controllers on that list are based on the old 8-bit Arduino design and only support 3 Axes. Also, a lot of them don't have any isolation or noise control so EMI can cause problems like controller reset while running. In my design, I have tried to use best practices to minimize EMI problems. It supports up to 5 Axes so that meets your needs. My board is available on Tindie and you can learn more about it here.
 
Hi all.
I have this board and this is best choise.
I overclock my teensy 4.1 to 1Ghz with extra cooling.
I have write my cnc controler with s-curve acceleration. My max speed is 80mm/s. Teensy calculate next motion below < 10 us. And this is my interpolation time. Pulse width is 2us.

Work perfect. I dont like any grbl. For me best way is write own software to this board. In c# I have software to comunicate with teensy. With grbl i have all time problem. So no tnx :)
 
Hi all.
I have this board and this is best choise.
I overclock my teensy 4.1 to 1Ghz with extra cooling.
I have write my cnc controler with s-curve acceleration. My max speed is 80mm/s. Teensy calculate next motion below < 10 us. And this is my interpolation time. Pulse width is 2us.

Work perfect. I dont like any grbl. For me best way is write own software to this board. In c# I have software to comunicate with teensy. With grbl i have all time problem. So no tnx :)

Are you sharing your code? Got a github site? Though, 80 mm/s (4800 mm/min) is not very fast. For lasers, 70K mm/min has been achieved with a stock T4.1 running grblHAL, according to the developer.

By the way, there are extensive guidelines for communicating with Grbl boards in the Grbl Wiki. There are some nuances that need understanding to ensure a good connection and high performance.
 
I have github but i dont share my code.
I know that 80mm/s is not fast.
All my calculation when i send command to controller is executet between pulse when machine work. In 10us interval. This limit the speed. But is posible make more speed when i change litlebit my code.
I use grbl one or more years but same time was problem with communication or machine. So i wite my code.
For example when i use G2 or G3 code i dont create linear move in circle like in grbl.. And when i use s curve max speed is limited by distance, acceleration and jerk.
Sorry i dont write good in English. :)
 
Hi Phil,
I bought my Teensy4.1 NC board a few months ago and just getting back to it now.
I have a custom machine (not a chip cutter, laser cutter, or a 3D printer) that uses independent X, Y, Z, A and B axes. I needed 5 axis stepper control, so I got your card.
Theoretically it should be pretty straightforward to set up and control. Theoretically... famous last words...
I have ran an Arduino and a Raspberry Pi for 3 axes control in the past.
This is my first project with an NC board that interprets G-code.

Couple of Questions;
1) Is there a total noob's guide to how to get it working? Found this link on your github but looks like some of the folders referenced in this guide are outdated. https://github.com/phil-barrett/grblHAL-teensy-4.x/blob/master/grblHAL Build Guide.pdf
2) Must I solder the Teensy4.1 onto the board per the user manual? is there an IC socket I can solder to the board first? I am worried that if I toast the Teensy for some reason, I will not be able to replace it.
3) I realize that the kit requires quite a bit of soldering. Although I have a decent soldering iron and helping hands stand...etc... I have limited experience with soldering. What are the chances of damaging the board because I let the solder iron touch the terminals for too long?
 
Hi Phil,
I bought my Teensy4.1 NC board a few months ago and just getting back to it now.
I have a custom machine (not a chip cutter, laser cutter, or a 3D printer) that uses independent X, Y, Z, A and B axes. I needed 5 axis stepper control, so I got your card.
Theoretically it should be pretty straightforward to set up and control. Theoretically... famous last words...
I have ran an Arduino and a Raspberry Pi for 3 axes control in the past.
This is my first project with an NC board that interprets G-code.

Couple of Questions;
1) Is there a total noob's guide to how to get it working? Found this link on your github but looks like some of the folders referenced in this guide are outdated. https://github.com/phil-barrett/grblHAL-teensy-4.x/blob/master/grblHAL Build Guide.pdf
2) Must I solder the Teensy4.1 onto the board per the user manual? is there an IC socket I can solder to the board first? I am worried that if I toast the Teensy for some reason, I will not be able to replace it.
3) I realize that the kit requires quite a bit of soldering. Although I have a decent soldering iron and helping hands stand...etc... I have limited experience with soldering. What are the chances of damaging the board because I let the solder iron touch the terminals for too long?

1) that is the most current build guide. which folders are out of date? I will fix. (I know the repository is messy, I fully admit to not being a github pro)
2) you can use a socket for the T4.1. I recommend soldering in place because CNC environments generally have pretty high vibrations. I do socket some of my teensys in test boards. However, there is a complexity to socketing when ethernet is used. The manual has a listing of the specific headers needed for ethernet to work in a socketed setup. Also 1x24 pin sockets are fairly hard to find, I usually cut down longer ones. Though, protosupplies has them.
3) The through hole components you solder onto the breakout board are mostly just connectors (one potentiometer). You can damage them if you try. Generally, it's not that likely. The pin header's plastic could soften up a bit if you leave the iron in place too long. I usually back off after about 3 seconds if the solder isn't flowing and try again after cleaning the iron's tip. Wet the tip with a bit of solder to make for better heat transfer. It's not the end of the world if you ruin a pin header. Pretty easy to remove, clean up with solder wick and try afresh. My assembly kits do give a few extra pins. The screw terminals are a little more resilient - more thermal mass in the plastic. There are lots of how to solder videos on the internet.

Also, you don't need to install all the terminals and headers, just the ones you will use. Though, adding screw terminals later is an issue because they interlock so I recommend install all of them.
 
Hi Phil,

Thanks for the reply. I have managed to solder most of the blocks and pins.
I notice that my board has a few deviations from the docs I found online.

The var resistor I have received is blue and flattish rectangular shape with 3 legs. I see that the photo of the board shows a square var resistor and looks like my board expects it to have 4 legs. I am trying to upload a photo but this site does not allow me to upload from my phone.
https://imgur.com/a/6F9lbG7

https://imgur.com/a/XGycROq

How do I proceed with this resistor?

Ser1 in the documentation show 3 pins (TX, RX, Gnd). My board has an extra pin for 3.3V that is between RX and Gnd. Do I ignore this pin and not solder?
 
See the attached photo of the correct orientation of the Trimmer Potentiometer. The footprint on the board accepts 2 different styles of trimpots. I moved to a higher quality multiturn trimpot. Ignore the 4th hole.

The document needs to be updated with the V2.09 board details. The serial interface has the 3.3V pin added so please solder in a 4 pin header for that.

IMG_20210118_151823_DxO_2048.jpg
 
See the attached photo of the correct orientation of the Trimmer Potentiometer. The footprint on the board accepts 2 different styles of trimpots. I moved to a higher quality multiturn trimpot. Ignore the 4th hole.

The document needs to be updated with the V2.09 board details. The serial interface has the 3.3V pin added so please solder in a 4 pin header for that.

View attachment 23572

Thanks a bunch Phil.
So I will solder the trim pot with all the legs in line.

Last but not least the header pins on the Teensy 4.1.
I followed the pics like a sheep and soldered the ethernet pins although my Teensy does not have the ethernet port.

I was about to solder the 5 pins in front of those and thought I would ask. Do I need these 5 pins?
https://imgur.com/a/Tx7SRJM
 
No problem with the ethernet pins. The 5 pin header (actually both 5 pin headers) does not need to be soldered.
 
Hi Phil,

My PC can not see the Teensy in the Arduino IDE. I have tried this on 2 different PCs with 3 different USB cables.
It looks like I possibly have a bad Teensy4.1 (yes, after having soldered the Teensy on to the CNC board).
It gets power. Stops blinking the light when I push the tiny button on it. But when it comes to communicating with the Arduino IDE - no dice.

For future newbies you might want to advise them to troubleshoot the Teensy by itself prior to soldering on to your board. I should have done this.
Is there a way to desolder(unsolder?) the bad Teensy and recover the CNC board? Do I start all over?

I am really bummed out about this outcome. Apparently this is a recurring theme with the Teensy boards where the PC does not recognize the device. I was advised to try a 4th USB cable.
What are my options going forward? I don't want to spend more money on another Teensy to have the exact same experience.
Do you sell finished boards with the Teensy already tested out?
 
Apparently this is a recurring theme with the Teensy boards where the PC does not recognize the device. I was advised to try a 4th USB cable.

3D2Code:

You may have misunderstood a comment somewhere. The recurring problem w/ an unrecognized Teensy almost always turns out to be either a bad USB cable or use of a power-only charging cable. As Frank B indicated in the other thread, Paul programs & tests each & every Teensy before shipping. Inspecting all of your soldering with a good magnifying glass and/or microscope for shorted pins, solder balls, bridges, etc. where you installed your Teensy on the PCB would be the first & most likely place to look.

Good luck & feel free to ask any other questions that you may have.

Mark J Culross
KD5RXT
 
Hi Phil,

My PC can not see the Teensy in the Arduino IDE. I have tried this on 2 different PCs with 3 different USB cables.
It looks like I possibly have a bad Teensy4.1 (yes, after having soldered the Teensy on to the CNC board).
It gets power. Stops blinking the light when I push the tiny button on it. But when it comes to communicating with the Arduino IDE - no dice.

For future newbies you might want to advise them to troubleshoot the Teensy by itself prior to soldering on to your board. I should have done this.
Is there a way to desolder(unsolder?) the bad Teensy and recover the CNC board? Do I start all over?

I am really bummed out about this outcome. Apparently this is a recurring theme with the Teensy boards where the PC does not recognize the device. I was advised to try a 4th USB cable.
What are my options going forward? I don't want to spend more money on another Teensy to have the exact same experience.
Do you sell finished boards with the Teensy already tested out?

Hmmm. I have seen this before and always was able to get it to respond. If it is blinking, the teensy is running the blink sketch so it is getting power from the USB cable and functioning enough to start the sketch.

Assuming you are on Windows, can you open the device manager and look at the Ports entry? Is there a USB serial device listed?

In the Arduino IDE, what happens when you try to use the serial monitor? What does the Arduino IDE Tools/Port flyout tell you?

Also, open the Teensy Loader so it is on the screen and, with the teensy connected via USB, press the program button. Do you see any activity on the Teensy Loader?

We'll get you through this. I won't let you fail.
 
Hi Mark,

Thanks for the clarification.

Turned out it was the USB cable after all. Hard to believe that all 3 cables I had were junk.
I went to the Micro Center nearby, and bought a brand new cable. It solved the problem.
Looks like my soldering turned out okay despite my earlier concerns.

https://imgur.com/a/IVv44RX
 
Thanks Phil. Turned out it was the USB Cable. This is something you might want to emphasize in your documentation.
I know it was mentioned several times on this forum and I thought I was covered because I was using 3 different USB cables. Turns out they are all junk for data transfer.

I am on Windows 10.
Here is what was happening before;
The Arduino IDE would not even recognize the port. I did look at the Device Manager and it was the same thing.
On the Teensy Loader, every button would be grayed out except for the Auto button (the one in green).
I did not try monitoring the Serial Port on the Arduino IDE because - the port was grayed out.
 
Glad it worked out. So many times what looks like a dead board is because of crap cables or power supply or broken PC or ...
 
Excellent !! Very glad it is working after all. <sarcasm>Gotta wonder how much money a company can actually save by leaving those two data wires out when compared against the cost of all of the other components that go into the cable ?!?</sarcasm>

Good luck & have fun !!

Mark J Culross
KD5RXT
 
Config files

Glad it worked out. So many times what looks like a dead board is because of crap cables or power supply or broken PC or ...
So now I am trying to burn the config file onto my Teensy CNC Controller.
Got a few more questions;
1) What is the difference between the 4/5 axis usb compat and 4/5 axis usb no opts?
2) I currently have 4 axes on my machine, but will incorporate a 5th one down the road. Is there a disadvantage to going with the 5 axis config from the get-go?
3) In the grblHAL Build Guide document under Build an Enhanced Version says something about modifying the config.h file and rebuilding. I am not a C programmer, but I do remember building and compiling stuff from my Fortran days with Makefile. Do I need to find a compiler for this? Are these the instructions I need to follow -> https://www.pjrc.com/teensy/gcc.html ?
4) For the time being, I have loaded the grblHAL-5XU-compat.hex onto the Teensy using the TeensyLoader. Do I still need to get up to speed on how to rebuild/compile the C program?
 
Compat means compatibility mode is set so you can work with senders that can't handle anything but the original Grbl. The good news is the big ones (UGS and bCNC) run will without compatibility mode. In my opinion, the best sender out there is ioSender. Only runs on Windows though I've heard it runs pretty well in a Windows VM on Linux. You definitely want to use native mode (ie, not compat mode) because it unlocks a lot of grblHAL features that don't exist in plain old Grbl.

There is no penalty for using a 5 axis config on a 4 axis machine.

If you want to build grblHAL, install arduino and teensyduino. Then take a look at the grblHAL wiki section on Compiling grblHAL. If you are using ethernet, you will need to install the networking library.
 
Back
Top