SparkFun will be closed Monday 7/4/2022 for the 4th of July holiday. Orders placed after 2 pm MT on Friday 7/1/2022 will be processed on Tuesday 7/6/2022. SparkFun Support will also resume on Tuesday 7/6/2022. Have a safe holiday!

SPI Buffer Saver

The SPI Buffer Saver is a hardware solution to an interesting problem. In short the standard Arduino SPI library includes a method to transfer out an array (or buffer) but the contents are replaced by whatever data is on the MOSI line at that time. This is problematic when using the SPI hardware to control things like displays or addressable LED strips because it requires you to re-set the data in the array each time. You can read more about the inspiration for this board here.

The BufferSaver is an extremely compact board designed to sit in series with the power and data lines going to an LED strip or any other one-way SPI interface. A tri-state buffer is used to connect the MOSI and MISO lines when activated so that you can circumvent the Arduino library implementation of SPI.transfer() that would otherwise overwrite your data.

Eliminating the step of re-writing LED or pixel data always increases efficiency and can as much as double your frame rate or maximum number of pixels in ideal situations!

We do not plan to regularly produce SparkX products so get them while they’re hot!

Experimental Product: SparkX products are rapidly produced to bring you the most cutting edge technology as it becomes available. These products are tested but come with no guarantees. Live technical support is not available for SparkX products. Head on over to our forum for support or to ask a question.
  • 10 MHz maximum bitrate
  • 5.5V maximum supply voltage
  • Small form factor
    • 12.6 x 18.2 x 3.0 mm standard
    • 12.6 x 10.3 x 3.0 mm compact (cut off on dashed line)


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #538406 / about 3 years ago / 2

    This may sound crass, but why isn't the Arduino SPI library modified to include a method that doesn't overwrite, like the ESP8266 and ESP32 versions? See writeBytes method exposed on those libraries.

    • Member #1573123 / about 2 years ago / 1

      Yeah exactly. This is a software problem. It should be fixed in software, not worked around in hardware. See my thoughts on the Sparkfun blog post explaining the hardware: https://www.sparkfun.com/news/2762#comment-5e256cdf2cf87879ef7838d3

      • Santa Claus Impersonator / about 2 years ago * / 1

        If I remember correctly this product was born from the issue of running too many addressable LEDs. In that scenario, the engineer was trying to maximize the data rate for an LED matrix display that was showing an animation. I believe the hardware solution ended up outperforming the software solution.

  • Member #1627680 / about 2 years ago * / 1

    This will be working nice with PIC32 spi microcontroller and some sample anywhere?

Customer Reviews

No reviews yet.