// if the file opened okay, set flag okay
if (myFile) {
myFile->close();
} else {
// if the file didn't open, tell it
if(_HardSerial) _HardSerial->printf("[DBabstraction] error opening the db file\n");
}
What part of that code sets any flag?
// retry to open the file for reading:
*myFile = Drv.open(FILE_PATH, FILE_WRITE);
FILE_WRITE is NOT how you open a file for reading.
What if you, temporarily, create the EDB instance in the sketch, and pass it to the DBAbstraction instance? Does that get rid of the multiple instances issue?