I’m trying to test my new EEPROM breakout with the External EEPROM library 3.2.4 . Using Arduino IDE 2.3.2 to compile Example 4, for instance, I get the following error: “call of overloaded ‘begin()’ is ambiguous.” Other Examples fail with the same error. Looking at the function prototypes in the source code it appears that the myMem.begin() might be configured to run with defaults? Even if the call requires arguments I can’t seem to get the right combination or syntax to compile successfully. I found another post on this forum, 246952, where the solution to the poster’s problem was to change the sketch to myMem.begin(0b1010000, Wire). Note the other poster was trying to talk to a different I2C address. I’m using the default 0x50 equivalent here and in my code. I get a similar error: “call of overloaded ‘begin(int, TwoWire&)’ is ambiguous.” What do I need to do to get this library to compile?
Looking at the source code on Git Hub, 3 weeks ago a write-protected (WP) option was added to begin().
it is now bool begin(uint8_t deviceAddress = 0b1010000, TwoWire &wirePort = Wire, uint8_t WP = 255);
All parameters are optional. The Write-Protect option is not used by default.
If a WP-PIN is provided connect that to the External EEPROM board WP. It will now disable writing by hardware and enable it when a write call is performed. Looks like some extra security.
BUT Sparkfun forgot to remove the original begin() call and now the compiler is confused.
Use the attached zip library where the original begin() call reference is removed from the header and cpp file. The examples will now work again.
Thank you for the reply, explanation, and modified files. After I updated the source code the sketch worked as expected.
My fault! Sorry for the hassle daneel_olivaw - v3.2.5 has been released.
No worries! I appreciate all the effort SparkFun puts into developing and maintaining the libraries. I will install the updated library and consider the matter closed.