I have a ESP8266-01 and a 74HC595 8-bit shift register. I can drive the shift register using the ESP8266, but the ESP8266 doesn't have a SPI interface. I have a Microchip 23LC1024 that I want to drive using the ESP8266. I was wondering if it is possible to drive a SPI slave by bit banging with the shift register?

  • 1
    \$\begingroup\$ I'm not understanding what benefit this shift register is going to have here. It looks like it's a serial in/parallel out SR. The serial input is basically SPI. If you can talk to that with the ESP8266 perhaps you can talk directly to the SPI slave by bit banging? \$\endgroup\$
    – cholz
    Jul 22, 2021 at 15:18
  • \$\begingroup\$ Why can't you talk SPI directly from the ESP8266? You don't need an SPI interface to talk SPI. The interface just makes it more efficient. \$\endgroup\$
    – user253751
    Jul 22, 2021 at 16:20
  • \$\begingroup\$ use a esp8266 module with SPI pins accessible \$\endgroup\$
    – Juraj
    Jul 23, 2021 at 4:44

1 Answer 1


Yes, you could do it. As long as you are able to read data back from the memory chip somehow.

However, the HC595 is already on SPI-compatible bus. So you would be bit-banging SPI to shift register acting as IO expander, and then use the IO expander to bit-bang SPI to SPI Flash chip, which makes very little sense.

It would make more sense to use the bit-banged SPI to the HC595 also for the SPI flash, you only need separate chip selects (and data back from flash).

  • \$\begingroup\$ If I got you correctly, you're saying that I can just skip the HC595? \$\endgroup\$
    – YoavKlein
    Jul 22, 2021 at 19:10
  • \$\begingroup\$ Yes, because you would be bit-banging the SPI bus from HC595 to flash, over a bit-banged SPI bus from MCU to HC595. \$\endgroup\$
    – Justme
    Jul 22, 2021 at 19:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.