Using Ethernet with grblHAL on a Teensy 4.1
I've used Grbl for years on my CNC machines but always connected via USB. While, for the most part, it worked well there were a number of glitches that required me to power cycle my Arduino Mega based controller. Even with a high end USB cable with noise suppressor, I was regularly getting hangs every couple of days due to USB cable noise. I tried a number of things but nothing seemed to help. I often looked enviously at upmarket solutions that had Ethernet connectivity.
One of the things that excited me about the grblHAL project was Ethernet connectivity. So when I set out to design a grblHAL breakout board, Ethernet was at the top of my list. Fortunately, the Teensy 4.1 includes a Ethernet PHY so all you have to do is add a MagJack and a few resistors and capacitors.
I sent the board off to the assembly house without testing it as Ethernet support in grblHAL for the Teensy was not quite ready. I figured if it didn't work it wasn't the end of the world. I was only making 10 boards. But amazingly enough when I plugged the Teensy in, it just worked!
Here is one of my boards in a small extruded aluminum router. You can see it's connected via Ethernet. I have been running with this configuration for about a month now and have yet to power cycle the breakout board. It has been rock solid!
One of the really great things about grblHAL is how easy it is to bring up a system on Ethernet. I see reports of people having problems hooking up high end motion controllers to Ethernet but not so with grblHAL.
You edit the my_machine.h configuration file, uncomment the Ethernet define statement, rebuild and upload the firmware to the Teensy. Or just use one of my prebuilt binaries and upload it. Using a standard Ethernet cable, connect the breakout board to an Ethernet switch, start grblHAL up and connect your GCode sender via USB. In the console you can see the IP address so you write it down and exit your sender. You restart the sender with the IP address as the port and you are up running via Ethernet. You can then make Ethernet the default and you will never have to go back to USB. That's it!
That's another example of how grblHAL brings you high end features.
If you want to learn more about using Ethernet with grblHAL, take a look at the user manual for my breakout board.