My first motive for replacing the controller board was to add a rotary axis, without having to switch constantly between Y and A control.
I researched and found a stepper-driven 4-axis chuck that would suitable for CNC addition, with a stepper of similar capacity and drive requirements to the existing machine (ShapeOKO 3XL). There was no point considering a higher capability rotary as it would not be matched by the rest of the machine.
The KeyeStudio PCB is Atmel 2560 based with 5 axes, and can use step-stick (look at Pololu modules for what these are) driver OR headers for external, higher capability drivers. I did look at the Duet and others, but their capability and level of ‘difference’ to the stock board seemed excessive considering the relatively modest change (rotary) and that the S3XL is not a super-power machine… I think I paid $21 from either AliExpress or Amazon - I will dig out a link. Being a 3D printer/CNC targeted controller, it has some additional I/O that may prove useful in future, but not currently used.
Reading up on the stepper drivers on the S3 standard PCB, then looking for a reasonable match, I settled on the TCM2209 step-stick drivers as ‘entirely capable’ and the comfort of knowing the new PCB could also drive external driver modules should that prove necessary. Cost from Amazon was something like $7 per.
I was also only seeking to add rotary axis awareness to the GRBL side, to match Vectric VCarve or Fusion 360 rotary axis designs and output, and proven post-processor such as Neil Ferries. Working back from sender apps, given that CM doesn’t support the extra axis, I settled on UGS in the end and got involved helping to improve various aspects - to encourage the work on rotary visualisation development that is beyond my skill set (I worked on macro enhancements and inline interpreters).
This also pointed me towards one of two GRBL enhancement projects, the ‘official’ branch who seemed to be some way off a working product, and the GRBL MEGA-5X branch who already had it working AND on the Atmel 2560 processor. I tweaked the config to closely match the original Carbide/ShapeOKO setup, added in the rotary axis config, and compiled/uploaded this using the Arduino.cc IDE tool (free, and freely available). Runs on Win, Mac and Linux/Pi and needs nothing more than a USB port to be able to program Arduino or Arduino-like boards.
Read up on how to choose and then calibrate the micro-stepping, current etc parameters for the stepper drivers and ran some test cuts to compare behaviour of the machine before and after upgrade. I then spent some time working out the best acceleration and speed parameters for GRBL $$ on the A axis.
Bought an extruded enclosure, used the S3 to cut end panels and wired it in neatly. Only slightly larger than the original S3 controller box, mostly because I added in a couple of tiny fans - just in case I had been a little optimistic in choosing the 2209 stepper drivers. The fans are not necessary, but nice to have.
So if you want to build basically ‘like for like’ and add Rotary, the above is an example of how to achieve that. If you want to upgrade and upgrade because that’s cool too, then some of the other posts have share their journey and preferences.
Links to the key bits: