Fault Detection in 3D Printing: A Study on Sensor Positioning and Vibrational Patterns

This work examines the use of accelerometers to identify vibrational patterns that can effectively predict the state of a 3D printer, which could be useful for predictive maintenance. Prototypes using both a simple rectangular shape and a more complex Octopus shape were fabricated and evaluated. Fast Fourier Transform, Spectrogram, and machine learning models, such as Principal Component Analysis and Support Vector Machine, were employed for data analysis. The results indicate that vibrational signals can be used to predict the state of a 3D printer. However, the position of the accelerometers is crucial for vibration-based fault detection. Specifically, the sensor closest to the nozzle could predict the state of the 3D printer faster at a 71% greater sensitivity compared to sensors mounted on the frame and print bed. Therefore, the model presented in this study is appropriate for vibrational fault detection in 3D printers.

With the use of sensors [41], vast contributions have been made by researchers for reliable in situ monitoring, and several approaches to mitigate unwanted vibrations caused by unintended movements in the 3D printer, which often result in loss of product quality, deterioration, and damage of the machine [22,42], have also been developed.The acoustic emission technique was used [3] to determine the machine's condition.Li et al. [9] Sensors 2023, 23, 7524 2 of 29 used vibration sensors to detect normal and filament jam states of an FFF machine, and to predict the product quality during the FFF process using two data-driven methodsthe least squares support vector machine (LS-SVM) and the back-propagation neural network (BPNN); however, the filament jam was not studied at various printing or extruding temperatures.Similar fault diagnosis methods were also used by Kun et al. [43].Guo et al. [23] used the Transfer Support Vector Machine (TSVM) technique for fault diagnosis.Jhodkar et al. [8] created artificial conditions for nozzle clogging by reducing the print temperature of polylactic acid (PLA) which gradually altered the layer thickness and observed the vibrational change in amplitude through an accelerometer.Tlegenov et al. [11] also monitored the nozzle condition in 3D printing but in a more fascinating approach through a gradual reduction of the nozzle extrusion temperature of PLA, acrylonitrile butadiene styrene (ABS), and SemiFlex filaments for both direct and bowden types of FFF extruders with an accelerometer.The changes in amplitude observed in [8,11] were not qualitatively analyzed, and using the Fast Fourier Transform (FFT) can be challenging when used to distinguish between the normal and clogged state of the 3D printer because both states can occur at a similar frequency.Zhang et al. [31] optimized the vibrational characteristics of a colored 3D printer using finite element modal (FEA) analysis to obtain the natural frequency of colored 3D printers and compared it with the mechanic's theoretical dynamic characteristics.Using frequency domain analysis, the power spectrum of the vibrational signal was analyzed and the resonance position of the 3D printer was obtained by comparing the experimental analysis with FEA.Chuan et al. [22] used a deep learning method, Fusing Convolutional Generative Adversarial Encoders (FCGAE), to detect faults with only normal condition signals.Zhang et al. [30] used an acceleration sensor-based vibration test to explore the relationship between clogging and vertical vibration characteristics of the nozzle under different feed parameters.They affirmed that higher feed torque can be used to improve the feed speed and eventually improve the quality of color mixing nozzle 3D printers but using vibration acceleration amplitude alone to quantify the difference in vibration during blockage is not clear enough since both normal and abnormal states of printing occur at the same frequency.Rao et al. [44] identified failure mode and anomalies in FFF using Bayesian non-parametric analysis and Evidence Theory for in situ heterogeneous sensor data-thermocouples, accelerometers, infrared temperature sensor, and a real-time miniature video borescope.Gomathi et al. [45] did not explicitly analyze or propose any condition-monitoring technique after stating the three obvious printing motions (continuous, point-to-point, and zig-zag motion) observed during the operation.
While a few studies have employed machine learning, an approach to check the vibrational fault induced on the nozzle, frames of the printer, and the print bed has not been developed.The use of FFT has been found to be primarily employed to analyze the vibrational signals, but limitations in its ability to provide a comprehensive analysis and effectively classify faults have been observed.To address this, a novel approach has been presented that combines multiple techniques, including FFT, spectrogram, Principal Component Analysis (PCA), and Support Vector Machine (SVM), to comprehensively analyze vibrational signals obtained from different printing conditions and identify and classify faults.The results of this study have demonstrated that the proposed approach is more effective in identifying and classifying faults than prior methods, thus addressing the research gap and providing a valuable contribution to the field of vibrational analysis during fabrication.

Materials and Methods
The printer and sensors in this work were chosen for their general availability and applicability.The ADXL335 accelerometer was chosen for this study due to its high sensitivity and ability to measure acceleration across three axes, making it ideal for capturing the complex vibrational patterns associated with 3D printing.Furthermore, its signal-conditioned voltage outputs allow for easy integration with data acquisition tools like LabVIEW.On the other hand, the Lulzbot Mini 3D printer was selected due to its widespread use in both ed-Sensors 2023, 23, 7524 3 of 29 ucational and professional settings, making our findings broadly applicable.Additionally, its open-frame design allows for easy placement and adjustment of sensors, facilitating a more comprehensive analysis of the printer's operation.
Figure 1 shows the experimental setup that is used for in situ monitoring.In this work, three accelerometers with the model number ADXL335 were used to properly access, monitor, and measure the operating state of a Lulzbot Mini 3D printer by collecting operational vibration signals under different printing conditions.The ADXL335 is a complete 3-axis accelerometer with signal-conditioned voltage outputs, and it measures acceleration with a minimum full-scale range of ±3 g.Also, it has a typical sensitivity of 270 mV/g.These sensors were mounted in different positions (the nozzle, the frame, and print bed) on the Lulzbot mini 3D printer and connected through a National Instrument tool (NI 9202) to LabVIEW to collect the time-domain vibrational signals.These signals acquired were post-processed, analyzed, and visualized using MATLAB.
The printer and sensors in this work were chosen for their general availability and applicability.The ADXL335 accelerometer was chosen for this study due to its high sensitivity and ability to measure acceleration across three axes, making it ideal for capturing the complex vibrational patterns associated with 3D printing.Furthermore, its signal-conditioned voltage outputs allow for easy integration with data acquisition tools like Lab-VIEW.On the other hand, the Lulzbot Mini 3D printer was selected due to its widespread use in both educational and professional settings, making our findings broadly applicable.
Additionally, its open-frame design allows for easy placement and adjustment of sensors, facilitating a more comprehensive analysis of the printer's operation.
Figure 1 shows the experimental setup that is used for in situ monitoring.In this work, three accelerometers with the model number ADXL335 were used to properly access, monitor, and measure the operating state of a Lulzbot Mini 3D printer by collecting operational vibration signals under different printing conditions.The ADXL335 is a complete 3-axis accelerometer with signal-conditioned voltage outputs, and it measures acceleration with a minimum full-scale range of ±3 g.Also, it has a typical sensitivity of 270 mV/g.These sensors were mounted in different positions (the nozzle, the frame, and print bed) on the Lulzbot mini 3D printer and connected through a National Instrument tool (NI 9202) to LabVIEW to collect the time-domain vibrational signals.These signals acquired were post-processed, analyzed, and visualized using MATLAB.An overview of the sensor system can be seen in Figure 2. Sensor 1 was used to monitor the nozzle vibrational behavior during normal and clogged situations; Sensor 2 was used to observe corollary vibrational variation on the frame of the 3D printer.Sensor 3 was used to diagnose the vibration from both the nozzle and printed material on the print bed.As such, the third sensor was used for quality control and to detect wobbling of the fabricated sample.An overview of the sensor system can be seen in Figure 2. Sensor 1 was used to monitor the nozzle vibrational behavior during normal and clogged situations; Sensor 2 was used to observe corollary vibrational variation on the frame of the 3D printer.Sensor 3 was used to diagnose the vibration from both the nozzle and printed material on the print bed.As such, the third sensor was used for quality control and to detect wobbling of the fabricated sample.
To ensure that the sensors were working effectively and efficiently, confirmatory tests were conducted via a shaker table to ascertain the sensitivity of the accelerometers at a frequency of 200 Hz and gravity of 0.2 g, 0.4, and 1.3 g.The sensors were placed precisely on the shaker table to validate this test.The time-domain datasets obtained from the three sensors were converted to the frequency domain using Fast Fourier Transform (FFT).A sample of the data collected from Sensor 1 (on the nozzle) is shown in Figure 3.The other two sensors performed equally well.As indicated in the figure, the sensors were functional and could detect vibrations at the set frequency.To ensure that the sensors were working effectively and efficiently, confirmatory tests were conducted via a shaker table to ascertain the sensitivity of the accelerometers at a frequency of 200 Hz and gravity of 0.2 g, 0.4, and 1.3 g.The sensors were placed precisely on the shaker table to validate this test.The time-domain datasets obtained from the three sensors were converted to the frequency domain using Fast Fourier Transform (FFT).A sample of the data collected from Sensor 1 (on the nozzle) is shown in Figure 3.The other two sensors performed equally well.As indicated in the figure, the sensors were functional and could detect vibrations at the set frequency.In these experiments, PLA (polylactic acid) was selected as the material for printing because it has minimal warping, produces little or no odor during printing, and has a lower melting point when compared to other filaments like ABS (acrylonitrile butadiene styrene).Additionally, it is non-toxic and safe to use.Both clogged and unclogged nozzles In these experiments, PLA (polylactic acid) was selected as the material for printing because it has minimal warping, produces little or no odor during printing, and has a lower melting point when compared to other filaments like ABS (acrylonitrile butadiene styrene).Additionally, it is non-toxic and safe to use.Both clogged and unclogged nozzles were studied in situ via the three sensors.A baseline of operation established for the normal FFF process was at 195 • C, 60 • C, and 60 mm/s for the extrusion temperature, print bed temperature, and feed rate, respectively.Abnormal or faulty FFF processes in the 3D prints were purposefully initiated for analysis.The nozzle was intentionally clogged by reducing the print temperature.This approach followed the clogging concept used unanimously by different researchers [8,11].A sampling rate of 3.0 kHz was used to assure computational integrity and efficiency.
Table 1 shows the operating conditions of the printer during testing.The nozzle was allowed to transition from normal operation with an unclogged state into printer functions that produced increasingly unacceptable final print products.As extrusion temperature was reduced, printer function became more limited and eventually non-functional (completely unacceptable) as indicated.This set the progression of tests that were monitored by the sensors.As the nozzle became more clogged, the sensors could accurately detect variations in the print state.The sensor mounted on the nozzle was the most sensitive because of the sensor's proximity and direct contact with the nozzle carriage.Figures 4-6 show the normalized acceleration-time graph of the sensors.The normalized charts were based on the raw voltage data collected by the sensors, converted to accelerations using the accelerometer's sensitivity of 270 mV/g, and normalized with respect to the maximum value of Sensor 1.Based on the amplitude of acceleration obtained from the normalized graphs above, sensor one was roughly 71% more sensitive than the other two.As the nozzle became more clogged, the sensors could accurately detect variations in the print state.The sensor mounted on the nozzle was the most sensitive because of the sensor's proximity and direct contact with the nozzle carriage.Figures 4-6 show the normalized acceleration-time graph of the sensors.The normalized charts were based on the raw voltage data collected by the sensors, converted to accelerations using the accelerometer's sensitivity of 270 mV/g, and normalized with respect to the maximum value of Sensor 1.Based on the amplitude of acceleration obtained from the normalized graphs above, sensor one was roughly 71% more sensitive than the other two.As the nozzle became more clogged, the sensors could accurately detect variations in the print state.The sensor mounted on the nozzle was the most sensitive because of the sensor's proximity and direct contact with the nozzle carriage.Figures 4-6 show the normalized acceleration-time graph of the sensors.The normalized charts were based on the raw voltage data collected by the sensors, converted to accelerations using the accelerometer's sensitivity of 270 mV/g, and normalized with respect to the maximum value of Sensor 1.Based on the amplitude of acceleration obtained from the normalized graphs above, sensor one was roughly 71% more sensitive than the other two.As the nozzle became more clogged, the sensors could accurately detect variations in the print state.The sensor mounted on the nozzle was the most sensitive because of the sensor's proximity and direct contact with the nozzle carriage.Figures 4-6 show the normalized acceleration-time graph of the sensors.The normalized charts were based on the raw voltage data collected by the sensors, converted to accelerations using the accelerometer's sensitivity of 270 mV/g, and normalized with respect to the maximum value of Sensor 1.Based on the amplitude of acceleration obtained from the normalized graphs above, sensor one was roughly 71% more sensitive than the other two.As the nozzle became more clogged, the sensors could accurately detect variations in the print state.The sensor mounted on the nozzle was the most sensitive because of the sensor's proximity and direct contact with the nozzle carriage.Figures 4-6 show the normalized acceleration-time graph of the sensors.The normalized charts were based on the raw voltage data collected by the sensors, converted to accelerations using the accelerometer's sensitivity of 270 mV/g, and normalized with respect to the maximum value of Sensor 1.Based on the amplitude of acceleration obtained from the normalized graphs above, sensor one was roughly 71% more sensitive than the other two.With the operating parameters set, two prototype print designs were investigated across the operating conditions.First, as shown in Figure 5a, a rectangular prototype was fabricated with the filaments extruding out of the nozzle onto the print bed at angles of 45 and 135 degrees.Second, an octopus prototype that was supplied with the 3D printer from Lulzbot Mini [45] was utilized (Figure 5b).With the operating parameters set, two prototype print designs were investigated across the operating conditions.First, as shown in Figure 5a, a rectan gular prototype was fabricated with the filaments extruding out of the nozzle onto the print bed at angles of 45 and 135 degrees.Second, an octopus prototype that was supplied with the 3D printer from Lulzbot Mini [45] was utilized (Figure 5b).
Over 300,000 data points were collected over a 6 min timeframe using LabView during the FFF process for each of the conditions shown in Table 1.To look for patterns in each dataset and to explore the information contained in it, spectrogram, Principal Over 300,000 data points were collected over a 6 min timeframe using LabView during the FFF process for each of the conditions shown in Table 1.To look for patterns in each dataset and to explore the information contained in it, spectrogram, Principal Component Analysis (PCA), and Support Vector Machine (SVM) approaches were taken to aid data visualization.
In the FFF process, frequencies with higher and lower amplitudes of vibration were identified.The spectrogram shows the spectrum of frequencies and visually displays the major frequencies brighter than the minor ones.
Using dimensionality reduction, the data were separated into groups based on shared characteristics.Principal Component Analysis (PCA) performed a linear transformation on the dataset and it was determined that most of the variance in each dataset was captured by the first and second principal components.Clustering or grouping the dataset with PCA determines the underlying structure and interprets the data based on input data.This gave us additional insight into the data collected more than using FFT alone.Using only FFT to determine the machine's states was not enough to determine the change in vibration since it only shows a fraction of the hundreds of thousands of data points.Finally, a Support Vector Machine (SVM) was developed to classify normal and faulty regions.However, the print state at 185 • C (which is very close to the normal print state) was ignored during the dimensional reduction processes since the spectrogram showed little or no variation compared to the normal printing condition.

Results and Discussion
Using the Fourier amplitude spectrum of acceleration or Fast Fourier Transform (FFT), the dominant vibrational frequency and the corresponding amplitude for each printing temperature were observed, as shown in Figure 6a-c, for the different sensor positions.
Out of the three sensors mounted on the 3D printer, the sensor mounted close to the nozzle (Sensor 1) showed clearer variation than the other two.The amplitudes of vibration from the sensor mounted on the print bed (Sensor 3) were high because more vibrations were induced on the bed from the nozzle (which is forcing itself to extrude filaments), and the wobbling print.However, irrespective of the sensor position, the frequency range between 0 and 120 Hz was associated with the cooling fan located close to the nozzle, which is constantly on to hinder the melted thermoplastic on the heat block from fully backing into the heat sink.
A spectrogram model was employed to enhance the visualization of vibrational signals during various printing conditions.The spectrogram model generates the graph of the spectrum of frequencies vs. time for each dataset.Figure 7a-c  In order to optimize the analysis of sensor signals in a 3D printing system, we conducted a comparative study between spectrograms and Fast Fourier Transforms (FFT).Our objective was to discern which method would provide a more nuanced understanding of the variations in the signals, especially during different printing conditions.The findings from this comparison not only shed light on the superior method but also unveiled distinct vibration patterns during fault conditions in the 3D printer.The results indicated that the use of spectrograms revealed clearer variations in the signals from each sensor compared to the use of FFT.Further analysis of the spectrograms revealed changes in patterns at different print conditions over time.The spectrogram provided a more comprehensive view of the signal, which enabled the identification of patterns that were not visible through the use of FFT alone.Variations in the operating frequencies between normal and abnormal conditions were discovered through the analysis.The signals from the three sensors were analyzed and it was observed that the 3D printer exhibited distinct vibration patterns during fault conditions.Neglecting the frequency between 0 and 120 Hz, Table 2 shows the dominant frequencies in the different printing conditions.To further analyze the vibrational signals under different printing conditions, a datadriven approach was employed utilizing Principal Component Analysis (PCA) and Support Vector Machine (SVM) algorithms.The datasets collected were utilized for clustering, training, and testing.The resulting model was then utilized to visualize the differences in vibration during normal and faulty operations.To reduce the complexity of the over 300,000 data points collected, dimensionality reduction was employed using PCA.This resulted in a reduction of the data points to 4000 points, utilizing the first two principal components that stored the maximum variation of the dataset.These dimensions were projected onto a 2D Cartesian plane, and to further demonstrate the distinction of clustering regions for normal and faulty conditions, the third principal component was included as a visual aid, as depicted in Figures 8-10.To demonstrate the absence of overlap in normal and faulty clusters, we also employed 3D figures.
Based on the data visualizations presented, there was a distinct separation in the clustering patterns between the normal and unacceptable print states.Further analysis revealed that a common vibrational cluster was observed to occur during the fabrication of the contour or walls of the sample, and another distinct vibrational cluster was observed when fabricating the infill of the sample.However, the vibrational patterns obtained from the three sensors may not be identical, as this could be attributed to the specific nature of the vibrational signals being detected by each sensor based on where they were mounted on the 3D printer.This highlights the importance of considering the sensor placement when interpreting the results.
To facilitate the analysis of the data, a reduction in the number of data points from 4000 to 10 was implemented to capture the regions of major variations in vibration.This simplification of the clustering process also enabled the utilization of a Support Vector Machine (SVM) algorithm to classify the regions in which each in situ monitoring condition is likely to occur.As depicted in Figures 11-13, the results of the segmented Principal Component Analysis (PCA) of the trained data and a combination of PCA and SVM applied to the test data for both normal and unacceptable print conditions are presented.
In the classification of printing conditions, the SVM algorithm finds the hyperplane that maximally separates the data points belonging to different classes, so that data points on one side of the hyperplane belong to a normal print, and those on the other side belong to unacceptable prints.Hence, the Support Vector Machine (SVM) was used to estimate the regions where normal and unacceptable vibrations will occur.In the classification of printing conditions, the SVM algorithm finds the hyperplane that maximally separates the data points belonging to different classes, so that data points on one side of the hyperplane belong to a normal print, and those on the other side belong to unacceptable prints.Hence, the Support Vector Machine (SVM) was used to estimate the regions where normal and unacceptable vibrations will occur.
The same analysis was carried out with a stereolithography file of an octopus shape, with the same printing conditions maintained for normal and unacceptable prints (195 °C and 165 °C, respectively).Vibrational differences were observed between the two printing conditions using spectrograms, PCA, and the developed SVM tools.The spectrogram The same analysis was carried out with a stereolithography file of an octopus shape, with the same printing conditions maintained for normal and unacceptable prints (195 • C and 165 • C, respectively).Vibrational differences were observed between the two printing conditions using spectrograms, PCA, and the developed SVM tools.The spectrogram graphs from the three sensors unanimously agreed with the vibrational differences, showing a clear amplitude of vibration for normal print (Figure 14a-c).The frequencies of operation were well highlighted in the spectrogram of the normal print than in the faulty print.The spectrogram graphs of the faulty print condition showed little or no amplitude of vibration.
graphs from the three sensors unanimously agreed with the vibrational differences, showing a clear amplitude of vibration for normal print (Figure 14a-c).The frequencies of operation were well highlighted in the spectrogram of the normal print than in the faulty print.The spectrogram graphs of the faulty print condition showed little or no amplitude of vibration.Neglecting the frequency between 0 and 120 Hz, Table 3 shows the dominant frequencies under different printing conditions.During the fabrication, it was observed that as the nozzle was completely clogged, there were no peculiar or dominant frequencies during operation.As the nozzle became completely clogged, numerous frequencies contributed to the vibration, and the spectrogram suggested the difficulty in revealing the dominant frequencies.Subsequently, the collected data were processed using Principal Component Analysis (PCA) and Support Vector Machine (SVM) algorithms.The results of the analysis revealed the presence of differences in vibrational clustering across the three sensors.The predicted outcomes obtained through the application of PCA and SVM are presented in Figures 15-17   Neglecting the frequency between 0 and 120 Hz, Table 3 shows the dominant frequencies under different printing conditions.During the fabrication, it was observed that as the nozzle was completely clogged, there were no peculiar or dominant frequencies during operation.As the nozzle became completely clogged, numerous frequencies contributed to the vibration, and the spectrogram suggested the difficulty in revealing the dominant frequencies.Subsequently, the collected data were processed using Principal Component Analysis (PCA) and Support Vector Machine (SVM) algorithms.The results of the analysis revealed the presence of differences in vibrational clustering across the three sensors.The predicted outcomes obtained through the application of PCA and SVM are presented in        This study's results indicate that distinct vibrational clusters were observed among the different samples.The applicability of the trained data obtained from a rectangular sample for testing data collected from an octopus print was limited.So, a normal print of an octopus shape was trained and used to test data for the acceptable and unacceptable print states.

Figure 2 .
Figure 2. Schematic of the block diagram for the experimental setup.

Figure 2 .Figure 3 .
Figure 2. Schematic of the block diagram for the experimental setup.Sensors 2023, 23, x FOR PEER REVIEW 5 of 34

Figure 6 .
Figure 6.FFT at different printing temperatures based on the sensor positions: (a) Sensor 1, mounted close to the nozzle; (b) Sensor 2, mounted on the frame, and (c) Sensor 3 mounted on the print bed.

Figure 6 .
Figure 6.FFT at different printing temperatures based on the sensor positions: (a) Sensor 1, mounted close to the nozzle; (b) Sensor 2, mounted on the frame, and (c) Sensor 3 mounted on the print bed.

Sensors 2023, 23 , 7524 16 of 29 SensorsFigure 11 .
Figure 11.Segmented PCA and SVM for Sensor 1.(a) The segmented PCA of the trained data for Sensor 1; (b) the segmented PCA and SVM of the test data for Sensor 1.

Figure 11 .Figure 12 .
Figure 11.Segmented PCA and SVM for Sensor 1.(a) The segmented PCA of the trained data for Sensor 1; (b) the segmented PCA and SVM of the test data for Sensor 1.

Figure 12 .
Figure 12.Segmented PCA and SVM for Sensor 2. (a) The segmented PCA of the trained data for Sensor 2; (b) the segmented PCA and SVM of the test data for Sensor 2.

Figure 13 .
Figure 13.Segmented PCA and SVM for Sensor 3. (a) The segmented PCA of the trained data for Sensor 3; (b) the segmented PCA and SVM of the test data for Sensor 3.

Figure 13 .
Figure 13.Segmented PCA and SVM for Sensor 3. (a) The segmented PCA of the trained data for Sensor 3; (b) the segmented PCA and SVM of the test data for Sensor 3.

Figure 15 .Figure 16 .
Figure 15.PCA on Sensor 1 at different print temperatures with normal and unacceptable conditions at 195-deg and 165-deg, respectively.(a) 2D PCA for trained data; (b) 2D PCA for test data; (c) 2D segmented PCA for trained data; (d) 2D segmented PCA and SVM for test data.

Figure 16 .Figure 17 .
Figure 16.PCA on Sensor 2 at different print temperatures with normal and unacceptable conditions at 195-deg and 165-deg, respectively.(a) 2D PCA for trained data; (b) 2D PCA for test data; (c) 2D segmented PCA for trained data; (d) 2D segmented PCA and SVM for test data.

Figure 17 .
Figure 17.PCA on Sensor 3 at different print temperatures with normal and unacceptable conditions at 195-deg and 165-deg, respectively.(a) 2D PCA for trained data; (b) 2D PCA for test data; (c) 2D segmented PCA for trained data; (d) 2D segmented PCA and SVM for test data.

Table 1 .
The set of test conditions.

Table 1 .
The set of test conditions.

Table 1 .
The set of test conditions.

Table 1 .
The set of test conditions.

Table 1 .
The set of test conditions.

Table 2 .
Dominant frequencies at different print states detected using the three sensors.

Table 3 .
Dominant frequencies at different print states detected using the three sensors while printing the octopus.

Table 3 .
Dominant frequencies at different print states detected using the three sensors while printing the octopus.