Canadian TV, Computing and Home Theatre Forums - Reply to Topic
Thread: Evga InDTube ATSC tuner in Linux, Solved! Reply to Thread
Send Trackbacks to (Separate multiple URLs with spaces) :
Post Icons
You may choose an icon for your message from the following list:

Register Now

In order to be able to post messages on the Canadian TV, Computing and Home Theatre Forums forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.

User Name:
Please enter a password for your user account. Note that passwords are case-sensitive.


Confirm Password:
Email Address
Please enter a valid email address for yourself.

Email Address:


  Additional Options
Miscellaneous Options

  Topic Review (Newest First)
2013-01-19 03:03 PM
majortom Found a better way to fix the inDtube tuner. Seems someone broke it in this
section of commented code in tuner-xc2028.c.

/ linux / drivers / media / common / tuners / tuner-xc2028.c

comment out line 1013 and line 1030, so the code between lines 1021 and 1029 is
no longer commented out. That's pretty funny....add some comments to remove a comment

/* #if 0 */
                 * Still need tests for XC3028L (firmware 3.2 or upper)
                 * So, for now, let's just comment the per-firmware
                 * version of this change. Reports with xc3028l working
                 * with and without the lines bellow are welcome

                if (priv->firm_version < 0x0302) {
                        if (priv->cur_fw.type & DTV7)
                                offset += 500000;
                } else {
                        if (priv->cur_fw.type & DTV7)
                                offset -= 300000;
                        else if (type != ATSC) /* DVB @6MHz, DTV 8 and DTV 7/8 */
                                offset += 200000;
/* #endif */
2012-12-28 07:02 PM
majortom spent a little time making this tuner play more friendly in user land. Instead of modifying mythtv to adjust the center frequencies, I modified the frontend of the tuner and recompiled kernel's dvb drivers. So now the frequency shift
is done at the frontend.

really just add one line to the Samsung frontend s5h1409.c to subtract 403615 hz from the center frequency
passed to the frontend from user land.

/* Talk to the demod, set the FEC, GUARD, QAM settings etc */
static int s5h1409_set_frontend(struct dvb_frontend *fe)
        struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct s5h1409_state *state = fe->demodulator_priv;

        /* Evga inDtube center freq hack, subtract 403615 Hz from center freq */
        p->frequency = p->frequency - 403615;
        /* end hack */
        dprintk("%s(frequency=%d)\n", __func__, p->frequency);

        state->current_frequency = p->frequency;
        s5h1409_enable_modulation(fe, p->modulation);

        if (fe->ops.tuner_ops.set_params) {
                if (fe->ops.i2c_gate_ctrl)
                        fe->ops.i2c_gate_ctrl(fe, 1);
                if (fe->ops.i2c_gate_ctrl)
                        fe->ops.i2c_gate_ctrl(fe, 0);

        /* Issue a reset to the demod so it knows to resync against the
           newly tuned frequency */
2011-12-17 10:58 PM
majortom Hi John,
Sorry, I just noticed your post today.
I've been using it for a couple years now, only because it was given to me.
It's not too bad, for a PC Based ATSC Tuner, once you apply the modifications
discussed here and in the wiki

I've never spent the time to try and get the remote to work.
Actually, I've never even messed with lirc either.
I just know it was able to change the volume on my PC.

It doesn't get hot.

I certainly wouldn't spend big money on it.
If I was spending money, I'd probably go with something like an HDHR.
2011-11-26 09:53 PM
bugmenot im actually thinking about buying this tuner mainly for the reason that it was added in the later kernel and has a lesser chance of breaking in new builds.

questions tho, (all in linux)

Hows its sensitivity compared to other tuners ?
Any chance of fm pickup ?
Anyone got the remote to work fully (not just the volume buttons) ?

Finally how hot does it get ? , My HVR 1500 currently gets EXTREMELY hot when left on for a while.

2011-06-15 10:42 PM
Knight Hmm, sorry majortom, I never received the notification about your previous message...

I should be on vacation in a couple of days and once I'm on vacation I'll try to find out who is/are our tuner guru(s) and if there's anything he/they can do about it...

Once again sorry...

2011-06-13 08:58 PM
majortom noticed the other day on
there was a link to this forum. Probably not too many actually using this tuner, but figured I'd add the info here to the wiki. Was previously pretty much just the blank template.
of course there is still the link to this forum also
2010-12-29 10:42 AM
majortom thanks again Knight, decimal moved. here's where I left it, works.
// 		Begin hack 		//    
//    if (snr > 0.0f)
//        sigDesc += " | " + tr("S/N %1dB").arg(log10f(snr), 3, 'f', 1);
    if (snr > 0.0f)
        sigDesc += " | " + tr("S/N %1dB").arg((snr / 10), 3, 'f', 1);
// 		End Hack 		//
Ur probably right. Likely it's been tuned up for the most popular of DVB-S Cards. I know my Prof 7500 USB (DVB-S2 tuner) spits out numbers from 0x0000 thru 0xffff
for signal quality from various cmd line utilities. And the various DVB Apps I've used seem to do the following with that number to get a Quality Percentage:
say if FE_READ_SNR yielded 0xD8CA. Would report as 0xD8CA -> 55498d from various cmd line utils. So an App like Kaffeine does 55498 / 65535 * 100 = 84.7%,
to report a signal Quality Percentage (not dB).
When I asked a friend of mine using Mythtv with a Hauppage 950Q for OTA, said his signal reporting was jacked also. And I know with mine, as we saw from the azap.c example, is getting Signal to Noise Ratio in decibels (albeit hex obviously) directly from the V4l Frontend API. Also seems Myth trimmed off 1 tenth of a dB (probably from precision type, somewhere else?). For example, the frontend API only spits out numbers in increments of 5. Or like so, 140, 145, 150, 155, 160,.....270 (I converted to decimal, in the cmd line util azap.c). This makes sense in relation to what I'm used to seeing with the same tuner in Windows via TsReader. Myth the same report would be 139, 144, 149,154,159, ....269 so is that a clue there's some other manipulation going on elsewhere?.
2010-12-29 04:44 AM
Knight Could the problem be tuner related, maybe some tuners report this in the expected format?

to divide by 10, add "/ 10f" after snr...

Have a nice day!

Nick (way past his bed time...)
2010-12-29 01:43 AM
majortom I think I got it, someone's taking a log base 10 of a number that's already in decibels.
In the below example it would have printed 2.3 dB, (log (194) = 2.3)
Obviously that's wrong.
 QString sigMsg  = allGood ? tr("Lock") : lockMsg;

    QString sigDesc = tr("Signal %1\%").arg(sig,2);
// 		Begin hack 		//    
//    if (snr > 0.0f)
//        sigDesc += " | " + tr("S/N %1dB").arg(log10f(snr), 3, 'f', 1);
    if (snr > 0.0f)
        sigDesc += " | " + tr("S/N %1dB").arg((snr), 3, 'f', 1);
// 		End Hack 		//    
    if (ber != 0xffffffff)
        sigDesc += " | " + tr("BE %1", "Bit Errors").arg(ber, 2);
Removing the log function gets me what I would expect C/N wise for an OTA Signal.
I'm not a programmer at all, or I probably would have tried to shift the decimal place
one position to the left.
2010-12-28 09:22 PM
Knight Looks like the info displayed comes from a list (SignalMonitorList).

You can see the line that interest you being built at around line 7330 in tv_play.cpp but the values actually come from that list.

The list itself is built by parsing the parameters passed to TV::UpdateOSDSignal as far as I can tell...

Have a nice day!

2010-12-28 09:08 PM
** but that won't stop me from trying though...
hehe... Thx. I hear ya...Myth is certainly no hack..
I was pokin around in everything I could find named like SignalMonitor last nite,
and couldn't find it. Will have another look around tonite...
2010-12-28 08:56 PM
Knight I definitely cannot claim to know every little piece of code in MythTV** but as far as I can tell what generate that line (Signal, S/N, etc...) is in the method TV::UpdateOSDSignal in mythtv/libs/libmythtv/tv_play.cpp.

It uses the other signalmonitor* source code files in that directory...

Have a nice day!


** but that won't stop me from trying though...
2010-12-28 08:35 PM
MythTV no longer scans the channel 70-83 range for OTA since early this morning.
Are you patching against MythTV, Knight?
if so, Knight would you happen to know where the SIGNAL / Quality
report that shows up in the OSD as ya tune a new freq comes from?
From what I'm seein, I'm thinkin the only field that actually works is the FE Lock status.
i.e. which module fills in these fields of the OSD, from the tuner's frontend?
2010-12-28 08:28 PM
Knight Stampeder, if you mean do I have commit access on the main repo, the answer is yes...

Have a nice day!

2010-12-28 07:59 PM
stampeder Are you patching against MythTV, Knight?

This thread has more than 15 replies. Click here to review the whole thread.

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

For the best viewing experience please update your browser to Google Chrome