Close
0%
0%

Embedis : SPI FRAM Keystore

Store ESP8266 data and project settings in non-volatile, SPI Ferromagnetic RAM with simple "Set" and "Get" Embedis commands!

Similar projects worth following
1.1k views
We needed a simple and efficient way to store configuration settings and values between projects, using a non-volatile Ferromagnetic Random Access Memory (FRAM).
The Embedis database is persistent, and can be used across multiple projects to configure your program settings for the specific hardware and network configuration that you are using. The Embedis database supports EEPROM storage by default, but can also add other memory devices easily, as we show with this example, by adding an external SPI FRAM such as the MB85RS256 (32K bytes) or the FM25V10 (128K bytes).

These devices come in both SPI and I2C interface "flavors", if you are looking for the I2Cversion, we have an I2C FRAM Project covering that interface as well.
Now, you don't need to recompile your program and reflash your device in order to change your device and project settings anymore. Project settings can be changed "on-the-fly" with just a serial or wireless interface!

Embedis is a very small, in-memory, data structure store for key/value pairs; and why it is also known as a "keystore server". Embedis can be used as a database, cache, and message broker, with it's publish and subscribe mechanisms. Embedis uses a syntax similar to the popular "Redis" program, which has API/bindings available for C/C++, Python, Ruby, TCL, etc.

In this example the Embedis command interpreter is connected to the Serial Monitor (i.e. Serial.print), however we have examples that show it running several simultaneous connections at once, including Telnet, WWW, MQTT, and others.

The Embedis database is persistent, and can be used across multiple projects to configure your program settings for the specific hardware and network configuration that you are using. The Embedis database supports EEPROM storage by default, but can also add other memory devices easily, as we show with this example, by adding an external SPI FRAM such as the MB85RS64 (8K bytes), MB85RS256 (32K bytes) or the FM25V10 (128K bytes). These devices come in both SPI and I2C interface "flavors", if you are looking for the I2C version, we have an I2C_FRAM Project covering that interface.

spi_fram_wiring.jpg

Fritzing Wiring Diagram

JPEG Image - 203.72 kB - 01/15/2017 at 01:37

Preview
Download

  • 1 × Arduino
  • 1 × Embedis
  • 1 × thingSoC
  • 1 × SPI FRAM Breakout Adafruit SPI FRAM Breakout

  • 1
    Step 1

    Installing Embedis

    To Install Embedis in the Arduino IDE, please see the Detailed Install Directions. Embedis is installed using the Arduino Library Manager, from the top menu bar :

    Sketch -> Include Library -> Manage Libraries -> Embedis

    You will also need the ESP8266 tools and ESP8266 sketch data download utility installed with Arduino IDE 1.6.7 or later. For more information, please follow the board manager install directions at esp8266/Arduino.

  • 2
    Step 2

    Installing the Adafruit SPI FRAM Library

    The Adafruit FRAM SPI library is installed using the Arduino Library Manager, from the top menu bar :

    Sketch -> Include Library -> Manage Libraries -> Adafruit FRAM SPI

  • 3
    Step 3

    Loading the Example Project

    After installing the Embedis library in the Arduino IDE, the Embedis examples will be available under the menu as :

    File -> Examples -> Embedis -> esp8266 -> Embedis_SPI_FRAM

    Make sure to select your specific ESP8266 board model under the Board Manager, and set the "port" to the correct COM: port for your board. Then just press the "Download" button to compile and download your project.

View all 8 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates