forked from sadken/TZXDuino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The README.md filem was completely redesigned to provide better information, fixing typos and bugs
- Loading branch information
Showing
1 changed file
with
63 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,70 +1,79 @@ | ||
#TZXDuino | ||
|
||
# TZXDuino | ||
Arduino based TZX and TAP (currently only ZX spectrum and Amstrad CPC flavour) file player.<br/> | ||
(Excuse the badly written code, I'm working on that ;) ) | ||
(Excuse the badly written code, I'm working on that ;) )<br/> | ||
|
||
## Parts Used | ||
1. Arduino (I used a Nano, but this should work on any NANO compatible) | ||
2. SD card module | ||
3. 16x2 I2C LCD | ||
4. Small audio amp, I used an LM386 module, but any headphone type amp should work | ||
5. 5 x Buttons (micro switches are best, but any should work) | ||
1. Arduino (I used a Nano, but this should work on any Nano compatible.)<br/> | ||
2. SD Card module<br/> | ||
3. 16x2 I2C LCD<br/> | ||
4. Small audio amplifier. (I used an LM386 module, but any headphone type amplifier should work.)<br/> | ||
5. 5 x Buttons (Micro switches are the best, but any should work.)<br/> | ||
|
||
## Installation | ||
Not All Libraries Are Equal! | ||
|
||
With so many variations on the SD, LCD I2C, and TimerOne libraries i thought I'd include them here. So to prevent any hair pulling moments use these versions of the libraries. | ||
**Not All Libraries Are Equal!**<br/> | ||
<br/> | ||
With so many variations on the SD, LCD I2C and TimerOne libraries I thought I'd include them here. So to prevent any hair pulling moments use these versions of the libraries. <br/> | ||
|
||
## Wiring | ||
All buttons and the motor control pull the pin to GND.<br/> | ||
<br/> | ||
Arduino pins:<br/> | ||
D6 -> MOTOR CONTROL (Connected to one side of the 2.5mm socket. Only used on some CPC models.)<br/> | ||
D7 -> BUTTON (ROOT)<br/> | ||
D9 -> Output (To amplifier)<br/> | ||
D10 -> SDCS (SD Card chip select)<br/> | ||
D11 -> MOSI (SD Card MOSI pin)<br/> | ||
D12 -> MISO (SD Card MI/MISO pin)<br/> | ||
D13 -> SCK (SD Card SCK pin)<br/> | ||
A0 -> BUTTON (DOWN)<br/> | ||
A1 -> BUTTON (UP)<br/> | ||
A2 -> BUTTON (STOP)<br/> | ||
A3 -> BUTTON (PLAY)<br/> | ||
A4 -> LCD SDA<br/> | ||
A5 -> LCD SCL<br/> | ||
<br/> | ||
LCD pins:<br/> | ||
SDA -> Arduino A4<br/> | ||
SCL -> Arduino A5<br/> | ||
VCC -> 5V<br/> | ||
GND -> GND<br/> | ||
<br/> | ||
SD Card pins:<br/> | ||
5V -> 5V<br/> | ||
GND -> GND<br/> | ||
SDCS -> D10 Arduino<br/> | ||
MOSI -> D11 Arduino<br/> | ||
MISO -> D12 Arduino<br/> | ||
SCK -> D13 Arduino<br/> | ||
|
||
All buttons and the motor control pull the pin to GND. | ||
|
||
Arduino Pins:<br/> | ||
06 -> MOTOR CONTROL (Connected to one side of the 2.5mm socket Only used on some CPC models)<br/> | ||
07 -> BUTTON (ROOT)<br/> | ||
09 -> Output (To Amp)<br/> | ||
10 -> SDCS (SD Card chip select)<br/> | ||
11 -> MOSI (SD Card MOSI PIN)<br/> | ||
12 -> MISO (SD Card MI PIN)<br/> | ||
13 -> SCK (SD Card SCK PIN)<br/> | ||
A0 14 -> BUTTON (DOWN)<br/> | ||
A1 15 -> BUTTON (UP)<br/> | ||
A2 16 -> BUTTON (STOP)<br/> | ||
A3 17 -> BUTTON (PLAT)<br/> | ||
A4 SDA 18 -> LCD SDA<br/> | ||
A5 SCL 19 -> LCD SCL<br/> | ||
## Usage | ||
Wire up as above, and program the Arduino using the IDE.<br/> | ||
<br/> | ||
Copy some TZX/TAP/CDT files onto a FAT32 formatted SD Card, plug it into the TZXDuino and power it on.<br/> | ||
<br/> | ||
LCD PINS:<br/> | ||
SDA -> Arduino A4<br/> | ||
SCL -> Arduino A5<br/> | ||
VCC -> 5v<br/> | ||
GND -> GND<br/> | ||
I suggest to format SD Card with this tool to ensure maximum compatibility.<br/> | ||
[SD Memory Card Formatter 5.0 for SD/SDHC/SDXC](https://www.sdcard.org/downloads/formatter_4/)<br/> | ||
**CAUTION: Formatting will cause complete data loss on SD Card. Make sure to backup the SD Card before formatting**<br/> | ||
<br/> | ||
SD CARD PINS:<br/> | ||
GND -> GND<br/> | ||
3.3V -> NC<br/> | ||
5V -> 5V<br/> | ||
SDCS -> 10 ARDUINO<br/> | ||
MOSI -> 11 ARDUINO<br/> | ||
SCK -> 13 ARDUINO<br/> | ||
MISO -> 12 ARDUINO<br/> | ||
GND -> GND<br/> | ||
**Button functions:**<br/> | ||
- UP/DOWN - No playback: move through the files<br/> | ||
During playback: Works as PREVIOUS/NEXT file.<br/> | ||
- PLAY - On file: starts playback.<br/> | ||
On directory: open directory.<br/> | ||
- STOP - During playback: stops playback.<br/> | ||
No playback: up a directory.<br/> | ||
- ROOT - During playback: restart playback.<br/> | ||
No playback: set TSX Baud Rate<br/> | ||
<br/> | ||
## Usage | ||
Wire up as above, and program the Arduino using the IDE. | ||
|
||
Drop some TZX/TAP/CDT files onto a FAT32 formatted SD card, plug it into the TZXDuino, and power on. | ||
|
||
Up/Down buttons move through the files, Play starts playback. | ||
|
||
To get files to load first time you'll need to adjust the volume until you get a strong signal on the Spectrum / CPC. | ||
Once you've got a strong signal you should able to load most files as if you were using a normal tape. | ||
To get files to load first time you'll need to adjust the volume until you get a strong signal on the Spectrum / CPC.<br/> | ||
Once you've got a strong signal you should able to load most files as if you were using a normal tape.<br/> | ||
|
||
## History | ||
Starting with the Arduitape WAV playing project, i've moved to playing TZX and TAP files directly without needing to convert them to a WAV file first. | ||
Starting with the Arduitape WAV playing project. I've moved to playing TZX and TAP files directly without needing to convert them to a WAV file first.<br/> | ||
|
||
## Credits | ||
Code: Andrew Beer | ||
|
||
Testing: Duncan Edwards | ||
Code: Andrew Beer<br/> | ||
<br/> | ||
Testing: Duncan Edwards<br/> | ||
<br/> | ||
Code update: [Jujan](https://github.com/Jujan) |