Sometimes you need a little extra storage for your microcontroller projects: for files, images, fonts, audio clips, etc. If you need lots of space, like in the gigabytes, we always recommend an SD card because you can easily plug it into a computer to edit files. But sometimes you don't need whole gigabytes, you just need a megabyte or two, with the lower cost and power usage that comes with it. That's when we recommend an Adafruit SPI FLASH Breakout such as this one that is fitted with a W25Q128 - 128 Mbit / 16 MByte chip.
Compared to our QSPI breakouts, this one is single-channel SPI only...BUT it comes with level shifting so it can be used safely with 3V or 5V power and logic. Since we needed to add level shifting, the chip is pre-wired into single channel "SPI" mode, with level shifters so you can use it with 3V or 5V logic easily. You also get a 3.3V regulator and a pullup on CS.
Note that the chips come blank, and do not have a wear-leveling subsystem. You can address them as a flat memory space or, if you like, format them with a filesystem like littleFS or FAT. Great for use with data-logging or storage needs where you are OK with doing the management yourself - or if you are adding external memory to an older chip that would like 5V-compatibility.
In Arduino, we have the Adafruit_SPIFlash library that can be used to interface with this chip. Comes with a bit of header that can be used to solder in and plug into a breadboard if desired.
- W25Q128JV Datasheet and technical documentation
- Product Dimensions: 20.3mm x 17.7mm x 3.5mm
- Product Weight: 1.4g