Skip to content

Commit 9e27d77

Browse files
committed
update README
1 parent 1916c8d commit 9e27d77

File tree

1 file changed

+98
-8
lines changed

1 file changed

+98
-8
lines changed

README.md

Lines changed: 98 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@ This device plugs into the back of a 48K ZX Spectrum and provides the
66
functionality of the original 1984 "ZX Spectrum Expansion System". It
77
emulates a ZX Interface One with 8 ZX Microdrives.
88

9-
The goal is total compatibility with all 1980s software with no ROM
10-
modifications or other hacks.
9+
The device is completely compatible with all 1980s software. It uses no
10+
ROM modifications or other hacks.
1111

12-
The first version supports the ZX Microdrives; RS232 and ZX Net might follow.
12+
The first version is complete and supports the ZX Microdrives as
13+
designed; the RS232 and ZX Net features of the Interface One might follow.
1314

14-
Open source, open hardware design.
15+
The project is open source, open hardware design, distributed under the
16+
GPL licence.
17+
18+
Click through for a brief demonstration:
1519

1620
[![IMAGE ALT TEXT](http://img.youtube.com/vi/kph2aS7qcVc/0.jpg)](http://www.youtube.com/watch?v=kph2aS7qcVc "ZX Spectrum Expansion System, Recreated")
1721

18-
https://youtube.com/shorts/kph2aS7qcVc?feature=share
22+
https://youtube.com/kph2aS7qcVc?feature=share
1923

2024
## Status
2125

22-
As of July 2023 version 1.0 is complet:
26+
As of July 2023, version 1.0 is complete:
2327

2428
![alt text](images/zses_2.jpg "v1.0")
2529

@@ -28,10 +32,96 @@ It is functionally complete:
2832
* Spectrum can read and write all 8 microdrives
2933
* Uses "MDR" image format for "cartridges", fully compatible with emulators
3034
* Full ZX Interface One ROM support, all native BASIC commands and extensions work as designed
31-
* Bug for bug compatible
3235
* MDR files loaded from, and saved back to, SD card
3336
* User interface uses file selector to choose and "insert" a cartridge
34-
* Cartridge eject works, allowing cartridges to be changed as required
37+
* Cartridge eject, allowing cartridges to be changed as required
3538
* Configuration file allows auto-insertion of selected cartridges at start up
3639

3740
Derek Fountain, July 2023
41+
42+
43+
# Operation
44+
45+
It should be fairly obvious. Select the Microdrive with the rotary encoder, click the right
46+
button to bring up the file selector, use the rotary to select and click the right button
47+
again. The left button cancels.
48+
49+
The file selector only brings up files named *.mdr, and it doesn't do subdirectories. This
50+
could be improved.
51+
52+
If you create a file in the root of your SD card called zxes_config.txt (that's not a
53+
typo, I have an issue open to rename that file to match the reset of the project) and
54+
enter up to 8 lines, each with a filename giving the name of an MDR file on your SD card,
55+
those cartridge images will be loaded into the Microdrives on startup. (Startup meaning the
56+
Pico startup, not the Spectrum start up.)
57+
58+
59+
# Build Guidance
60+
61+
If you want to have a go at building one, please ensure you check out the open issues first.
62+
There are a few, um, anomalies, which you might want to consider or work around. If I do
63+
another spin of the boards I should be able to clear these up.
64+
65+
That said...
66+
67+
All my surface mount component footprints are metric 3216 sized (1206i). Those are easy to hand solder.
68+
69+
The OLED screen needs a SSD1306 chipset if you want to use my code. Be careful, some SSH1106
70+
based screens are labelled SSD1306. Those won't work without modifications to the code.
71+
72+
I've used long legged header sockets (female) to raise the top board well up above the Picos. If you
73+
use the normal ones they probably won't be tall enough, unless you choose not to socket the Picos.
74+
75+
## Bill of Materials
76+
77+
You will need:
78+
79+
2x [74LVC245 Bus transceiver](https://www.mouser.co.uk/ProductDetail/595-SN74LVC245ANSR)
80+
Bus transceiver, used as a level shifter
81+
<br>
82+
1x [3216 SMD Diode](https://www.mouser.co.uk/ProductDetail/581-SD1206S040S2R0)
83+
Schottky Diode for Pico input protection
84+
<br>
85+
1x [4075 OR gate](https://www.mouser.co.uk/ProductDetail/595-SN74HCS4075DR)
86+
3-way 3-input OR gate
87+
<br>
88+
4x [3216 SMD 0.1uF capacitor](https://www.mouser.co.uk/ProductDetail/581-12065C104KAT4A)
89+
Decoupling capacitor
90+
<br>
91+
1x [PMBT2222A SMD Transistor](https://www.mouser.co.uk/ProductDetail/771-PMBT2222A-T-R)
92+
NPN Transistor for /RESET
93+
<br>
94+
2x [3216 SMD 1K Resistor](https://www.mouser.co.uk/ProductDetail/603-RT1206FRE071KL)
95+
1K Resistor for /RESET and /ROMCS2 pulldown
96+
<br>
97+
8x [3216 SMD 150R Resistor](https://www.mouser.co.uk/ProductDetail/603-RT1206FRE07150RL)
98+
150R Resistor for data bus protection
99+
<br>
100+
1x [3216 SMD 330R Resistor](https://www.mouser.co.uk/ProductDetail/YAGEO/RT1206FRE07330RL)
101+
330R Resistor for LED current limitation
102+
<br>
103+
1x [APS6404L-3SQR-PSRAM64Mbit Serial DRAM](https://www.mouser.co.uk/ProductDetail/878-APS6404L-3SQR-SN)
104+
8MB SPI DRAM. A 1MB chip would probably be adequate.
105+
<br>
106+
107+
Also, from your parts bin:
108+
109+
3x Raspberry Pi Pico with pins and sockets if you want them
110+
<br>
111+
1x 3-pin header and socket
112+
<br>
113+
1x 6-pin header and socket
114+
<br>
115+
1x 10-pin header and socket
116+
<br>
117+
1x KY-040 rotary encoder. Mine came with a 90degree header pin which I replaced with a straight header
118+
<br>
119+
1x 90degree ZX Spectrum Edge Connector socket. I went for <a href="https://www.ebay.co.uk/itm/394156247495">this one</a>.
120+
<br>
121+
2x SPST switch. Any single pole, single throw switch should do, they are the reset buttons.
122+
<br>
123+
1x Push-push type SD card reader. I used <a href="https://www.ebay.co.uk/itm/133222265884">this one</a>.
124+
<br>
125+
1x 0.96" OLED display (SSD1306 based)
126+
<br>
127+
8x 3.0mm red LEDs. The faceplate holes are drilled for 3.0mm LEDs.

0 commit comments

Comments
 (0)