@@ -6,20 +6,24 @@ This device plugs into the back of a 48K ZX Spectrum and provides the
66functionality of the original 1984 "ZX Spectrum Expansion System". It
77emulates 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
3740Derek 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