NanoBLEFlashPrefs: Library for missing EEPROM functionality on Nano 33 BLE

There are some threads here looking for advice on how to substitute the missing EEPROM on the Arduino 33 BLE and BLE Sense. I think I came up with a nice solution, but the threads are all closed so I post this in a new thread.

I wrote a library called NanoBLEFlashPrefs. It allows to store parameters and preferences persistently between program restarts and even reprogramming.

The Arduino boards mentioned above use a nRF52840 microcontroller from Nordic Semiconductor. This chip features a very simple file system for flash storage. This is used in the library to store and retrieve an arbitrary struct of preferences of your program.

Please take a look at the GitHub repository of NanoBLEFlashPrefs. Comments welcome!

for Arduino SAMD boards, for nRF51 and older nRF52 and for ESP8266 and ESP32 Arduino EEPROM library API is used to store values in flash. GitHub - d00616/arduino-NVM: Direct flash memory access, round robin virtual pages and EEPROM like

Thanks for pointing me to that library. It has a different, more low-level approach than NanoBLEFlashPrefs, right?

With NanoBLEFlashPrefs the stored values survive reflashing your sketch. And it uses a SoftDevice so you do not need to worry about radio notification or timing issues.