I made a single board 6502 machine of my own design. (actually finishing up the final PCBs now) That said. This is one thing I always wanted to incorporate: a cassette interface for my monitor and basic. This seems like a great way to achieve that. This gives me ideas. Thank you for showing this off!
Go right ahead! :D I believe you also know where to find the driver code I published for my 6502sbc - it uses the 6522's T1 output to PB7 and CA1 as the interrupt input.
@@mawizard6341 the concepts not bad the execution just sucked. What made it suck more was that regular modems had gotten pretty cheap anyhow. Anyway with isdn cards the 'passive' isdn cards (though digital) often behaved better than more expensive active cards in sense of getting lower ping even. Its a bit(a little bit) like winmodems in concept, but the user experience was great mostly, though for ours to get dialup working in windows you had to get the sw by doing a isdn call into germany... But linux distros had drivers on the disc(mid 90s) and man pages telling what to do..
It seems like, with just a tad bit more circuitry, you could build this into a half-decent full-duplex design. I believe the Texas Instruments graphics calculators use some similar circuitry along with an extremely clever (in it's simplicity) protocol to allow a single TRS jack to operate full-duplex like that.
@@AndersNielsenAA That's a good point! It does look like a neat way to get two C64s (or other modern-retro equivalents/DIY computers) to talk to each other. I'm surprised at how straightforward the circuit is to be honest.
I have 0 experience with 1802 based systems, so I'll have to go with a strong "maybe". You need an edge triggered interrupt for RX and a timer/pin capable of outputting 1200/2400Hz for TX. Easily done with a 6522 or Arduino - dunno about an 1802 system.
This is awesome! I'd love to tack it onto a cyberdeck-style project! I'm curious, could you switch the jumpers for switches? And you mentioned that the harmonics of a square wave would mess with the signal, how so? (Signal processing has always been one of those things I never found approachable but always was curious about).
I’m pretty sure switches with 0,1” spacing and three poles exist and would fit right in the existing footprint. A square wave is the sum of the fundamental frequency and all the odd harmonics. A lot of audio devices will have a hard time faithfully reproducing them - especially if clipping a bit on the input or output. And there’s also no way of knowing exactly what happens when you feed a random tape head a frequency it can’t reproduce - like infinite harmonics. And then suddenly 1200Hz looks like 2400Hz and your data is messed up :)
If you are using frequency shift keying then you really need a clean single frequency sine wave, any distortion of this wave is caused by addition of harmonics (other frequencies) so it is then harder to determine which is the fundamental frequency. A square wave is particularly bad in this respect given that a perfect square wave is the sum of infinite harmonics. At that point it becomes quite difficult to distinguish between the fundamental frequency you want to detect and the harmonics.
Presumably it's (I believe the term is) half duplex, and if you wanted to rig up two way communication instead of time shifting a signal, you'd need four of these?
Yup, it's half duplex. Since it's intended for storing data to audio rather than communication the extra complexity would not make much sense. It's very rare the Walkman you're talking to tries to talk back at you ;-) That didn't keep the early computer homebrewers from hooking a half duplex modem up to a phone line acoustically - maybe hanging up the phone and ringing it again to signal it's time to turn around the handset. There were also modems intended to have a low bandwidth in one direction used for this type of signalling.
in layman's word, can I say that this converts data like suppose we have a txt file to an mp3 file so that mp3 player can save the information and after saving we can still acess the file as txt using this, right?
Well, kind of. It’s more like the modem converts the tones the computer is capable of creating(as representations of data) into tones that are suitable for storing as audio without distortion, and also converting the audio tones back into square waves the computer can handle easier.
@@AndersNielsenAA I should say I want to encode normal audio into digital and send it out using fsk or the method you have utilized and then decode it and play it back for a bit of fun. It's a really cool project and I hope you show more of it
@@JustinWhos Considering CD quality audio is about 9Mb per minute, the audio recording to hold one minute of data at 1200 baud would be about 1000 minutes if I’m not horribly off :) Haven’t seen that long tape reels I think 💭 Audio straight to tape doesn’t come with the 1000x penalty
I made a single board 6502 machine of my own design. (actually finishing up the final PCBs now)
That said. This is one thing I always wanted to incorporate: a cassette interface for my monitor and basic. This seems like a great way to achieve that.
This gives me ideas. Thank you for showing this off!
Neat project. I'm not sure why, but I always like seeing solutions that let retro and modern tech interface.
Most impressive. Well done.
This is an awesome project. Seems like it would be a great fit sitting next to a 6522. I may have to steal this design on my SBC I am building. 🙂
Go right ahead! :D I believe you also know where to find the driver code I published for my 6502sbc - it uses the 6522's T1 output to PB7 and CA1 as the interrupt input.
Love it! Thanks for sharing! No IRQ Problems :P
That's really interesting. It's basically a win modem from back in the day!
At the time, I HATED them. But logicly it makes perfect sense to do it this way. Why have specialized hardware for what software can do.
@@mawizard6341 the concepts not bad the execution just sucked.
What made it suck more was that regular modems had gotten pretty cheap anyhow.
Anyway with isdn cards the 'passive' isdn cards (though digital) often behaved better than more expensive active cards in sense of getting lower ping even. Its a bit(a little bit) like winmodems in concept, but the user experience was great mostly, though for ours to get dialup working in windows you had to get the sw by doing a isdn call into germany... But linux distros had drivers on the disc(mid 90s) and man pages telling what to do..
It seems like, with just a tad bit more circuitry, you could build this into a half-decent full-duplex design. I believe the Texas Instruments graphics calculators use some similar circuitry along with an extremely clever (in it's simplicity) protocol to allow a single TRS jack to operate full-duplex like that.
Yes, it wouldn't take too much - but when you expect to be talking to a tape deck you'd never need it :D
@@AndersNielsenAA That's a good point! It does look like a neat way to get two C64s (or other modern-retro equivalents/DIY computers) to talk to each other. I'm surprised at how straightforward the circuit is to be honest.
nice job.
Oh cool! I can use this with my VIP2K kit
I have 0 experience with 1802 based systems, so I'll have to go with a strong "maybe". You need an edge triggered interrupt for RX and a timer/pin capable of outputting 1200/2400Hz for TX. Easily done with a 6522 or Arduino - dunno about an 1802 system.
@@AndersNielsenAA worst case scenario, I can probably adapt the design some, or do some other hacky solution.
This is awesome! I'd love to tack it onto a cyberdeck-style project! I'm curious, could you switch the jumpers for switches? And you mentioned that the harmonics of a square wave would mess with the signal, how so? (Signal processing has always been one of those things I never found approachable but always was curious about).
I’m pretty sure switches with 0,1” spacing and three poles exist and would fit right in the existing footprint.
A square wave is the sum of the fundamental frequency and all the odd harmonics. A lot of audio devices will have a hard time faithfully reproducing them - especially if clipping a bit on the input or output. And there’s also no way of knowing exactly what happens when you feed a random tape head a frequency it can’t reproduce - like infinite harmonics.
And then suddenly 1200Hz looks like 2400Hz and your data is messed up :)
If you are using frequency shift keying then you really need a clean single frequency sine wave, any distortion of this wave is caused by addition of harmonics (other frequencies) so it is then harder to determine which is the fundamental frequency. A square wave is particularly bad in this respect given that a perfect square wave is the sum of infinite harmonics. At that point it becomes quite difficult to distinguish between the fundamental frequency you want to detect and the harmonics.
Presumably it's (I believe the term is) half duplex, and if you wanted to rig up two way communication instead of time shifting a signal, you'd need four of these?
Yup, it's half duplex. Since it's intended for storing data to audio rather than communication the extra complexity would not make much sense. It's very rare the Walkman you're talking to tries to talk back at you ;-) That didn't keep the early computer homebrewers from hooking a half duplex modem up to a phone line acoustically - maybe hanging up the phone and ringing it again to signal it's time to turn around the handset. There were also modems intended to have a low bandwidth in one direction used for this type of signalling.
This looks kinda cool.... I've been thinking about building something like this.... but now I can just steal your design.
Been looking for something like this for a Z80 build I'm doing. Would love to see a code example for interfacing with an Arduino.
I’ll see if I can find the time to make that happen :)
in layman's word, can I say that this converts data like suppose we have a txt file to an mp3 file so that mp3 player can save the information and after saving we can still acess the file as txt using this, right?
Well, kind of. It’s more like the modem converts the tones the computer is capable of creating(as representations of data) into tones that are suitable for storing as audio without distortion, and also converting the audio tones back into square waves the computer can handle easier.
Is there a way I encode human sound converter it to binary data and send it in to one of these and then decode it back with another one?
Human sound?
@@AndersNielsenAA I should say I want to encode normal audio into digital and send it out using fsk or the method you have utilized and then decode it and play it back for a bit of fun.
It's a really cool project and I hope you show more of it
@@JustinWhos Considering CD quality audio is about 9Mb per minute, the audio recording to hold one minute of data at 1200 baud would be about 1000 minutes if I’m not horribly off :)
Haven’t seen that long tape reels I think 💭
Audio straight to tape doesn’t come with the 1000x penalty
@@AndersNielsenAA would it be possible to compress the audio like VoIP and increase the buad rate
@@JustinWhos MP3 is about 1MB/minute - but then you suddenly need a computer anyway 💻 And if you have that - you don’t need this :)