Page 1 of 3 123 LastLast
Results 1 to 10 of 22
  1. #1
    Amiga PT user VIP
    My location

    Tiago's Avatar
    Join Date
    Aug 2007
    Location
    Estoril/Lisbon
    Posts
    2,419
    Downloads
    0
    Uploads
    0

    Arduino to play the audio file in Zx Spectrum

    Hi,
    some time ago i remember someone here to talk about a circuit to read the audio from a tape into the ZX Spectrum
    Well i am trying to do something similar:
    I bought an small cricuit that has a sdcard slot and a 2.5 output jack. It reads mp3/wav files. The price is +/- 5 euros.
    I am using the Arduino, i am using the UNO 3, but it can be done with the smaller one, the Nano. I connect the mp3 board to the Arduino, put a mp3 in the scard, and with some wire and programming i was able to play the mp3 and listen in headphones. It needs a 5v but with the Arduino nano it can be done with 3v. I will now put a LCD screen to see the name of the files in the sdcard, and some buttons to choose the file and play it.
    Putting the ZX game file in mp3 or wav and connect the Arduino into the ZX, i think i can create a player for the ZX with a size smaller then a credit card. Total production cost should be around 20 euros.

    Arduino nano +/- 6 euros
    LCD +/- 7 euros
    MP3 card +/- 5 euros
    Buttons +/- 2 euros
    wire+solder +/- 50 cents

    The lcd needs a lot of iron solder to put all cables connected to the arduino.
    The game will take the same time to load, but you can have all games in the sdcard. It is the same concept to the Amiga HXC, but simple to do it.
    I am sure someone did this before, but it's quite fun to do it yourself.
    A500 - A600 - A1200

  2. #2
    I am Legion for we are many. Staff Member
    My location

    Buleste's Avatar
    Join Date
    Oct 2007
    Location
    Staffordshire Moorlands
    Posts
    4,079
    Downloads
    1
    Uploads
    0
    A friend and I made something for most 8-bits that use a standard tape deck and added motor control to it. We never got anyone with a Spectrum to test it though.

    I'd love to see pictures and a link to the mp3/sdcard/audio output as that could make a lot of difference to the project with playback frequencies.

    http://arduitapemarkii.blogspot.co.uk/
    A1200 Power Tower
    OS 3.9 / CGX4 / OS4.0
    Blizzard 210Mhz (overclocked to 266Mhz) 603e PPC with 25Mhz 040 (Overclocked to 33Mhz) 256Mb RAM
    ZIV
    CV64/3D
    3.2Gb HDD + 20GB HDD

  3. #3
    Amiga PT user VIP
    My location

    Tiago's Avatar
    Join Date
    Aug 2007
    Location
    Estoril/Lisbon
    Posts
    2,419
    Downloads
    0
    Uploads
    0
    Hi Buleste, the circuit is this one:
    http://www.dx.com/p/uart-control-ser...9#.VjNvkuztlHw
    A500 - A600 - A1200

  4. #4
    I am Legion for we are many. Staff Member
    My location

    Buleste's Avatar
    Join Date
    Oct 2007
    Location
    Staffordshire Moorlands
    Posts
    4,079
    Downloads
    1
    Uploads
    0
    Quote Originally Posted by Tiago View Post
    Hi Buleste, the circuit is this one:
    http://www.dx.com/p/uart-control-ser...9#.VjNvkuztlHw
    Thanks for that I am seriously going to have to build another version of the Arduitape
    A1200 Power Tower
    OS 3.9 / CGX4 / OS4.0
    Blizzard 210Mhz (overclocked to 266Mhz) 603e PPC with 25Mhz 040 (Overclocked to 33Mhz) 256Mb RAM
    ZIV
    CV64/3D
    3.2Gb HDD + 20GB HDD

  5. #5
    Amiga PT user VIP
    My location

    Tiago's Avatar
    Join Date
    Aug 2007
    Location
    Estoril/Lisbon
    Posts
    2,419
    Downloads
    0
    Uploads
    0
    The code is not that difficult. I was able to put it to play an mp3 and could do a play/pause with a input. It is easy to put a potentiometer to control volume. And 3 or 4 buttons to choose a file to play from the sdcard. this last part i need to read more about it.

    check the base code:

    /***********************************************************/
    //Demo for the Serial MP3 Player by Catalex
    //Hardware: Serial MP3 Player *1
    //Board: Arduino UNO R3
    //IDE: Arduino-1.0
    //Function: To play the first song in the micro sd card.
    //Store: http://www.aliexpress.com/store/1199788
    // http://www.dx.com/
    #include <SoftwareSerial.h>

    #define ARDUINO_RX 5//should connect to TX of the Serial MP3 Player module
    #define ARDUINO_TX 6//connect to RX of the module
    SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);

    static int8_t Send_buf[8] = {0} ;

    #define CMD_PLAY_W_INDEX 0X03
    #define CMD_SET_VOLUME 0X06
    #define CMD_SEL_DEV 0X09
    #define DEV_TF 0X02
    #define CMD_PLAY 0X0D
    #define CMD_PAUSE 0X0E
    #define CMD_SINGLE_CYCLE 0X19
    #define SINGLE_CYCLE_ON 0X00
    #define SINGLE_CYCLE_OFF 0X01
    #define CMD_PLAY_W_VOL 0X22

    void setup()
    {
    mySerial.begin(9600);
    delay(500);//Wait chip initialization is complete
    sendCommand(CMD_SEL_DEV, DEV_TF);//select the TF card
    delay(200);//wait for 200ms
    sendCommand(CMD_PLAY_W_VOL, 0X0F01);//play the first song with volume 15 class
    }
    void loop()
    {

    }

    void sendCommand(int8_t command, int16_t dat)
    {
    delay(20);
    Send_buf[0] = 0x7e; //starting byte
    Send_buf[1] = 0xff; //version
    Send_buf[2] = 0x06; //the number of bytes of the command without starting byte and ending byte
    Send_buf[3] = command; //
    Send_buf[4] = 0x00;//0x00 = no feedback, 0x01 = feedback
    Send_buf[5] = (int8_t)(dat >> 8);//datah
    Send_buf[6] = (int8_t)(dat); //datal
    Send_buf[7] = 0xef; //ending byte
    for(uint8_t i=0; i<8; i++)//
    {
    mySerial.write(Send_buf[i]) ;
    }
    }
    A500 - A600 - A1200

  6. #6
    I am Legion for we are many. Staff Member
    My location

    Buleste's Avatar
    Join Date
    Oct 2007
    Location
    Staffordshire Moorlands
    Posts
    4,079
    Downloads
    1
    Uploads
    0
    Did you have to rename the mp3 files to fit with the code?
    A1200 Power Tower
    OS 3.9 / CGX4 / OS4.0
    Blizzard 210Mhz (overclocked to 266Mhz) 603e PPC with 25Mhz 040 (Overclocked to 33Mhz) 256Mb RAM
    ZIV
    CV64/3D
    3.2Gb HDD + 20GB HDD

  7. #7
    Amiga PT user VIP
    My location

    Tiago's Avatar
    Join Date
    Aug 2007
    Location
    Estoril/Lisbon
    Posts
    2,419
    Downloads
    0
    Uploads
    0
    I just rename to avoid strange characters. Some readers tend to not recognize strange ascii symbols. But it can read long file names. But you can have any name in the mp3.
    My test was with a hangar18_rust_in_peace_megadeth.mp3 or something like this. but it had same %$# symbols in the file name, so i remove those.


    But:
    - it has to be bellow 44kbs
    - the sdcard must be bellow 2GB
    - the scdard bus be FAT or FAT32

    There are other cards that can read bigger cards and mp3 at 192kbs or higher but they are more expensive. For what i need i this one is enough.
    A500 - A600 - A1200

  8. #8
    I am Legion for we are many. Staff Member
    My location

    Buleste's Avatar
    Join Date
    Oct 2007
    Location
    Staffordshire Moorlands
    Posts
    4,079
    Downloads
    1
    Uploads
    0
    Just had a look and it can handle Micro SDHC cards <= 16GB so that's that one and as most tap, cas, etc files were originally recorded at 41MHZ that's fine.

    Just getting my head around the controls for buttons. Did the LCD display the LFN or have you not got that far?
    A1200 Power Tower
    OS 3.9 / CGX4 / OS4.0
    Blizzard 210Mhz (overclocked to 266Mhz) 603e PPC with 25Mhz 040 (Overclocked to 33Mhz) 256Mb RAM
    ZIV
    CV64/3D
    3.2Gb HDD + 20GB HDD

  9. #9
    Amiga PT user VIP
    My location

    Tiago's Avatar
    Join Date
    Aug 2007
    Location
    Estoril/Lisbon
    Posts
    2,419
    Downloads
    0
    Uploads
    0
    Did the LCD display the LFN or have you not got that far?
    LFN? What is that?
    A500 - A600 - A1200

  10. #10
    I am Legion for we are many. Staff Member
    My location

    Buleste's Avatar
    Join Date
    Oct 2007
    Location
    Staffordshire Moorlands
    Posts
    4,079
    Downloads
    1
    Uploads
    0
    LongFileNames rather than being stuck with the usual 8+3.

    I've ordered a couple along with Nanos and 1602's and made a proto board. I'm going to see which MSX games I can find which don't need Motor control and test it at the normal Arduitape frequency and then the standard cas2wav frequency to see how well the Wav playback is with the computer and then it's a case of rewriting the Arduitape software first to work with .WAV files and then to see if it will work converting as well.
    A1200 Power Tower
    OS 3.9 / CGX4 / OS4.0
    Blizzard 210Mhz (overclocked to 266Mhz) 603e PPC with 25Mhz 040 (Overclocked to 33Mhz) 256Mb RAM
    ZIV
    CV64/3D
    3.2Gb HDD + 20GB HDD

Similar Threads

  1. Christmas Tree USB Arduino
    By Tiago in forum General Chat
    Replies: 3
    Last Post: 11th November 2013, 17:24
  2. Technology My first Arduino proj. with video - 25 leds
    By Tiago in forum General Chat
    Replies: 2
    Last Post: 19th February 2013, 10:35
  3. ZX Spectrum - just finish repairing a ZX 48K
    By Tiago in forum General Retro Chat
    Replies: 10
    Last Post: 22nd August 2012, 10:57
  4. Any former Spectrum users on this board?
    By Ghost in forum General Retro Chat
    Replies: 26
    Last Post: 12th September 2007, 11:14
  5. Music Spectrum Analyzer Software
    By Submeg in forum General Chat
    Replies: 2
    Last Post: 10th August 2007, 01:02

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright classicamiga.com