6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Jun 07, 2024 4:51 am

All times are UTC




Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Wed Jun 22, 2022 1:27 pm 
Offline
User avatar

Joined: Sun Dec 26, 2021 8:27 pm
Posts: 182
BigEd wrote:
I'm quite intrigued by this challenge, and I think I do have an answer, which is of course entirely theoretical... but let me try to say a bit more.


Nice work! :D

So basically:

Start a counter.
Note static bit boundaries in counter time. We can precalculate those for T1
IRQ and note zero crossings.
Check if middle of each bit boundary belongs to a "1" or a "0" period.
Reset T1 every 8 bits.

TI has a pretty ok appnote about using the 4046 as an FSK modem. Sadly they note that the frequency should be 100-fold the bitrate.

_________________
---
New new new new new video out! Serial Bootloader for my 65uino
Also, check out: I2C on a 6502 Single Board Computer
and Complete hardware overview of my 6502 SBC R1 :)


Top
 Profile  
Reply with quote  
PostPosted: Wed Jun 22, 2022 3:17 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10822
Location: England
Thanks!

I'm sure my pedestrian working-out could be streamlined... I'm not sure if just a few timings in hand would be enough or if a buffer of say 8 edges might be needed.

I think there are two subproblems though - interpolating a transition between high and low to guess at the bitcell boundary on the one hand, and on the other hand sampling in the middle of bitcells.

BTW I found a page with some waveform diagrams
https://www.notblackmagic.com/bitsnpieces/afsk/
but I don't think it helps us here... everything I find expects us to be reading from an ADC at a reasonable oversampling rate and doing DSP work. Working from edge timings isn't covered...


Top
 Profile  
Reply with quote  
PostPosted: Thu Jun 23, 2022 11:26 am 
Offline
User avatar

Joined: Mon Apr 23, 2012 12:28 am
Posts: 760
Location: Huntsville, AL
I don’t have access to the document at the moment, but IIRC, Texas Instruments wrote a very detailed application note on implementation of a Bell 202 modem with one of their DSPs. It described all of the modules required in detail, especially clock recovery. Maybe such a recipe may help your efforts in this project.

_________________
Michael A.


Top
 Profile  
Reply with quote  
PostPosted: Thu Jun 23, 2022 1:44 pm 
Offline
User avatar

Joined: Mon Apr 23, 2012 12:28 am
Posts: 760
Location: Huntsville, AL
Never mind. The application note that I was thinking applied to the Bell 202 modem instead applies to the Bell 212A/V.22 modem. It is a good backgrounder on the elements / modules needed for a modem, but the modulation scheme is Differential Phase Shift Keying (DPSK), and not the Frequency Shift Keying (FSK) used by the Bell 202 modem.

If interested, the application note can be found in the TI/Components/TMS320xx section of bitsavers.org in Chapter 9 of the 1990_TI_DSP_Applications_Vol_2 book.

The following chapter describes the implementation for an FSK split-band modem, i.e., a Bell 103 modem. The information provided in that chapter may be applicable to your efforts.

_________________
Michael A.


Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 25, 2022 9:17 pm 
Offline
User avatar

Joined: Sun Dec 26, 2021 8:27 pm
Posts: 182
MichaelM wrote:
Never mind. The application note that I was thinking applied to the Bell 202 modem instead applies to the Bell 212A/V.22 modem. It is a good backgrounder on the elements / modules needed for a modem, but the modulation scheme is Differential Phase Shift Keying (DPSK), and not the Frequency Shift Keying (FSK) used by the Bell 202 modem.

If interested, the application note can be found in the TI/Components/TMS320xx section of bitsavers.org in Chapter 9 of the 1990_TI_DSP_Applications_Vol_2 book.

The following chapter describes the implementation for an FSK split-band modem, i.e., a Bell 103 modem. The information provided in that chapter may be applicable to your efforts.


Thanks for the tip! 103 is certainly not far off - I think they tried to make it a thing on the HF bands downunder for APRS. I need think I need a better understanding of a few things to pull this off and that will certainly help - I feel a bit "early" on the dunning kruger scale... Which I guess might mean I'm not? XD

In other news I actually got it to work.. Ish.. Very -ish.. Basically what I did was to take advantage of the perfect sample from wiki and check where it went wrong. That gave me rules like, "if it's the second crossing for the bit and the first crossing matched 2200Hz but it looks more like a 1200Hz pulse we can assume it's a 2200Hz pulse followed by a 1200Hz pulse == finish the 2200Hz bit and also add the 1200Hz bit" ...

Rules like that actually made me end up with a decoded APRS packet, but it feels a bit silly - if tolerances are that tight, it's never going to work in real life.

I tried recording a few packets, threw them into Audacity and tried with filtering them a bit. Considering I'm counting the time between zero crossings there really isn't room for a lot of noise and 2 meter VHF has plenty of that. Even with good amount of luck and a 20dB SNR it doesn't really seem possible.
Looking at the waveforms I can see that they do consist of 1200 and 2200Hz waves - but variations in amplitude makes the zero crossing counting method useless. No matter how sharp I make the filters I don't think I'll see nice clean sine waves.

Looking at a Gnuradio implementation isn't much help when trying to do this with retro hardware... But that's a different kind of fun :)

_________________
---
New new new new new video out! Serial Bootloader for my 65uino
Also, check out: I2C on a 6502 Single Board Computer
and Complete hardware overview of my 6502 SBC R1 :)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 35 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: