LifeView FlyDVB-T Duo

From LinuxTVWiki
Revision as of 23:09, 6 May 2009 by Jimbley (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

LifeView presents the FlyDVB-T Duo!

User experiences

  • The card runs fine with Fedora Core 6 and DVB-T. The analog receiving I did not try yet.
  • With kubuntu 7.10, it works fine too, even watching analog TV. Tested with German cable TV.
  • A problem I had, was to recognize, that I had to load '/sbin/modprobe saa7134_dvb' additional to '/sbin/modprobe saa7134', which was running fine. Afterwards the script http://www.fedoralinux.de/comment/reply/660/1605 helped a lot. Got the device major number with '/sbin/lsmod | grep saa'. Thanks!
  • Working under Ubuntu Hardy 8.04. My experiences are listed in the mini-howto.

Mini-howto

Basically, everything 'works' out of the box, but actually getting access to things can be trickier.

FM Radio

Tuners like gradio, gnomeradio and radio work fine. Because the card doesn't have an audio out, it acts as a sound card. If you use alsa, use something like this to get output:

arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -

or:

arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | sox -q -c 2 -r 32000 -w -t wav - -t alsa default

What this does is record from the 2nd sound card (hw:1,0), and pipe the output into aplay (or sox) which'll play it on the default sound card. Note you'll need to set up the input to record from. Do this in GNOME mixer or via alsamixer

Remote Control

This is actually pretty straight forward. The kernel sees the remote as an input device and assigns it a location in /dev/input. Interestingly it also recognises it as a keyboard, and you can use it to type numbers 0-9 and enter. It also recognises SOME buttons as keyboard media buttons, e.g. the play/pause buttons, volup/voldown, mute, etc. This is pretty nifty, and if it's what you need, just go into the GNOME Keyboard Shortcuts app and assign keyboard shortcuts.

If you need more control, you can use LIRC. If you're compiling, you'll need support for devinput. Set it to the right event in the config file.

For the remote file (lircd.conf) I made my own (I couldn't find one in t'internet). Here it is:

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.3pre1(devinput) on Sat Oct  4 19:37:18 2008
#
# contributed by Barney Gale (Stormx) 
#
# brand: LifeView
# devices being controlled by this remote: FlyDVB-T Duo (PCI)
#

begin remote

  name  flydvb-t_duo
  bits           16
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       9000  4500
  one           563  1687
  zero          563   562
  ptrail        563
  repeat       9000  4500
  pre_data_bits   16
  pre_data       0x8001
  gap          207854
  toggle_bit_mask 0x8001001C
  frequency    37916
  duty_cycle   33

      begin codes
          1                    0x0002
          2                    0x0003
          3                    0x0004
          4                    0x0005
          5                    0x0006
          6                    0x0007
          7                    0x0008
          8                    0x0009
          9                    0x000A
          0                    0x000B
          enter                0x001C
          mute                 0x0071
          voldown              0x0072
          volup                0x0073
          power                0x0074
          timeshiftpause       0x0077
          stop                 0x0080
          recall               0x0081
          rewind               0x009E
          forward              0x009F
          playpause            0x00A4
          recordpause          0x00A7
          sap                  0x0170
          empty                0x0173
          fullscreen           0x0174
          pip                  0x0175
          tvradio              0x0181
          source               0x0182
          chanup               0x0192
          chandown             0x0193
          end                  0x0197
          back                 0x019C
      end codes

end remote

Then follow one of the hundreds of guides for setting up lircrc!

Note that running irw seems to block the input device, so if you want it to stop acting like a keyboard, just set "irw &" to run on startup!

Digital Input

TV Time doesn't pick anything up :( Both Kaffeine and Me-TV work fine. However, I'm only able to pick up a few channels, whereas over freeview boxes in the house pick up loads. Working to fix this

Update: It's only picking up Freeview band 1 broadcasts, I can't seem to figure out why :(

Kaffeine tuning output:

DvbCam::probe(): /dev/dvb/adapter0/ca0: : No such file or directory
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 706000000 Hz
inv:2 bw:0 fecH:3 fecL:9 mod:1 tm:0 gi:0 hier:0
.. LOCKED.
Transponders: 1/1
Reading SDT: pid=17
BBC NEWS: sid=4415
BBC Red Button: sid=4479
CBBC Channel: sid=4671
BBC ONE: sid=4163
BBC THREE: sid=4351
BBC TWO: sid=4227
Reading PAT: pid=0
Reading PMT: pid=4415

DVB SUB on BBC NEWS page_id: 1 anc_id: 1 lang: eng

Reading PMT: pid=4479
Reading NIT: pid=16
Reading PMT: pid=4671
Reading PMT: pid=4163

DVB SUB on BBC ONE page_id: 1 anc_id: 1 lang: eng

Reading PMT: pid=4351

DVB SUB on BBC THREE page_id: 1 anc_id: 1 lang: eng

Reading PMT: pid=4227

DVB SUB on BBC TWO page_id: 1 anc_id: 1 lang: eng

Reading NIT: pid=16
Frontend closed
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 650166000 Hz
inv:2 bw:0 fecH:2 fecL:1 mod:3 tm:0 gi:0 hier:0
..................................................

Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 626166000 Hz
inv:2 bw:0 fecH:2 fecL:1 mod:3 tm:0 gi:0 hier:0
..................................................

Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 674166000 Hz
inv:2 bw:0 fecH:3 fecL:3 mod:1 tm:0 gi:0 hier:0
..................................................

Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 658166000 Hz
inv:2 bw:0 fecH:3 fecL:3 mod:1 tm:0 gi:0 hier:0
..................................................

Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Using DVB device 0:0 "Philips TDA10046H DVB-T"
tuning DVB-T to 634166000 Hz
inv:2 bw:0 fecH:3 fecL:3 mod:1 tm:0 gi:0 hier:0
..................................................

Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Transponders: 6
dvbsi: The end :)
Channels found: 0

Further details:

After a bit of hunting I found vista drivers! Yay! And I can confirm that vista picks up everything fine, so this is a software, not hardware problem. What I'm going to do now is delete existing channels and copy down data from the windows app, then transfer it into my channels list. I have a suspicion that the driver is fucked, and that it can't tune to a new frequency after tuning to the first one. Lame. Stay tuned!

Update: Just tried the above. Still can't lock onto the channel. me-tv log is:

Me TV-Message: 05/10/08 21:44:26 - Tuning to transponder at 647167000 ... Me TV-Message: 05/10/08 21:44:26 - Waiting for signal lock ... Me TV-Message: Exception message: 'Failed to lock to channel' Me TV-Message: 05/10/08 21:44:36 - Exception in static gboolean Application::on_timer(void*): Failed to lock to channel

Trying with dvbtune:

First, a frequency I know works! (mux 1):

$ dvbtune -f 706000000
Using DVB card "Philips TDA10046H DVB-T"
tuning DVB-T (in United Kingdom) to 706000000 Hz
polling....
Getting frontend event
FE_STATUS:
polling....
Getting frontend event
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC
Bit error rate: 0
Signal strength: 38293
SNR: 65278
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC

Second, a frequency which should work, but doesn't

$ dvbtune -f 650167000
Using DVB card "Philips TDA10046H DVB-T"
tuning DVB-T (in United Kingdom) to 650167000 Hz
polling....
Getting frontend event
FE_STATUS:
polling....
polling....
polling....

It just sits there polling. Occasionally I'll get a frontend event, but it'll only be FE_HAS_SIGNAL and ocassionally (in addition to that) FE_HAS_CARRIER. The command seems to continue forever... I left it for an hour. Contrast with the mux 1 frequency which completes in about 2 seconds.

Further investigation:

$ dvbstream -f 706000 -a 601 -v 600 -o | mplayer -
$ dvbstream -f 647167 -a 421 -v 205 -o | mplayer -

The former works. The latter doesn't. I know for a fact that both should work fine. The former is BBC1 on Mux1. The latter is BBC Parliament on Mux B. The frequencies are correct, the audio and video PIDs are correct. But the latter fails:

Using DVB card "Philips TDA10046H DVB-T", freq=674167
tuning DVB-T (in United Kingdom) to 674167000 Hz, Bandwidth: 8
Getting frontend status
Not able to lock to the signal on the given frequency

I've verified the frequency and av stream IDs in the windows client. They're correct.

So really this is boiling down to a driver issue, as Mux 1 and Mux B are both 16QAM streams. Nothing really seperates them apart from frequency, afaik.

HELP!


Analogue Input

Works fine with TV Time, picks up 3 channels at okay quality (should be picking up 4 but the signal is low)

Misc

My dmesg output:

[   46.667236] saa7133[0]: found at 0000:04:06.0, rev: 209, irq: 16, latency: 32, mmio: 0xefeff000
[   46.667240] saa7133[0]: subsystem: 5168:0306, board: LifeView FlyDVB-T DUO / MSI TV@nywhere Duo [card=55,autodetected]
[   46.667247] saa7133[0]: board init: gpio is 210000
[   46.667290] input: saa7134 IR (LifeView FlyDVB-T D as /devices/pci0000:00/0000:00:0f.0/0000:04:06.0/input/input6
[   46.857495] saa7133[0]: i2c eeprom 00: 68 51 06 03 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
[   46.857501] saa7133[0]: i2c eeprom 10: 00 ff a6 0f ff 20 ff ff ff ff ff ff ff ff ff ff
[   46.857505] saa7133[0]: i2c eeprom 20: 01 40 01 02 03 ff 01 03 08 ff 01 2d ff ff ff ff
[   46.857509] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   46.857513] saa7133[0]: i2c eeprom 40: ff 1c 00 c0 ff 10 07 01 c2 96 01 16 30 15 ff ff
[   46.857517] saa7133[0]: i2c eeprom 50: ff 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   46.857521] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   46.857525] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   46.961967] tuner 2-004b: chip found @ 0x96 (saa7133[0])
[   47.009973] tda8290 2-004b: setting tuner address to 61
[   47.121914] tuner 2-004b: type set to tda8290+75
[   47.169893] tda8290 2-004b: setting tuner address to 61
[   47.273860] tuner 2-004b: type set to tda8290+75
[   47.276183] saa7133[0]: registered device video0 [v4l2]
[   47.276195] saa7133[0]: registered device vbi0
[   47.276206] saa7133[0]: registered device radio0
[   47.340575] saa7134 ALSA driver for DMA sound loaded
[   47.340592] saa7133[0]/alsa: saa7133[0] at 0xefeff000 irq 16 registered as card -2
[   47.409185] DVB: registering new adapter (saa7133[0])
[   47.409188] DVB: registering frontend 0 (Philips TDA10046H DVB-T)...

External Links