# STEP-NC Compliant Intelligent CNC Milling Machine with an Open Architecture Controller
## 1 Introduction
Both of these applications can interpret only ISO 6983 standard data, and thus do not comply with STEP-NC standards. [PERSON] demonstrated a woodworking router operate on Raspberry Pi with Linux CNC software [25]. [PERSON] used Raspberry Pi and Universal Goode Sender to control an existing router [26]. Both of these implementations are merely replacements of a PC with a Raspberry Pi SBC. Another CNC router implementation was done by [PERSON] on Raspberry Pi with the new version of grbl called grblHAL [27]. The grblHAL was developed especially for 32-bit operating systems and processors, such as Raspberry Pi, in contrast to grbl, which was released to 8-bit controllers, such as Arduino Uno. An advanced g-code sender, bCNC, was used with the grblHAL instead of the Universal Goode Sender. The bCNC is a robust and fast cross platform (Windows, Linux and Mac) application written in Python to transfer data and handle other functions. However, none of these developments comply with STEP-NC standards. In this research, the authors developed a STEP-NC complaint CNC milling machine that can be used as a test rig for future research. A Raspberry Pi 3 Model B+ SBC was used as the main controller of the CNC machine. The Raspberry Pi OS (previously called Raspbian) operating system-based environment was used for all related developments. The main coding was written in C++ programming language and HMI was programmed with the aid of Qt for flexibility and to achieve fast data update on the screen. Raspberry Pi SBCs are readily available in the market at a low cost. Unlike for PC-based systems, built-in GPIO pins of the SBC connect signals from and to the machine, which is an added advantage. A complete standalone OAC software is developed without using expensive commercial software. It is worth noting that no OAC STEP-NC-compliant CNC developments carried out on SBC are reported in the literature. The developed machine can be used to enhance the capabilities introduced in STEP-NC standard. The slave IO card supports more analog and digital signals to connect sensors to monitor cutting conditions. This will be helpful to predict better cutting conditions and regenerate the tool path for machining. The micromilling technology refers to ultra-precision machining with sub-micron accuracies. The conventional cutting conditions cannot be used in micromilling by simply downscaling. [PERSON] et al. proposed a tool for the selection of micromilling process parameters [28]. [PERSON] et al. proposed a utility for toolpath optimization and to estimate cutting forces in machining complex surfaces [29]. Both of these implementations are planned for the CAM stage. Such implementations can be integrated into the newly developed controller itself since it is operating on OAC and STEP-NC. The quality of the machined product is mainly dependent on the accuracy of the machine tool. Errors in machining reduce the accuracy of the machine and affect the quality of the end product. Geometrical errors, thermal errors, kinematic errors, stiffness errors and errors due to the deformation of cutting tools and machine tools are considered the primary sources of errors related to machine tools [30]. Out of those errors, the geometrical errors that originate due to mechanical imperfections are the highest contributors towards the errors in machine tools. In addition, the thermal errors due to the temperature variations of the machine resulting from internally generated heat and environmental changes also have a significant negative impact on the accuracy of a machine tool [31]. In this paper, hardware development of the newly developed CNC machine is described in Section 2. The mechanical system and electrical system are detailed in this section. Software development that includes control algorithms and HMI design is described in Section 3. Section 4 includes the verification of the execution of the STEP-NC program.