UBL able to generate mesh and save and load it on 32-bit platforms (#8015)
* Get UBL Mesh Generation, Mesh Save & Mesh Load working with 32-Bit platforms * clean up read_data() and write_data() for non-LPC1768 HAL's * Get read_data() and write_data() return codes consistent All HAL's read_data() and write_data() return false if they succeed. * Get read_data() and write_data() return codes to be consistent Make read_data() and write_data() return true if an error happens. * Say UBL is now checked out on machine types in default Configuration.h file.
This commit is contained in:
		
							parent
							
								
									67cc29cd3c
								
							
						
					
					
						commit
						572cf0ec95
					
				| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -28,17 +28,17 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | |||||||
|       if (eeprom_read_byte(p) != v) { |       if (eeprom_read_byte(p) != v) { | ||||||
|         SERIAL_ECHO_START(); |         SERIAL_ECHO_START(); | ||||||
|         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); |         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); | ||||||
|         return false; |         return true; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     crc16(crc, &v, 1); |     crc16(crc, &v, 1); | ||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   }; |   }; | ||||||
|   return true; |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | ||||||
|   do { |   do { | ||||||
|     uint8_t c = eeprom_read_byte((unsigned char*)pos); |     uint8_t c = eeprom_read_byte((unsigned char*)pos); | ||||||
|     *value = c; |     *value = c; | ||||||
| @ -46,6 +46,7 @@ void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | |||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   } while (--size); |   } while (--size); | ||||||
|  |   return false;  // always assume success for AVR's
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -28,17 +28,17 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | |||||||
|       if (eeprom_read_byte(p) != v) { |       if (eeprom_read_byte(p) != v) { | ||||||
|         SERIAL_ECHO_START(); |         SERIAL_ECHO_START(); | ||||||
|         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); |         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); | ||||||
|         return false; |         return true; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     crc16(crc, &v, 1); |     crc16(crc, &v, 1); | ||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   }; |   }; | ||||||
|   return true; |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | ||||||
|   do { |   do { | ||||||
|     uint8_t c = eeprom_read_byte((unsigned char*)pos); |     uint8_t c = eeprom_read_byte((unsigned char*)pos); | ||||||
|     *value = c; |     *value = c; | ||||||
| @ -46,6 +46,7 @@ void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | |||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   } while (--size); |   } while (--size); | ||||||
|  |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -34,7 +34,7 @@ bool access_start() { | |||||||
| 
 | 
 | ||||||
|   if (res == FR_OK) { |   if (res == FR_OK) { | ||||||
|     f_lseek(&eeprom_file, file_size); |     f_lseek(&eeprom_file, file_size); | ||||||
|     while (file_size < E2END && res == FR_OK) { |     while (file_size <= E2END && res == FR_OK) { | ||||||
|       res = f_write(&eeprom_file, &eeprom_zero, 1, &bytes_written); |       res = f_write(&eeprom_file, &eeprom_zero, 1, &bytes_written); | ||||||
|       file_size++; |       file_size++; | ||||||
|     } |     } | ||||||
| @ -53,21 +53,92 @@ bool access_finish() { | |||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // File function return codes for type FRESULT   This goes away soon.   But it is helpful right now to see
 | ||||||
|  | // the different errors the read_data() and write_data() functions are seeing.
 | ||||||
|  | //
 | ||||||
|  | //typedef enum {
 | ||||||
|  | //      FR_OK = 0,               /* (0) Succeeded */
 | ||||||
|  | //      FR_DISK_ERR,             /* (1) A hard error occurred in the low level disk I/O layer */
 | ||||||
|  | //      FR_INT_ERR,              /* (2) Assertion failed */
 | ||||||
|  | //      FR_NOT_READY,            /* (3) The physical drive cannot work */
 | ||||||
|  | //      FR_NO_FILE,              /* (4) Could not find the file */
 | ||||||
|  | //      FR_NO_PATH,              /* (5) Could not find the path */
 | ||||||
|  | //      FR_INVALID_NAME,         /* (6) The path name format is invalid */
 | ||||||
|  | //      FR_DENIED,               /* (7) Access denied due to prohibited access or directory full */
 | ||||||
|  | //      FR_EXIST,                /* (8) Access denied due to prohibited access */
 | ||||||
|  | //      FR_INVALID_OBJECT,       /* (9) The file/directory object is invalid */
 | ||||||
|  | //      FR_WRITE_PROTECTED,      /* (10) The physical drive is write protected */
 | ||||||
|  | //      FR_INVALID_DRIVE,        /* (11) The logical drive number is invalid */
 | ||||||
|  | //      FR_NOT_ENABLED,          /* (12) The volume has no work area */
 | ||||||
|  | //      FR_NO_FILESYSTEM,        /* (13) There is no valid FAT volume */
 | ||||||
|  | //      FR_MKFS_ABORTED,         /* (14) The f_mkfs() aborted due to any problem */
 | ||||||
|  | //      FR_TIMEOUT,              /* (15) Could not get a grant to access the volume within defined period */
 | ||||||
|  | //      FR_LOCKED,               /* (16) The operation is rejected according to the file sharing policy */
 | ||||||
|  | //      FR_NOT_ENOUGH_CORE,      /* (17) LFN working buffer could not be allocated */
 | ||||||
|  | //      FR_TOO_MANY_OPEN_FILES,  /* (18) Number of open files > FF_FS_LOCK */
 | ||||||
|  | //      FR_INVALID_PARAMETER     /* (19) Given parameter is invalid */
 | ||||||
|  | //} FRESULT;
 | ||||||
|  | 
 | ||||||
| bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | ||||||
|  |   FRESULT s; | ||||||
|   UINT bytes_written = 0; |   UINT bytes_written = 0; | ||||||
|   f_lseek(&eeprom_file, pos); |   s = f_lseek(&eeprom_file, pos); | ||||||
|   f_write(&eeprom_file, (void *)value, size, &bytes_written); |   if ( s ) { | ||||||
|  |    SERIAL_PROTOCOLPAIR(" write_data(", pos);         // This extra chit-chat goes away soon.  But it is helpful
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) value);            // right now to see errors that are happening in the 
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) size);             // read_data() and write_data() functions
 | ||||||
|  |    SERIAL_PROTOCOL("...)\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" f_lseek()=", (int) s); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    return s; | ||||||
|  |   } | ||||||
|  |   s = f_write(&eeprom_file, (void *)value, size, &bytes_written); | ||||||
|  |   if ( s ) { | ||||||
|  |    SERIAL_PROTOCOLPAIR(" write_data(", pos);         // This extra chit-chat goes away soon.  But it is helpful
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) value);            // right now to see errors that are happening in the 
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) size);             // read_data() and write_data() functions
 | ||||||
|  |    SERIAL_PROTOCOL("...)\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" f_write()=", (int) s); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" size=",  (int) size); | ||||||
|  |    SERIAL_PROTOCOLPAIR("\n bytes_written=",  (int) bytes_written); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    return s; | ||||||
|  |   } | ||||||
|   crc16(crc, value, size); |   crc16(crc, value, size); | ||||||
|   pos = pos + size; |   pos = pos + size; | ||||||
|   return (bytes_written == size); |   return (bytes_written != size);  // return true for any error
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | ||||||
|   UINT bytes_read = 0; |   UINT bytes_read = 0; | ||||||
|   f_lseek(&eeprom_file, pos); |   FRESULT s; | ||||||
|   f_read(&eeprom_file, (void *)value, size, &bytes_read); |   s = f_lseek(&eeprom_file, pos); | ||||||
|  |   if ( s ) { | ||||||
|  |    SERIAL_PROTOCOLPAIR(" read_data(", pos);          // This extra chit-chat goes away soon.  But it is helpful
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) value);            // right now to see errors that are happening in the 
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) size);             // read_data() and write_data() functions
 | ||||||
|  |    SERIAL_PROTOCOL("...)\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" f_lseek()=", (int) s); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    return true; | ||||||
|  |   } | ||||||
|  |   s = f_read(&eeprom_file, (void *)value, size, &bytes_read); | ||||||
|  |   if ( s ) { | ||||||
|  |    SERIAL_PROTOCOLPAIR(" read_data(", pos);         // This extra chit-chat goes away soon.  But it is helpful
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) value);           // right now to see errors that are happening in the 
 | ||||||
|  |    SERIAL_PROTOCOLPAIR(",", (int) size);            // read_data() and write_data() functions
 | ||||||
|  |    SERIAL_PROTOCOL("...)\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" f_write()=", (int) s); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    SERIAL_PROTOCOLPAIR(" size=",  (int) size); | ||||||
|  |    SERIAL_PROTOCOLPAIR("\n bytes_read=",  (int) bytes_read); | ||||||
|  |    SERIAL_PROTOCOL("\n"); | ||||||
|  |    return true; | ||||||
|  |   } | ||||||
|   crc16(crc, value, size); |   crc16(crc, value, size); | ||||||
|   pos = pos + size; |   pos = pos + size; | ||||||
|  |   return bytes_read != size;  // return true for any error
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // PersistentStore
 | } // PersistentStore
 | ||||||
|  | |||||||
| @ -78,15 +78,16 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | |||||||
| 	} | 	} | ||||||
| 	crc16(crc, value, size); | 	crc16(crc, value, size); | ||||||
| 	pos += size; | 	pos += size; | ||||||
| 	return true; | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | ||||||
| 	for (int i = 0; i < size; i++) { | 	for (int i = 0; i < size; i++) { | ||||||
| 		value[i] = HAL_STM32F1_eeprom_content [pos + i]; | 		value[i] = HAL_STM32F1_eeprom_content [pos + i]; | ||||||
| 	} | 	} | ||||||
| 	crc16(crc, value, size); | 	crc16(crc, value, size); | ||||||
| 	pos += size; | 	pos += size; | ||||||
|  |         return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // PersistentStore::
 | } // PersistentStore::
 | ||||||
|  | |||||||
| @ -28,17 +28,17 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) { | |||||||
|       if (eeprom_read_byte(p) != v) { |       if (eeprom_read_byte(p) != v) { | ||||||
|         SERIAL_ECHO_START(); |         SERIAL_ECHO_START(); | ||||||
|         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); |         SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE); | ||||||
|         return false; |         return true; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     crc16(crc, &v, 1); |     crc16(crc, &v, 1); | ||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   }; |   }; | ||||||
|   return true; |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | ||||||
|   do { |   do { | ||||||
|     uint8_t c = eeprom_read_byte((unsigned char*)pos); |     uint8_t c = eeprom_read_byte((unsigned char*)pos); | ||||||
|     *value = c; |     *value = c; | ||||||
| @ -46,6 +46,7 @@ void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) { | |||||||
|     pos++; |     pos++; | ||||||
|     value++; |     value++; | ||||||
|   } while (--size); |   } while (--size); | ||||||
|  |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // PersistentStore
 | } // PersistentStore
 | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ namespace PersistentStore { | |||||||
| bool access_start(); | bool access_start(); | ||||||
| bool access_finish(); | bool access_finish(); | ||||||
| bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc); | bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc); | ||||||
| void read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc); | bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc); | ||||||
| 
 | 
 | ||||||
| } // PersistentStore
 | } // PersistentStore
 | ||||||
| } // HAL
 | } // HAL
 | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -874,12 +874,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -973,12 +973,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -860,12 +860,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -845,12 +845,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -855,12 +855,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -845,12 +845,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -853,12 +853,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -864,12 +864,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -836,12 +836,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -836,12 +836,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -634,7 +634,7 @@ | |||||||
|  * Z Servo Probe, such as an endstop switch on a rotating arm. |  * Z Servo Probe, such as an endstop switch on a rotating arm. | ||||||
|  */ |  */ | ||||||
| #define Z_ENDSTOP_SERVO_NR 0   // Defaults to SERVO 0 connector.
 | #define Z_ENDSTOP_SERVO_NR 0   // Defaults to SERVO 0 connector.
 | ||||||
| #define Z_SERVO_ANGLES {40,85}  // Z Servo Deploy and Stow angles
 | #define Z_SERVO_ANGLES {40,95}  // Z Servo Deploy and Stow angles
 | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * The BLTouch probe uses a Hall effect sensor and emulates a servo. |  * The BLTouch probe uses a Hall effect sensor and emulates a servo. | ||||||
| @ -851,12 +851,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -869,12 +869,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -858,12 +858,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -878,12 +878,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -853,12 +853,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -853,12 +853,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -856,12 +856,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -852,12 +852,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -866,12 +866,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -885,12 +885,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -910,12 +910,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -884,12 +884,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -854,12 +854,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -978,12 +978,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -978,12 +978,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -965,12 +965,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -968,12 +968,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -968,12 +968,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -977,12 +977,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -868,12 +868,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -857,12 +857,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems.  | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -841,12 +841,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -849,12 +849,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -859,12 +859,7 @@ | |||||||
|  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) |  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) | ||||||
|  *   A comprehensive bed leveling system combining the features and benefits |  *   A comprehensive bed leveling system combining the features and benefits | ||||||
|  *   of other systems. UBL also includes integrated Mesh Generation, Mesh |  *   of other systems. UBL also includes integrated Mesh Generation, Mesh | ||||||
|  *   Validation and Mesh Editing systems. Currently, UBL is only checked out |  *   Validation and Mesh Editing systems. | ||||||
|  *   for Cartesian Printers. That said, it was primarily designed to correct |  | ||||||
|  *   poor quality Delta Printers. If you feel adventurous and have a Delta, |  | ||||||
|  *   please post an issue if something doesn't work correctly. Initially, |  | ||||||
|  *   you will need to set a reduced bed size so you have a rectangular area |  | ||||||
|  *   to test on. |  | ||||||
|  * |  * | ||||||
|  * - MESH_BED_LEVELING |  * - MESH_BED_LEVELING | ||||||
|  *   Probe a grid manually |  *   Probe a grid manually | ||||||
|  | |||||||
| @ -668,7 +668,7 @@ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (parser.seen('T')) |     if (parser.seen('T')) | ||||||
|       display_map(parser.has_value() ? parser.value_int() : 0); |       display_map(g29_map_type); | ||||||
| 
 | 
 | ||||||
|     LEAVE: |     LEAVE: | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -632,12 +632,12 @@ void MarlinSettings::postprocess() { | |||||||
|         SERIAL_ECHOLNPGM(")"); |         SERIAL_ECHOLNPGM(")"); | ||||||
|       #endif |       #endif | ||||||
|     } |     } | ||||||
|  |     EEPROM_FINISH(); | ||||||
| 
 | 
 | ||||||
|     #if ENABLED(UBL_SAVE_ACTIVE_ON_M500) |     #if ENABLED(UBL_SAVE_ACTIVE_ON_M500) | ||||||
|       if (ubl.storage_slot >= 0) |       if (ubl.storage_slot >= 0) | ||||||
|         store_mesh(ubl.storage_slot); |         store_mesh(ubl.storage_slot); | ||||||
|     #endif |     #endif | ||||||
|     EEPROM_FINISH(); |  | ||||||
|     return !eeprom_error; |     return !eeprom_error; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -1073,14 +1073,21 @@ void MarlinSettings::postprocess() { | |||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         uint16_t crc = 0; |         uint16_t crc = 0; | ||||||
|  |         bool status; | ||||||
|         int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); |         int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); | ||||||
| 
 | 
 | ||||||
|         HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc); |         HAL::PersistentStore::access_start(); | ||||||
|  |         status = HAL::PersistentStore::write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc); | ||||||
|  |         HAL::PersistentStore::access_finish(); | ||||||
|  | 
 | ||||||
|  |         if (status) | ||||||
|  |           SERIAL_PROTOCOL("?Unable to save mesh data.\n"); | ||||||
| 
 | 
 | ||||||
|         // Write crc to MAT along with other data, or just tack on to the beginning or end
 |         // Write crc to MAT along with other data, or just tack on to the beginning or end
 | ||||||
| 
 | 
 | ||||||
|         #if ENABLED(EEPROM_CHITCHAT) |         #if ENABLED(EEPROM_CHITCHAT) | ||||||
|           SERIAL_PROTOCOLLNPAIR("Mesh saved in slot ", slot); |           if (!status) | ||||||
|  |             SERIAL_PROTOCOLLNPAIR("Mesh saved in slot ", slot); | ||||||
|         #endif |         #endif | ||||||
| 
 | 
 | ||||||
|       #else |       #else | ||||||
| @ -1106,13 +1113,20 @@ void MarlinSettings::postprocess() { | |||||||
|         uint16_t crc = 0; |         uint16_t crc = 0; | ||||||
|         int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); |         int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values); | ||||||
|         uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values; |         uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values; | ||||||
|         HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc); |         uint16_t status; | ||||||
| 
 | 
 | ||||||
|         // Compare crc with crc from MAT, or read from end
 |         HAL::PersistentStore::access_start(); | ||||||
|  |         status = HAL::PersistentStore::read_data(pos, dest, sizeof(ubl.z_values), &crc); | ||||||
|  |         HAL::PersistentStore::access_finish(); | ||||||
|  | 
 | ||||||
|  |         if (status) | ||||||
|  |           SERIAL_PROTOCOL("?Unable to load mesh data.\n"); | ||||||
| 
 | 
 | ||||||
|         #if ENABLED(EEPROM_CHITCHAT) |         #if ENABLED(EEPROM_CHITCHAT) | ||||||
|           SERIAL_PROTOCOLLNPAIR("Mesh loaded from slot ", slot); |           else | ||||||
|  |             SERIAL_PROTOCOLLNPAIR("Mesh loaded from slot ", slot); | ||||||
|         #endif |         #endif | ||||||
|  |         EEPROM_FINISH(); | ||||||
| 
 | 
 | ||||||
|       #else |       #else | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user