I've been having some difficulty writing the contents of the Blockdata() area to flash. I'm using the sequence below with: fOk = BatteryPDDWriteChar(GAUGE_EXTCMD_DFDCNTL, 0); fOk = BatteryPDDWriteChar(GAUGE_EXTCMD_DFCLS, subclass); fOk = BatteryPDDWriteChar(GAUGE_EXTCMD_DFBLK, block); fOk = BatteryPDDWriteBuf(GAUGE_EXTCMD_DFD, buf, numbytes); checksum = BatteryPDDChecksum(buf, numbytes); fOk = BatteryPDDWriteChar(GAUGE_EXTCMD_DFDCKS, checksum); I have no problem reading any of the data flash subclasses, I'm just unable to write them. I thought at first it was an error in the checksum, but I think if an incorrect checksum is written, there is no NACK from the bq27501 and I'm getting one. The checksum calculation seems to be correct because I can read any flash area and verify the calculation versus that read from the bq27501. I'm always writing the whole 32 byte block in the above sequence. Any help would be appreciated. Orval