External Flash Memory Module

https://www.espruino.com/EEPROMs
http://forum.espruino.com/conversations/269195/
https://github.com/pastaclub/espruino-w25q/blob/master/W25Q.js
https://www.thepositiverail.com/blog/debugging-spi-memory-the-winbond-w25q80bv http://forum.espruino.com/conversations/283045/
https://github.com/Marzogh/SPIMemory/releases/tag/v3.3.0
https://forum.arduino.cc/index.php?topic=324009.0

Winbond WQ25

It is organized in pages of 256 bytes each. Before writing to SPI Flash, the Flash must be erased. In the case of Winbond WQ25, individual pages cannot be erased-the minimum erase operation erases 16 pages at once. These page sections are:

number

start page

end page

1

0

15

2

16

31

3

32

47

4

48

63

5

64

79

6

80

95

7

96

111

8

112

127

9

128

143

10

144

159

etc.
Note: If you send a command to erase a section with a page number in between start and end, the section in which the page is will be erased.
For example:
If you send a command to erase at page 5, then pages 0 to 15 will be erased.

SD Cards

https://www.espruino.com/File+IO
Method 1: Solder Micro SD adapter to wires

Method 2: Use Micro SD breakout board


Method 3: SD card connector on PCB

(yes but it's SMD)
Method 4: SD card connector on breakout board without additional parts
https://www.pololu.com/product/2597

Connect breakout board to Espruino


SPI Mode:
use 100K pull-p resistor from /CS to VDD
Note: It is important to use a 100K resistor as pull-up, a 10K resistor did not work!
http://www.espruino.com/Reference#l_E_connectSDCard
https://www.espruino.com/Shims#microsd-0-1-adaptor

It seems like when you get the error
Uncaught Error: Unable to mount media : NOT_READY
it helps to unpower the Espruino and SD-card, but for a "while" (capacitors?) and then re-power it
Perhaps power-cycling the SD-card is necessary
Or that in combination with removing (click) and re-inserting the SD card, or reading the card in a PC)