| 
															
																@@ -478,7 +478,7 @@ int16_t xyzcal_find_pattern_12x12_in_32x32(uint8_t* pixels, uint16_t* pattern, u 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 #define MAX_DIAMETR 600 
															 | 
															
															 | 
															
																 #define MAX_DIAMETR 600 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 #define XYZCAL_FIND_CENTER_DIAGONAL 
															 | 
															
															 | 
															
																 #define XYZCAL_FIND_CENTER_DIAGONAL 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+int8_t xyzcal_find_point_center2A(int16_t x0, int16_t y0, int16_t z0, uint16_t delay_us); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 int8_t xyzcal_find_point_center2(uint16_t delay_us) 
															 | 
															
															 | 
															
																 int8_t xyzcal_find_point_center2(uint16_t delay_us) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 { 
															 | 
															
															 | 
															
																 { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	printf_P(PSTR("xyzcal_find_point_center2\n")); 
															 | 
															
															 | 
															
																 	printf_P(PSTR("xyzcal_find_point_center2\n")); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -494,11 +494,25 @@ int8_t xyzcal_find_point_center2(uint16_t delay_us) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0 + 400, 500, -1); 
															 | 
															
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0 + 400, 500, -1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0 - 400, 500, 1); 
															 | 
															
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0 - 400, 500, 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	if (has_temperature_compensation()) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    if (has_temperature_compensation()){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	    z0 = _Z - 20; // normal PINDA 
															 | 
															
															 | 
															
																 	    z0 = _Z - 20; // normal PINDA 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	else 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	    z0 = _Z + 10; // alternate PINDA 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return xyzcal_find_point_center2A(x0, y0, z0, delay_us); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // try searching harder, each PINDA is different 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        for(z0 = _Z - 20; z0 < _Z + 60; z0 += 20 ){ // alternate PINDA 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            int8_t rv = xyzcal_find_point_center2A(x0, y0, z0, delay_us); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            printf_P(PSTR(" z0=%d"), z0); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if( rv != 0 ){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                printf_P(PSTR("ok\n")); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return rv; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                printf_P(PSTR("fail\n")); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+int8_t xyzcal_find_point_center2A(int16_t x0, int16_t y0, int16_t z0, uint16_t delay_us){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0, 500, 0); 
															 | 
															
															 | 
															
																 	xyzcal_lineXYZ_to(_X, _Y, z0, 500, 0); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 //	xyzcal_lineXYZ_to(x0, y0, z0 - 100, 500, 1); 
															 | 
															
															 | 
															
																 //	xyzcal_lineXYZ_to(x0, y0, z0 - 100, 500, 1); 
															 |