RS41HUP icon indicating copy to clipboard operation
RS41HUP copied to clipboard

APRS modulation

Open iddq opened this issue 4 years ago • 8 comments

Hello,

What modulation is supported by this firmware for APRS?

iddq avatar Jun 24 '20 16:06 iddq

it is NFM.

df8oe avatar Jun 27 '20 13:06 df8oe

Sorry, I mean is it standard AFSK 1200/2200, bell 202?

iddq avatar Jun 28 '20 06:06 iddq

Yes - it is standard and can be decoded out-of-the-box with software like direwolf.

df8oe avatar Jun 28 '20 06:06 df8oe

I don't find AFSK as supported modulation in Si4030/31/32-B1 datasheet this is why my question is how can it work?

iddq avatar Jun 28 '20 07:06 iddq

I've done some tinkering on the RS41 firmware (will probably publish my experiments in a few weeks) and Si4032 seems to support a certain type of FSK, where one can define two frequencies (on a 625 Hz granularity IIRC) that can be toggled by a register change. Because of the granularity, this mechanism cannot be directly used to generate Bell 202 tones.

The way Bell 202 AFSK is implemented for Si4032 is kind of a hack, where the code toggles these two frequencies at a rate of 1200 and 2200 Hz, which produces the two Bell 202 tones even though the actual frequencies are something else.

Additionally, the timing of 1200/2200 Hz is done by using experimentally determined delays (and by disabling all interrupts, so they won't interfere with the timings).

I attempted to implement Bell 202 frequency generation using DMA / Timers, but have failed to generate correct frequencies that other APRS equipment are able to decode.

mikaelnousiainen avatar Jun 28 '20 07:06 mikaelnousiainen

I have not written the APRS code block - it worked perfectly as I forked the project so there was no need to think about anything. You know RTTY is also implemented and it HAS FSK and works, too. So this code block is "finished" for me. Next I want to implement is to get informations from the sensors - but that is not as easy.

df8oe avatar Jun 28 '20 07:06 df8oe

I've done some tinkering on the RS41 firmware (will probably publish my experiments in a few weeks) and Si4032 seems to support a certain type of FSK, where one can define two frequencies (on a 625 Hz granularity IIRC) that can be toggled by a register change. Because of the granularity, this mechanism cannot be directly used to generate Bell 202 tones.

The way Bell 202 AFSK is implemented for Si4032 is kind of a hack, where the code toggles these two frequencies at a rate of 1200 and 2200 Hz, which produces the two Bell 202 tones even though the actual frequencies are something else.

Additionally, the timing of 1200/2200 Hz is done by using experimentally determined delays (and by disabling all interrupts, so they won't interfere with the timings).

I attempted to implement Bell 202 frequency generation using DMA / Timers, but have failed to generate correct frequencies that other APRS equipment are able to decode.

Hi, Any progress with the experiment? :-)

z3r0l1nk avatar Aug 21 '20 09:08 z3r0l1nk

@z3r0l1nk I've published my (mostly undocumented and partially broken) code here: https://github.com/mikaelnousiainen/RS41ng -- I'll probably try to finish the Si5351-based parts by writing the scheduling code that uses GPS to trigger digital mode beacons (e.g. WSPR / FT8) at correct times. DMA/Timer-based APRS is broken because of the timing issues I described above, so anyone is welcome to take a look and see what could be causing the issues...

mikaelnousiainen avatar Aug 26 '20 20:08 mikaelnousiainen