Conclusion

Traditional CNC control systems require extensive real-time calculations and careful timing to allow for coordinated movement in multiple axes. This in turn requires more expensive chips with floating point math capability. By making use of Core Independent Peripherals (CIPs) to handle the majority of real-time control, and pre-calculating the necessary math on an attached Python program, an inexpensive 8-bit microcontroller can achieve the same results.

When running the test G-code (as shown in Appendix C: Star G-Code), the following output (Figure 5-1) was drawn on a piece of paper by the machine.

The machine is able to draw any pattern defined in a series of straight lines. The speed of motion is variable and acceleration occurs at the start and end of motion to prevent any skipping. The ability to handle curves could be added as an improvement, possibly by providing a Look-Up Table of X and Y increment values that will achieve the desired curve from the Python GUI. At this time, the end effector is only capable of raising and lowering. An alternate system that allows for variation in intensity (e.g., a laser) could be considered.

Figure 1. G-Code Output