Putting FRAM on an EEPROM module

FRAM is a really good non-volatile memory. Compared to EEPROM, it has a much higher endurance (10^13 vs 10^6 cycles), there is no stuffing about with page level erase, and (for me most importantly) each write does not require a 6ms wait period.

I was delighted when RAK introduced FRAM modules. The higher density offerings used SPI, but the RAK15005 (128kB x8) uses I2C. Unfortunately, the 15005 strapped VCC to 3V3_S, so that if I powered down the heavy users (GNSS with active LNA) I’d lose the FRAM.

The default wiring for the RAK15000 EEPROM also straps VCC to 3V3_S, but at least on that module moving the link from R5 to R6 connects it to 3V3 and the memory is accessible when 3V3_S is down.

Today, I removed the EEPROM chip and replaced it with the FRAM chip on the RAK15000 module (I also linked VCC to 3V3 by moving R5 to R6).

Removing the chips with hot air is reasonably straightforward. I put the module on an otherwise unused Base Board just to hold it still. Hand soldering the SOP-8 is also OK, because the pads are big enough. Moving the 0402 resistor (link) is a real pain, just because it is so tiny.

The FRAM A1 pin is always strapped to ground, but the A2 pin can be driven high or low depending on resistor choice. This means I can have two of these FRAM franken-modules together on a single I2C bus.

It would be nice to be able to just buy the Fujitsu MB85RC1MTPNF straight from Mouser or Digikey rather than having to cannibalise the RAK15005 module. Unfortunately these chips seem to have disappeared from the market.

I suggest to the team at RAK that putting the 15005’s FRAM onto a 15000 PCB (with R6 loaded) would make a more useful module than either of them are at present.

Edit: I forgot to say, that all the above worked as I’d hoped.