Using SD card to replace data cassette

Hi all,
I am back to this project. To recap I have an old sequencer that saves to a data cassette. The cassette drive is dead. The data appears to be binary while observed through a scope.
I used this code to see if I get a reading:

int incomingByte = 0;   // for incoming serial data

void setup() {
        Serial.begin(2400);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.println(incomingByte, BIN);
        }
}

The serial begin is set as 2400 as that is what the cassette drive service manual states as the transfer rate.
The serial monitor spat out some binary code. So now I am lost as where to go. I would like to save the binary stream to an SD card then read it back, emulating the cassette drive. I have an SD shield.
Any ideas as to where I can go from here?
Many thanks in advance!

So what the cassette drive does after recording the data?

Does the service manual state that the data are sent in RS232 format (start bit, 8 data bits, 1 or more stop bits)?
If it is sending just a bitstream, using Serial to read the data is not going to work.

Pete

So what the cassette drive does after recording the data?

It rewinds the tape and plays back what it recorded to verify the data with the sequencer.
The service manual does not state what format the data is sent in. I attached the service manual just in case.
How would I go about recording just a bitstream?
Thanks
Al

The data appears to be binary while observed through a scope.

Can you post a screenshot of the scope view?

No manual attached.

kogz23:
It rewinds the tape and plays back what it recorded to verify the data with the sequencer.
The service manual does not state what format the data is sent in. I attached the service manual just in case.
How would I go about recording just a bitstream?
Thanks
Al

You are going to have to find some answers:

  • First, what is the modulation style?
    AM, amplitude modulation
    FM, frequency modulation
  • What is the baud rate?
    is the baud rate constant?
    Does the baud rate vary base on content?
  • What are the symbols used?
    is it a true binary bit stream?(only two symbols)
    Or is the symbol set variable?(tape quality, data type)
  • How many symbols are used?
    See prior.

Until you can answer most of these question, any recommendation would be pure conjecture.

Chuck.

Sorry, here is the service manual.
The baud rate is 2400.
I will see about the other questions and try and get a shot of the scope reading the data.

Braemar-CM-600Mini-DekDigitalMiniCassetteTransportOCR.pdf (1.08 MB)

Here a schematic for the source of the data that I need to record and send back to. I’m not sure if this might help determine what data format it might be…

The schematic is incomplete (cut off at the edges).

From the service manual, the tape drive just records and plays back a high/low data stream generated by some other device (your sequencer), within certain timing restrictions.

The actual data encoding/decoding scheme is in the sequencer, possibly Manchester.

It would be possible to record and play back the data stream more or less exactly as presented, for example you could store the times in microseconds between each high/low transition, but that would be very wasteful of space.

What the sequencer actually does?
Have you thought of replicating the sequencer functionality?
It might be easier.
As I found out in older threads, writing SD card from arduino may delay occasionally for more than 100ms. In that amount of time you can lose quite a few bits from the serial port (or input port) since I doubt the SD writing can be interrupted when serial data has to be read.

Hi all,

the sequencer is a musical one. It is the Sequential Circuits Poly sequencer. Retro Synth Ads: Sequential Circuits Inc. Poly-Sequencer ad w/ Prophet-5, 1981/1982

It stores up to 512k of data.
Here is a screenshot of the data that is sent to the cassette. Hopefully this will help in determining the format
So I think is is FM style.
Thanks as ever!
Al

Data stored on cassettes are very often FM encoded. One standard was 1200 Hz = 1, 2400 Hz = 0. It would take much more than that screen shot to figure out how your data are encoded, though. It would be good to find a circuit diagram or manual for the sequencer.

Suggest to use Audacity on a laptop to make a recording of a complete "output file" from the sequencer, like this.

Look up Kansas City Standard to see what the hobbyists were doing in the 1980s.

Here is the full schematic for the sequencer.
Page 1 is where most of the connections to and from the cassette drive are located.
Other than this how can I determine what format the data is in?
Thanks

SCI Poly Sequencer.pdf (745 KB)

Not much in the way of helpful hints on the schematic.

I recorded the data like you suggested. I am at a loss as how to determine anything from looking at the waveform. Where there is no information it is a steady square wave. The information part is a square wave with modulating frequency. I can not make out a pattern.
Is it possible I can record this data as a wav file and deal with it like that? Treat it as an audio file and side step the need to know the format?
Thanks

Here is a description of how the cassette deals with storing some of the data

SEQUENTIAL_PROPHET-5-REV3_SERVICE_MANUAL 34.pdf (89 KB)

kogz23:
Here is a description of how the cassette deals with storing some of the data

Do you have a schematic for board3?

Base on the Cassette interface description, I suspect all of the cassette info is on SD332.

Chuck.

If you look at page 8 of the cassette manual it says that the data are phase encoded.
That bit stream in their example is Manchester encoded and the bitstream that you show in 20160929_104030.jpg can be interpreted as a Manchester encoded bitstream.
See the example diagram in the Description section of Manchester code - Wikipedia
The example in the cassette manual doesn't line up the bit values with the transitions between zero and one but if you read the signal as Manchester, it does produce the same bit values as shown.

Pete
P.S. the Manchester encoding will make it easy to decode because you know there's only data there when a transition occurs on the data line.
Then all you have to do is read that data and the other control lines to figure out what is being written to the tape.

Here is the schematic for board 3.
So assuming it is Manchester encoding can you direct me has to how I should go about reading this data? This is my first project, so I apologize for my greenness!
Thanks

prophet board 3.pdf (322 KB)

It is interesting that the sequencer manual from post #15 states FSK encoding.

One interpretation of the screen shot is certainly consistent with FSK, but Manchester is also a possibility.

@kogz23: Can you post a .WAV file of the entire data dump? Audacity can convert your recording to .WAV.