Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DATV Demodulator DVB-S FEC 7/8 broken #383

Closed
KR0SIV opened this issue Jul 24, 2019 · 6 comments
Closed

DATV Demodulator DVB-S FEC 7/8 broken #383

KR0SIV opened this issue Jul 24, 2019 · 6 comments
Labels
Milestone

Comments

@KR0SIV
Copy link

KR0SIV commented Jul 24, 2019

I am nolonger able to demod DATV (DVB-S) I'm using the same setup I have in the past using both a pluto and LimeSDR Mini as the transmitter to no avail.

image

FEC 7/8 and 550ks/s

@f4exb
Copy link
Owner

f4exb commented Jul 24, 2019

Issue seems related to FEC 7/8. Other FECs work (test with GNUradio dvbs_tx example):

dvbs_tx_qt grc

Different symbol rates do not help.
Did you use the FEC 7/8 before and was it working?

@f4exb
Copy link
Owner

f4exb commented Jul 24, 2019

Oh-oooh this is what I see in the log when switching to 7/8 and since it is not prefixed I think this comes from leandvb:
Code rate not implemented; proceeding anyway

I have redesigned the code rate limits according more or less to ETSI standard. I bet 7/8 was not supported before. Since leandvb does not support it it should simply be be removed from the list.

@f4exb
Copy link
Owner

f4exb commented Jul 24, 2019

Actually issue is in my code because 7/8 should be supported. Here's the excerpt from leandvb dvb.h:

    // EN 300 421, section 4.4.3 Inner coding
    uint32_t pX, pY;
    switch (rate)
    {
    case FEC12:
        pX = 0x1; // 1
        pY = 0x1; // 1
        break;
    case FEC23:
    case FEC46:
        pX = 0xa; // 1010  (Handle as FEC4/6, no half-symbols)
        pY = 0xf; // 1111
        break;
    case FEC34:
        pX = 0x5; // 101
        pY = 0x6; // 110
        break;
    case FEC56:
        pX = 0x15; // 10101
        pY = 0x1a; // 11010
        break;
    case FEC78:
        pX = 0x45; // 1000101
        pY = 0x7a; // 1111010
        break;
    default:
        //fail("Code rate not implemented");
        // For testing DVB-S2 constellations.
        fprintf(stderr, "Code rate not implemented; proceeding anyway\n");
        pX = pY = 1;
    }

@f4exb
Copy link
Owner

f4exb commented Jul 24, 2019

7/8 missing from the string to enum converter...

@f4exb f4exb changed the title DATV Demodulator Broken DATV Demodulator DVB-S FEC 7/8 broken Jul 24, 2019
@f4exb
Copy link
Owner

f4exb commented Jul 24, 2019

This is it! Fix is on dev branch.

@f4exb f4exb added this to the v4.11.3 milestone Jul 24, 2019
@f4exb f4exb added the bug label Jul 24, 2019
@f4exb
Copy link
Owner

f4exb commented Jul 27, 2019

Fixed in v4.11.3

@f4exb f4exb closed this as completed Jul 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants