Skip to content

Commit

Permalink
Complete redesign
Browse files Browse the repository at this point in the history
The README.md filem was completely redesigned to provide better information, fixing typos and bugs
  • Loading branch information
Jujan authored Feb 9, 2018
1 parent 896a3ef commit 4551749
Showing 1 changed file with 63 additions and 54 deletions.
117 changes: 63 additions & 54 deletions README.md
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/>
&nbsp;&nbsp;D6 -> MOTOR CONTROL (Connected to one side of the 2.5mm socket. Only used on some CPC models.)<br/>
&nbsp;&nbsp;D7 -> BUTTON (ROOT)<br/>
&nbsp;&nbsp;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/>
&nbsp;&nbsp;A0 -> BUTTON (DOWN)<br/>
&nbsp;&nbsp;A1 -> BUTTON (UP)<br/>
&nbsp;&nbsp;A2 -> BUTTON (STOP)<br/>
&nbsp;&nbsp;A3 -> BUTTON (PLAY)<br/>
&nbsp;&nbsp;A4 -> LCD SDA<br/>
&nbsp;&nbsp;A5 -> LCD SCL<br/>
<br/>
LCD pins:<br/>
&nbsp;SDA -> Arduino A4<br/>
&nbsp;&nbsp;SCL -> Arduino A5<br/>
&nbsp;VCC -> 5V<br/>
GND -> GND<br/>
<br/>
SD Card pins:<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5V -> 5V<br/>
&nbsp;GND -> GND<br/>
SDCS -> D10 Arduino<br/>
MOSI -> D11 Arduino<br/>
MISO -> D12 Arduino<br/>
&nbsp;&nbsp;&nbsp;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)

0 comments on commit 4551749

Please sign in to comment.