Why in the world does the S5Pro use a dinky little ATMEGA instead of the ESP32 that's already on the board!?

I’ve been setting up a Shapeoko 5 Pro for my makerspace and decided to take a closer look at the controller board. The ESP32 up in the corner of the PCB immediately grabbed my attention, as it would potentially mean some nice upgrades in the future. But today I looked at the source code someone posted and noticed that it was configured for an ATMEGA. Huh?

Another look and, sure enough, there’s a tiny little ATMEGA in the middle of the board. So what is the ESP32 for and why isn’t it being used to power the machine?

They are using the ATMEGA because GRBL runs on it and has done so stably for years now. Carbide3D has been a supporter of the GRBL project for some time. I am aware that there are 32bit ports of GRBL for things like the ESP32 but I do not get the impression that Carbide3D has any desire to switch as long as they are able to do what they want on the extremely reliable ATMEGA.

The ESP32 is being used as a USB to Serial adapter. I know that they spent a lot of time working on adding isolation between the CNC controller and the PC to prevent disconnects which was a problem in their earlier CNCs. There are quite a few opto couplers on the board and the ESP32 seems to get powered through the USB connection and the ATMEGA gets powered from the CNC power supply. Why they choose to use an ESP32 and not some other USB to Serial adapter is probably so they can potentially add wireless capabilities in the future, but that is merely speculation.

7 Likes

Oof. Ok.

Though the fact that an ESP32 can buffer significantly larger chunks of a program makes that effort seem a bit silly. Doubly so when they’d have the ability to easily add large amounts of non-volatile storage, and therefore buffer the entirety of the program at once. This has been the norm for other families of CNC (such as 3D printers) for years.

I get the feeling like they’re only doing this to avoid having to release anything under the GPL.

Only doing what? As far as I know, all the CNC firmware is still open.

Keeping the device permanently centered to a computer.

I’d like to see an upgraded controller as well, and I’d bet they are working on it, but I’m not convinced Carbide 3D would limit improvements to avoid releasing firmware.

1 Like

Couldn’t anyone build another controller for this machine? As I understand it, as long as you know how to wire up drivers, power supplies and other components you could switch to any contolling software right?

Yes…

Yep. I’ve come close to it, but my back up plan for when I get tired of Carbide Motion, is to run it with Mach 3. It would require I buy Warp9’s Smoothstepper, a breakout board, a set of Geckodrives, and build a toroid power supply. I’ve already have a Windows PC to repurpose.

But it hasn’t come to that, yet.

My Shapeoko 3 is running a Duet3D 6HC which works amazingly. It is just a matter of wiring it up correctly. At some point I plan on making the same conversion on my company’s S5 Pro and will be documenting the changes.

4 Likes

That was on my list, but needed more study to implement it. I built my Folgertech 3D printer using the Duet 2.

Only draw back is that I need to run a paid for copy of Carbide Create so I can run a custom post processor, as there were some minor compatibility issues between the GCode. The is a Fusion360 post processor that you can use with the free copy of Fusion 360 though.

I would expect that wouldn’t be necessary with a board which runs a GRBL variant.

Probably not. If I recall correctly the Duet did not like comments being in the middle of a G0 / G1 command. So like this:

Line 1. G0Z-24.750
Line 2. Z5.000
Line 3. (Contour.Toolpath.4)
Line 4. M03S18000
Line 5. X-58.232Y-57.473
Line 6. G1Z-1.000F304.8

would cause the Duet to skip line 2 for some reason and go right to line 4. I am not positive but I think Duet fixed that at some point. I still use the custom post processor because it lets me add custom GCode for more advanced Duet features like my custom spindle control. Things like telling the Duet to complete its look ahead buffer before changing spindle speed.

I know nothing about board mounted electronics. It’s over my head. I can say that going from an s3 to an s5 is amazing just in the emi resistance in the new controller. My spindle caused major issues with my s3. Have never had a disconnect on the s5

2 Likes

Yes.

I have built several versions, using grblHAL and FluidNC. It really isn’t difficult, using commercially-available boards like Bart Dring’s 6-pack (various versions) running either FluidNC or grblHAL, or the T41U5XBB board using Teensy4.1 for grblHAL. In each case, I’ve used the MKS 2160 motor driver boards that happily run the 5Pro motors while remaining cool (below 40C) at full load. My favorite is the Bart Dring 6x board running gerblHAL, in combination with Universal GCode Sender (UGS) as CAM.

I needed a solid solution for PCB boards using height mapping - which is not available in CM at this time - and I wanted a backup solution due to the number of reported failures of the CM controller.

Just don’t expect CM to work with it.