diff --git a/Marlin/src/HAL/shared/persistent_store_api.h b/Marlin/src/HAL/shared/persistent_store_api.h
index 007a8ed737dd96d0e3cd12d844aa153351adbd29..09db6310e039fe8188818e2eb3414ca5ef1178ed 100644
--- a/Marlin/src/HAL/shared/persistent_store_api.h
+++ b/Marlin/src/HAL/shared/persistent_store_api.h
@@ -33,13 +33,15 @@ public:
   static bool read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing=true);
   static size_t capacity();
 
-  static inline bool write_data(const int pos, uint8_t* value, const size_t size) {
+  static inline bool write_data(const int pos, const uint8_t* value, const size_t size=sizeof(uint8_t)) {
     int data_pos = pos;
     uint16_t crc = 0;
     return write_data(data_pos, value, size, &crc);
   }
 
-  static inline bool read_data(const int pos, uint8_t* value, const size_t size) {
+  static inline bool write_data(const int pos, const uint8_t value) { return write_data(pos, &value); }
+
+  static inline bool read_data(const int pos, uint8_t* value, const size_t size=1) {
     int data_pos = pos;
     uint16_t crc = 0;
     return read_data(data_pos, value, size, &crc);
diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp
index 73a0cfdeb38672b09357ac8afac6ce5143dd9e3b..422513840b5a48ebdbf3d314bdcb90e4c9a9aec8 100644
--- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp
+++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp
@@ -1169,8 +1169,6 @@
    */
   void unified_bed_leveling::g29_eeprom_dump() {
     uint8_t cccc;
-    int kkkk;
-    uint16_t crc = 0;
 
     SERIAL_ECHO_START();
     SERIAL_ECHOLNPGM("EEPROM Dump:");
@@ -1180,8 +1178,7 @@
       print_hex_word(i);
       SERIAL_ECHOPGM(": ");
       for (uint16_t j = 0; j < 16; j++) {
-        kkkk = i + j;
-        persistentStore.read_data(kkkk, &cccc, sizeof(uint8_t), &crc);
+        persistentStore.read_data(i + j, &cccc, sizeof(uint8_t));
         print_hex_byte(cccc);
         SERIAL_ECHO(' ');
       }
diff --git a/Marlin/src/module/printcounter.cpp b/Marlin/src/module/printcounter.cpp
index 5f4d226286eb85c93044e74ddd071e8c5c9e6889..9bf350c052d05cf665f065a49a7a6a504fa288f8 100644
--- a/Marlin/src/module/printcounter.cpp
+++ b/Marlin/src/module/printcounter.cpp
@@ -75,10 +75,8 @@ void PrintCounter::initStats() {
 
   saveStats();
 
-  uint16_t crc = 0;
-  int a = address;
   persistentStore.access_start();
-  persistentStore.write_data(a, (uint8_t*)0x16, sizeof(uint8_t), &crc);
+  persistentStore.write_data(address, (uint8_t)0x16);
   persistentStore.access_finish();
 }
 
@@ -88,16 +86,13 @@ void PrintCounter::loadStats() {
   #endif
 
   // Check if the EEPROM block is initialized
-  uint16_t crc = 0;
-  int a = address;
-  uint8_t value;
+  uint8_t value = 0;
   persistentStore.access_start();
-  persistentStore.read_data(a, &value, sizeof(uint8_t), &crc);
-  if (value != 0x16) initStats();
-  else {
-    a = address + sizeof(uint8_t);
-    persistentStore.read_data(a, (uint8_t*)&data, sizeof(printStatistics), &crc);
-  }
+  persistentStore.read_data(address, &value, sizeof(uint8_t));
+  if (value != 0x16)
+    initStats();
+  else
+    persistentStore.read_data(address + sizeof(uint8_t), (uint8_t*)&data, sizeof(printStatistics));
   persistentStore.access_finish();
   loaded = true;
 }
@@ -111,10 +106,8 @@ void PrintCounter::saveStats() {
   if (!isLoaded()) return;
 
   // Saves the struct to EEPROM
-  uint16_t crc = 0;
-  int a = (address + sizeof(uint8_t));
   persistentStore.access_start();
-  persistentStore.write_data(a, (uint8_t*)&data, sizeof(printStatistics), &crc);
+  persistentStore.write_data(address + sizeof(uint8_t), (uint8_t*)&data, sizeof(printStatistics));
   persistentStore.access_finish();
 }