2014-09-29

Naked hardware #18: Astrometa AMDVB-T2 v2

Astrometa AMDVB-T2 v2 teardown
Astrometa AMDVB-T2 v2

That device appeared to market very recently, maybe on September or August 2014. It is clearly successor of older Astrometa HD-901T2 stick, basically having only new version of demodulator chip. Demodulator is changed from Panasonic MN88472 to MN88473. Also PCB is revised marginally. Even USB ID same old 15f4:0131 :-(

Linux support was added to kernel 3.13, as support for old device version was added at that time. Linux driver supports only DVB-T. DVB-T2 and DVB-C are not supported as there is no driver for MN88473 demodulator which provides those DTV standards.

I am not explaining hardware internals very detailed now, as I did quite careful review for old device version, which is very similar. Look old review here.

Key components:
Realtek RTL2832P
Panasonic MN88473
Rafael Micro R828D

PCB upper side

Astrometa AMDVB-T2 v2 PCB
All important chips are assembled that side of the PCB. Chips counted from antenna connector are R828D (RF tuner), MN88473 (demodulator), RTL2832P (USB-bridge + DVB-T demodulator).

Rafael Micro R828D

Rafael Micro R828D
RF tuner.

16.000 MHz crystal

16.000 MHz Xtal
That 16 MHz crystal provides clock for R828D. Located near R828D, same side of PCB.

Panasonic MN88473

Panasonic MN88473

DVB-T/T2/C DTV demodulator. I think it is direct successor of MN88472. 25 MHz clock is coming from crystal located other side of the PCB.

Realtek RTL2832P

Realtek RTL2832P
That chip is DTV USB-bridge, integrated DVB-T demodulator and having TS interface to connect external demodulator. On that case external demodulator is MN88473.

28.8 MHz clock is feed from the crystal, which is located another side of the PCB.

IR receiver needed by RTL2832P is assembled another side of PCB too.

2Kbit I2C serial eeprom is also other side of PCB. RTL2832P USB ID is stored there.

PCB bottom side

Astrometa AMDVB-T2 v2 PCB
Visible parts are, two crystals, eeprom and IR receiver.

PCB printings:
234T2_1405


T24C02A eeprom

T24C02A eeprom
Serial (I2C) eeprom, package marking "T24C02A". It is 2 Kbit eeprom. That chip contains device specific configuration, like USB ID. RTL2832P chip reads USB ID from this chip during power on and enumerates to USB bus using ID stored there.

25.000 MHz crystal

25.000 MHz Xtal
That crystal provides clock for Panasonic MN88473 chip located on the other-side of PCB.


28.800 MHz crystal

28.800 MHz Xtal
That crystal provides clock for Realtek RTL2832P chip located on the other-side of PCB.


USB interface

IDLE current drain without a driver: 94 mA



Pictures




























































224 comments:

  1. Hi. Great work on these devices!
    What's the state of your linux driver for this and its new demodulator? I see you made some commits recently. Does dvb-c work? Or is it the same problem as with the old revision, that missing PID filtering causes too much data for the usb bus with qam256?

    ReplyDelete
    Replies
    1. Yes, I did some hacking for that device. It initially works ("works for me") on all modes, DVB-T/T2/C. Also old device version started working, but its driver supports only DVB-C. I have feeling it wasn't the PID filter problem, but some other which I was able to eventually fix...

      Tree is here up for testing, supporting both device versions, with standards I mentioned:
      http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/log/?h=astrometa

      Delete
    2. Ok, thanks man :) I'm gonna buy a HD-901T2 and try it out

      Delete
    3. Buy that new model, I am not sure if model number is changed or same. There is newer demodulator chip and new PCB. I hope that new PCB fixes some I2C errors (likely caused by noisy I2C bus).

      Delete
    4. Yeah it's the same price, so I'll just buy the new model

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Hi Antti,


    Thank you for the drivers. I have MN88473, though in the old case, and I made it to work under Kernel 3.13 (Ubuntu 12.04LTS), and T2 and C works ok.

    I have a question regarding support for Enigma 2 (Mipsel) linux set-top-boxes. The kernel is a little bit older, I think 2.6 (http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers). Is it possible to compile drivers for such devices?

    ReplyDelete
    Replies
    1. You could try media_build.
      ./build --git git://linuxtv.org/anttip/media_tree.git astrometa
      -----------------
      [crope@localhost media_build]$ ./build --help
      Usage:
      build [--help] [--man] [--verbose] [--check-only] [<--git> [URL]
      [BRANCH]] [--main-git]

      Options:
      --help Print a brief help message and exits.

      --man Prints the manual page and exits.

      --verbose
      Be more verbose.

      --check-only
      Don't do anything, except for checking if the needed
      dependencies are there.

      --git [URL] [BRANCH]
      Allows specifying a URL and a git branch, instead of the default
      ones. Currently, only linuxtv.org git URL's are supported, as
      the build needs to warrant an unique namespace for git remotes.

      --main-git
      Use the main development git tree, as found at
      .

      [crope@localhost media_build]$ ./build --git git://linuxtv.org/anttip/media_tree.git astrometa
      Checking if the needed tools for Fedora release 20 (Heisenbug) are available

      Delete
    2. How can i install this driver in Ubuntu???? Step by step ...pls

      Delete
  4. anyone tried compiling for openwrt ar7xx?

    that would be ultra awesome... tvheadend :)

    ReplyDelete
  5. Who can help me compiling this driver for a vu+ solo2 stb box which runs kernel 3.13.3 ?
    http://archive.vuplus.com/download/kernel/stblinux-3.13.5.tar.bz2

    ReplyDelete
    Replies
    1. Hi,

      You need to Install and configure VU Plus-toolchain and software development kit (SDK) to be able to compile for mipsel architecture. Please see:
      http://blog.videgro.net/2013/05/how-to-compile-software-for-vu-plus/

      Delete
    2. My problem is the kernel version mismatch, I tried to take the necessary driver parts from Antti's git source (3.18) and put them in the Vu 3.13 kernel.
      I know well how to build vu/dreambox images and how to use the toolchain to crosscompile a kernel manually.

      Delete
    3. You can't do like this. Try to compile as Antti explained.

      cd /tmp

      git clone --depth=1 git://linuxtv.org/media_build.git
      cd media_build

      ARCH=mips \
      CROSS_COMPILE=/opt/openpli4/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/opt/openpli4/build/tmp/sysroots/dm800se/usr/src/kernel/ \
      make cleanall

      ARCH=mips \
      CROSS_COMPILE=/opt/openpli4/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/opt/openpli4/build/tmp/sysroots/dm800se/usr/src/kernel/ \
      make download untar

      ARCH=mips \
      CROSS_COMPILE=/opt/openpli4/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/opt/openpli4/build/tmp/sysroots/dm800se/usr/src/kernel/ \
      make menuconfig

      ### Choose what you need here (eg Enable drivers not supported by this kernel (NEW) and disabled modules not required eg Analog TV support, AM/FM radio receivers/transmitters support, Software defined radio support, Media PCI Adapters, GSPCA based webcams, USB Philips Cameras, USB ZR364XX Camera support, USB Syntek DC1125 Camera support, USB Sensoray 2255 video capture device, USBTV007 video capture support, Sensors used on soc_camera driver, Media test drivers, Remote controller decoders, Remote Controller devices)

      ARCH=mips \
      CROSS_COMPILE=/opt/openpli4/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/opt/openpli4/build/tmp/sysroots/dm800se/usr/src/kernel/ \
      make -j 4

      Delete
    4. This is for dm800se, similar for VU+

      Delete
    5. I can't get the the compiled with the vu+solo2 3.13.5 kernel, but I succeeded for the dm800se, but the drivers are not working.
      I did the following for a dm800se:

      cd /data2
      mkdir -p openpli4_kernel/dm800se
      cd openpli4_kernel/dm800se
      wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.tar.gz
      wget https://www.kernel.org/pub/linux/kernel/v3.0/patch-3.2.60.gz
      wget http://sources.dreamboxupdate.com/download/kernel-patches/linux-dreambox-3.2-4e0356d04e89df800361b9252f990716f5523c6e.patch
      untar the kernel and apply the patches

      git clone --depth=1 git://linuxtv.org/media_build.git
      cd media_build

      ARCH=mips \
      CROSS_COMPILE=/home/gertjan/openpli-oe-core.upstream/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/data2/openpli4_kernel/dm800se/linux/ \
      make cleanall

      ARCH=mips \
      CROSS_COMPILE=/home/gertjan/openpli-oe-core.upstream/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/data2/openpli4_kernel/dm800se/linux/ \
      make download untar

      vi v4l/versions.txt

      #[3.15.0]
      # needs reset_control_get_optional
      #RC_ST

      #[3.10.0]
      # needs include/linux/mfd/syscon.h
      #IR_HIX5HD2

      vi v4l/Makefile
      EXTRA_CFLAGS += -Werror-implicit-function-declaration -Wno-implicit

      ARCH=mips \
      CROSS_COMPILE=/home/gertjan/openpli-oe-core.upstream/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/data2/openpli4_kernel/dm800se/linux/ \
      make menuconfig

      ARCH=mips \
      CROSS_COMPILE=/home/gertjan/openpli-oe-core.upstream/build/tmp/sysroots/x86_64-linux/usr/bin/mipsel-oe-linux/mipsel-oe-linux- \
      DIR=/data2/openpli4_kernel/dm800se/linux/ \
      make -j 4

      Somehow all modules get a vermagic=3.2.60-dm800se SMP mod_unload MIPS32_R1 32BIT, I created a little patcher to set it to 3.2-dm800se SMP mod_unload MIPS32_R1 32BIT

      Delete
    6. #!/bin/sh

      for m in $(find /tmp/v4l -name "*.ko")
      do
      grep -q "3.2.60" $m && {
      echo "patching vermagic ${m}"
      sed -i 's/3.2.60-dm800se SMP mod_unload MIPS32_R1 32BIT /3.2-dm800se SMP mod_unload MIPS32_R1 32BIT \x00\x00\x00/g' $m || exit 1

      }
      done
      exit 0
      }

      But I can't use drivers. I can't load dvb-usb-rtl28xxu.ko / rtl2832.ko / dvb_usb_v2.ko / dvb-core.ko

      dvb_core: exports duplicate symbol dvb_ca_en50221_camchange_irq (owned by kernel)
      dvb_usb_rtl28xxu: Unknown symbol dvb_usbv2_reset_resume (err 0)
      dvb_usb_rtl28xxu: Unknown symbol rtl2832_get_private_i2c_adapter (err 0)
      dvb_usb_rtl28xxu: Unknown symbol dvb_usbv2_suspend (err 0)
      dvb_usb_rtl28xxu: Unknown symbol rtl2832_get_i2c_adapter (err 0)
      dvb_usb_rtl28xxu: Unknown symbol dvb_usbv2_disconnect (err 0)
      dvb_usb_rtl28xxu: Unknown symbol dvb_usbv2_probe (err 0)
      dvb_usb_rtl28xxu: Unknown symbol dvb_usbv2_resume (err 0)
      dvb_usb_rtl28xxu: Unknown symbol rtl2832_enable_external_ts_if (err 0)
      dvb_usb_v2: Unknown symbol dvb_dmx_swfilter_raw (err 0)
      dvb_usb_v2: Unknown symbol dvb_frontend_resume (err 0)
      dvb_usb_v2: Unknown symbol dvb_frontend_suspend (err 0)
      mn88472: Unknown symbol regmap_write (err 0)
      mn88472: Unknown symbol regmap_init_i2c (err 0)
      mn88472: Unknown symbol regmap_read (err 0)
      mn88472: Unknown symbol regmap_bulk_write (err 0)
      mn88472: Unknown symbol regmap_exit (err 0)
      mn88473: Unknown symbol regmap_write (err 0)
      mn88473: Unknown symbol regmap_init_i2c (err 0)
      mn88473: Unknown symbol regmap_read (err 0)
      mn88473: Unknown symbol regmap_bulk_write (err 0)
      mn88473: Unknown symbol regmap_exit (err 0)

      Delete
  6. Hi Antti,

    There are two brunches on your git for astrometa. "astrometa_20141111" and "astrometa". Which one includes driver for demodulator for MN88473 (for T2/C)? Does the demodulator works with some of next kernel versions natively?

    ReplyDelete
    Replies
    1. astrometa is newer and astrometa_20141111 is old. I will try to keep latest development stuff in astrometa tree. Currently all those astrometa tree patches are merged into linux media master also, so you could wish to try ir instead.

      Delete
  7. Hi, sorry how do you compile and install the driver?
    I did git clone git://linuxtv.org/anttip/media_tree.git astrometa
    and then make but it seems to be compiling other kernel stuff as well?

    Thanks

    ReplyDelete
    Replies
    1. As initial driver is now merged to media master tree, you could try media build:
      http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers
      Though I am not 100% sure if it will compile and install those MN88472 and MN88473 drivers, due to fact those are placed under kernel staging directory (Staging is directory in kernel tree having stuff that does not meet mainline quality. Staging stuff is not compiled by distributions.). But I still suspect media build builds staging too. Is there anyone who could confirm?

      Delete
    2. Nope, it doesn't. I think staging has to be enabled by running make menuconfig, but I encountered strange syntax errors reading Kconfig file on ubuntu 14.04lts, as many other users.

      Delete
    3. This comment has been removed by the author.

      Delete
    4. Hm i have tried make menuconfig but that has given me error as well. How did you get it installed and working on ubuntu please?

      Delete
    5. enable staging drivers and build it again
      make stagingconfig
      make
      make install

      Delete
    6. Ok thanks will give that a go

      Delete
    7. So:

      git clone git://linuxtv.org/media_build.git
      cd media_build
      ./build
      make stagingconfig
      make
      make install

      Would be the way to go to get this Stick up and running?

      Delete
    8. This comment has been removed by the author.

      Delete
    9. This comment has been removed by the author.

      Delete
    10. Looks like ive got some Problems with already installed media_build_experimental, which i need for my Digital Devices Cine CT.

      Everything builds fine but mn8847x does not get detected while its working on a similar System without another DVB Card and media_build_experimental installed.

      Any Idea how to solve this?

      Delete
    11. No idea. You have now mixed 2 different media builds - the official one and some other for Cine CT.

      Delete
    12. Looks like Module failes to load:
      mn88473: Unknown symbol regmap_init_i2c (err 0)

      Within a virtualbox machine the firmware failes to load. So DD Cine CT and Astrometa USB in same machine seems to be a dead end for now :(

      Delete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Hi. If driver for MN88472(3) now support DVB-T DVB-T2 and DVB-C how made MN88472(3) to be /dev/dvb/adapter0/frontend0, and not frontend1 ? Many program ignore frontend1 -"Panasonic MN88472" and show the only frontend0 -> "Realtek RTL2832 (DVB-T)"

    ReplyDelete
    Replies
    1. You cannot do it without changing the code... But you could still watch DVB-T even your application does not support multiple frontends ;p

      Delete
  10. I need dvb-c. However i use old trick - mv /dev/dvb/adapter0/frontend0 /dev/dvb/adapter0/frontend2 and mv /dev/dvb/adapter0/frontend1 /dev/dvb/adapter0/frontend0 .I can now watch tv :)
    But HD channels dont work. The problem with PID filters not completely solved?

    ReplyDelete
    Replies
    1. What happens if you blacklist rtl28xxu driver in /etc/modprobe.d/ backlist-astrometa.conf with the content blacklist dvb-usb-rtl28xxu?

      Delete
    2. You could not blacklist dvb-usb-rtl28xxu nor rtl2832 as those are needed.

      Delete
  11. Sorry, HD channels working. The problem was in Mplayer is not correctly handles h264 stream.
    P.S. What application to watch TV do you recommend?

    ReplyDelete
    Replies
    1. I use VLC. There is not many reasonable choices for desktop users.

      Delete
  12. Is it possible to compile driver for kernel version 3.10.33 ?

    ReplyDelete
  13. I have problem with firmware downloading for mn88472 getting 30-50% downloading ok , the rest fault (. After I сhanged rc-interval from 400 to 200 downloading firmware is ok ) The patch "rtl28xxu: lower the rc poll time to mitigate i2c transfer errors" from Benjamin Larsson is work fine )

    ReplyDelete
    Replies
    1. I have this problem using branch "astrometa_next" _with_ the patch "rtl28xxu: lower the rc poll time to mitigate i2c transfer errors" from Benjamin Larsson with rc-interval 200. It is not so easy for driver to successfully download firmware for mn88473 for the first time after plug in the device (firmware download failed=-32). I working under VirtualBox

      Delete
    2. You have to try in real system. Virtualbox can provide time delays that lead to such errors

      Delete
  14. This comment has been removed by the author.

    ReplyDelete
  15. This comment has been removed by the author.

    ReplyDelete
  16. Привет, Друзья.
    Мое Устройство MN88473 в старом корпусе.
    Я Научился компилировать драйвера.Спасибо всем. Но...
    Windows 7 - родная программа находит 3 частоты с открытыми каналами:578Mhz(DVB-T),546Mhz(DVB-T2),498MHz(DVB-T2).
    Ubuntu(Kernel 3.13.0-44) w_scan с обоими фронтендами находит 1 частоту с кодированными каналами: 562MHz(DVB-T).Аналогично Kaffeine с фронтендом RT2832
    Вопрос, чего хватает ubuntu, может быть какихто dvb библиотек

    Hello, Friends.
    My Device MN88473 in the old building.
    I Learned how to compile the driver.Thank you to everyone. But...
    Windows 7 - home program finds 3 frequencies with open channels:578Mhz(DVB-T),546Mhz(DVB-T2),498MHz(DVB-T2).
    Ubuntu(Kernel 3.13.0-44) w_scan with both frontends finds 1 frequency encoded channels: 562MHz(DVB-T).Similarly Kaffeine with frontend RT2832
    The question of what is enough for ubuntu, maybe some dvb libraries

    ReplyDelete
    Replies
    1. Приветствую. Лично я не очень давно использую данные драйвера, но думаю тебе будет полезно ознакомиться с:
      http://blog.palosaari.fi/2014/09/linux-dvb-t2-tuning-problems.html

      Лично я использую dvbv5-scan для проверки и загрузки прошивки (из-за проблем, о которых писал выше) и vlc для воспроизведения. Первый мультиплекс 546Mhz DVB-T2 всё отлично работает. Второй 498MHz DVB-T2 честно говорят даже и не проверял, но, если нужно, могу завтра посмотреть.

      For english speakers: just recommends for Ivan that will possibly solve his tuning problems

      Delete
    2. > 578Mhz(DVB-T)

      Будьте внимательны!
      Вещание цифрового эфирного телевидения стандарта DVB-T (первый мультиплекс) в Москве прекращено 15 января 2015 года.
      Теперь на 578Mhz транслируют в стандарте DVB-T2.

      There is no DVB-T left in Moscow, Russia. Last channel 578Mhz was switch to DVB-T2

      Delete
    3. Thank you, that I already knew.

      Delete
  17. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  18. I have trouble with dvblast (stable version and last one from git - same result), it tells me after timeout that there is no ts data available (warning: no DVR output, resetting). At the same time frontend has acquired signal, has acquired carrier, has acquired stable FEC, has acquired sync, has acquired lock.

    Astrometa works in Vlc - receive and playing TV programs.

    turn on debug in some files in astrometa_next driver
    dmesg tells same usual things when playing in Vlc and when run dvblast:

    rtl2832: "setting PIP mode"
    dvb_usb_start_feed: "adap=0 active_fe=1 feed_type=0 setting pid [no]: 0000 (0000) at index 0
    (and other different pids depending of programs chosen)

    I work under VirtualBox and have visual proof that there is data stream from usb astrometa device.
    For sure I even add debug message dvb_usb_core in dvb_usb_data_complete function - there was "constant" ts data reception by 4096 bytes for both vlc and dvblast that fill up dmesg log :)

    I tried dvblast with different parameters. For instance:
    dvblast -d 192.168.56.102:5555 -a 0 -f 546000000 -b 8

    p.s. one time I started dvblast, just after vlc have stoped playing, dvblast debug told me about continuity interruption in mpeg ts packets for some pid. As far as I understand it: dvblast reading from dvr works well, but dvblast tunes astrometa in some different way than vlc.

    ReplyDelete
    Replies
    1. Demod lock status bits are currently dummy - all are just set always.

      I cannot see how you tell use frontend #1 for dvblast. There is option a which is set to 0, I assume it means adapter. Frontend is typically chosen using parameter named f (~all those tools uses 'a' for adapter and 'f' for frontend). So test -a 0 -f 1. Still, as it sets all demod lock flags it must be correct frontend... - or it is valid DVB-T signal and frontend 0 (RTL2832) is locked to channel. Try to remove antenna => if lock disappears you are using frontend0 (RTL2832), if it does not disappear you are using frontend1 (MN88472) (because MN88472 driver returns always full lock currently).

      Delete
    2. This comment has been removed by the author.

      Delete
    3. Thank you for information about locks

      > I cannot see how you tell use frontend #1 for dvblast.

      option -n. -f is for frequency.
      I know about two available frontedns for RTL and MN. I already tried both variants -a 0 -n 0 and -a 0 -n 1, but dvblast choose always panasonic: "debug: Frontend "Panasonic MN88473" supports:". Now I can't check dvb-t channel cause there is no dvb-t left in Moscow!

      I have tried to remove antenna - locks does not disappear, so I use frontend1 (MN88472) so dvblast not lying :)

      Delete
    4. Oh, by the way, when choose frontend1 "-a 0 -n 1" dvblast try to use /dev/dvb/adapter0/dvr1, and I don't see where I can tell dvblast to use dvr0.
      So anyway I theoretical choose frontend0 by "-a 0" or "-a 0 -n 0", it automatically choose frontend1 MN88472
      or another variant to get dvblast to work is to move /dev/dvb/adapter0/frontend1 to /dev/dvb/adapter0/frontend0

      Delete
    5. I solved this problem. It was just because dvblast do not support DVB-T2 (I am a careful reader, yes))
      And they even don't want it, judging by their null react on suggested patches in 2012: https://mailman.videolan.org/pipermail/dvblast-devel/2012-April/001002.html and Feb 2014:
      https://mailman.videolan.org/pipermail/dvblast-devel/2014-February/001372.html (both from Russia :)
      Last one help me build dvblast with DVB-T2 support that I needed.
      Thank you for your attention and spirit of helpfulness!

      Delete
  19. Hi Antti,
    Awesome work on the driver.
    I've managed to get the MN88473 running in DVB-C mode in linux, but i'm having trouble tuning it to anything below 347MHz. Everything above 347MHz works fine.
    I've got a PCTV 292e running off the same input which doesn't suffer from this issue.
    Keep up the great work.

    ReplyDelete
    Replies
    1. Which Software do you use test the DVB-C functionality? My Driver compiled fine, everything looks good, modules and firmware loaded, im changing the frontends by moving them manually, so frontend0 is DVB-C but dvbtune always give me 0 SNR, strength and error rate, no matter what freq. i tune to.

      My DD Cine CT does however work fine.

      Delete
    2. I'm using TVHeadend.
      I had to modify the MN88473 drivers to present the adapter as a DVB-C tuner first.

      Delete
    3. How did you do this? Maybe thats the Problem why dvbtune does not work, only moving the frontend files under /dev/dvb is not enough?!?!

      Delete
    4. Upgrade to the 3.18 kernel if you haven't already.

      Use my script below to run the media_build compile and insert the modifications. (this may take a while!)
      $ wget https://www.dropbox.com/s/3dwntqnawh9fsi0/media_build.sh
      $ chmod +x media_build.sh
      $ sudo ./media_build.sh

      Download the firmware and put it in the "/lib/firmware" folder
      $ cd /lib/firmware/
      $ sudo wget http://palosaari.fi/linux/v4l-dvb/fi...-mn88473-01.fw

      Reboot and try it again.

      Delete
    5. Daniel Wandrei: current driver does not implement any signal statistics and due to that you will see zero (application should still rather show N/A than 0...)

      Delete
    6. Lacie: Poor sensitivity on low DVB-C frequencies sounds more like a tuner driver problem (r820t).

      Delete
  20. Does anyone know if there is DVB-T2 demodulator chip with hardware PID filtering possibility? (not on usb bridge side, as like rtl2832)

    ReplyDelete
    Replies
    1. I don't know any. Si2168, MN88472, MN88473 all seems not to have PID filters. Also there is some Sony demods, no PID filters. PID filters are very typically implemented by bridge chip.
      You are wrong about RTL2832 filters - it is indeed RTL2832 demod (as well older RTL2830) which has PID filters - not the USB bridge.

      Delete
    2. Thank you for information. I considered silicon labs chips and didn't find anything, too :(

      > You are wrong about RTL2832 filters - it is indeed RTL2832 demod (as well older RTL2830) which has PID filters - not the USB bridge.

      Sorry, I expressed myself with ambiguity. By "usb bridge" I meant RTL2832 as DTV USB-bridge chip with external demodulator with PID filtering, certainly.

      Delete
    3. Yeah, that's a very special case - slave demod TS is connected through a master demod and master demod even implements PID filters for slave demod. There is 2 PID filters on RTL2832 demod - one for demod itself and another for external TS IF (slave demod).

      Delete
    4. Yeah, I've already found this information https://www.linuxtv.org/wiki/index.php/Astrometa_DVB-T2 and clumsy coded ext. PID-filter for only one or several PIDs just in frontend choosing function :))
      (I'm using it for special-purpose case, not just for watching TV as is).
      Thank you for your great work once again!

      Delete
  21. Did anyone have any luck on getting DVB-C on an Enigma 2 box? I've been trying openvix with Antti drivers on media build) but have been getting kernel errors trying to load it.

    ReplyDelete
    Replies
    1. HI Anti,

      I can load some of the drivers on my Mut@nt (mn88473, r820, rtl2830, rtl2832) but if I try to load rtl28xxu or dvb_usb_v2 I am unable to.
      My understanding is that I have to load rtl28xxu and dv_usb_v2 from the media_build, right?

      Delete
    2. This is what I get:

      dvb_usb_v2: Unknown symbol dvb_register_frontend (err -22)
      dvb_usb_v2: disagrees about version of symbol dvb_frontend_suspend
      dvb_usb_v2: Unknown symbol dvb_frontend_suspend (err -22)
      dvb_usb_v2: disagrees about version of symbol dvb_unregister_adapter
      dvb_usb_v2: Unknown symbol dvb_unregister_adapter (err -22)
      dvb_usb_v2: disagrees about version of symbol dvb_dmx_init
      dvb_usb_v2: Unknown symbol dvb_dmx_init (err -22)

      Although the others (mn88473, r820t, etc) load fine.

      Delete
    3. Looks like dvb-core.ko module is not compatible with dvb_usb_v2.ko module. Copy all /media/ modules from media build, otherwise those are not compatible usually.

      Delete
  22. This comment has been removed by the author.

    ReplyDelete
  23. This comment has been removed by the author.

    ReplyDelete
  24. Hi, guys. I have obstacles to make modules after updating media_build on step when applying backports/api_version.patch.

    patch -s -f -N -p1 -i ../backports/api_version.patch
    The text leading up to this was:
    --------------------------
    |diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
    |index f8135f4..9df68b6 100644
    |--- a/drivers/media/usb/uvc/uvc_driver.c
    |+++ b/drivers/media/usb/uvc/uvc_driver.c
    --------------------------
    No file to patch. Skipping patch.
    1 out of 1 hunk ignored
    The text leading up to this was:
    --------------------------
    |diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
    |index e0bafda..6225391 100644
    |--- a/drivers/media/v4l2-core/v4l2-ioctl.c
    |+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
    --------------------------
    No file to patch. Skipping patch.

    Files certainly exist, but, yes, they don't fit for patch: number of line where patch want to replace code is not match number of line in a file where it should be.

    If I understand mechanism of patches correctly (sorry, I am noob in this theme) all this is due to differences between Antti's media_tree and main one, whereas patches in media_build are directed to main media_tree.
    I thought I need to know old commit of media_build git upon which I built modules from Antti's media_tree successfully, but as I see only two commits 61ac3b2d... (28.01.2015) and 70eeca44... (26.11.2014) of media_build correct api_version.patch, and this correction is not regarding to uvc_driver.c or v4l2-ioctl.c! If I remember correctly I started and successfully built modules for desktop Ubuntu in December 2014.

    This tells that reason of errors not in differences between Antti's and main media trees, am I right?
    Of course I can apply patches manually, but I want to understand how it works. Thank you in advance.

    ReplyDelete
    Replies
    1. You could use latest media tree (and media_build) as it contains all the same patches on my astrometa tree. I just updated astrometa tree to same as media tree.
      Could someone make instructions how to enable staging and use media build? It is surely most easiest solution.

      Delete
    2. My bad. Forgot to call ./build :)

      By instruction you mean this one that you already wrote upwards almost all?

      git clone git://linuxtv.org/media_build.git
      cd media_build
      ./build --git git://linuxtv.org/anttip/media_tree.git astrometa #or astrometa_next

      #Turn staging drivers
      cd v4l
      make stagingconfig
      cd ..
      make menuconfig

      Delete
    3. Better to use main tree, unless some good reason to test some possible latest changes.

      $ git clone git://linuxtv.org/media_build.git
      $ cd media_build
      $ ./build
      $ make stagingconfig
      $ make -C ./v4l/
      # make install

      make install must be executed as a root user.

      Delete
  25. I tried to install with latest media tree, everything is ok with install part my device is recognizes as realtek(dvb t) and panasonic as dvb c but after trying to scan every program stopped with working w_scan stopped, tvheadend stopped everything just crash. Tried with couple of system reinstalls of everything but same thing happens. What is problem ? Im talking about older astrometa stick then this.
    Sorry for my English and thanks in forward

    ReplyDelete
  26. Same error here with the latest media git tree.
    Unable to handle kernel NULL pointer dereference at virtual address 00000008
    pgd = c0004000
    [00000008] *pgd=00000000
    Internal error: Oops: 17 [#1] PREEMPT ARM
    Modules linked in: snd_bcm2835 snd_pcm snd_seq snd_seq_device snd_timer snd ir_lirc_codec(O) ir_xmp_decoder(O) ir_mce_kbd_decoder(O) lirc_dev(O) ir_sharp_decoder(O) ir_sanyo_decoder(O) ir_sony_decoder(O) ir_jvc_decoder(O) ir_rc6_decoder(O) evdev ir_rc5_decoder(O) ir_nec_decoder(O) rtl2832_sdr(O) videobuf2_vmalloc(O) videobuf2_memops(O) videobuf2_core(O) v4l2_common(O) videodev(O) r820t(O) mn88473(O) regmap_i2c rtl2832(O) i2c_mux dvb_usb_rtl28xxu(O) dvb_usb_v2(O) dvb_core(O) btusb rc_core(O) bluetooth media(O) rfkill uio_pdrv_genirq uio sg
    CPU: 0 PID: 2274 Comm: kdvb-ad-0-fe-0 Tainted: G O 3.18.7+ #755
    task: d6f52880 ti: d521a000 task.ti: d521a000
    PC is at media_entity_pipeline_start+0x18/0x29c [media]
    LR is at dvb_frontend_thread+0x2dc/0x65c [dvb_core]
    pc : [] lr : [] psr: 60000013
    sp : d521be40 ip : d521bf10 fp : d521bf0c
    r10: d50f2c00 r9 : 00000000 r8 : 00000000
    r7 : d50f2c00 r6 : d5061094 r5 : 00000000 r4 : d5061094
    r3 : 00000000 r2 : 00000000 r1 : d50f2dfc r0 : 00000000
    Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 00c5387d Table: 162f8008 DAC: 00000015
    Process kdvb-ad-0-fe-0 (pid: 2274, stack limit = 0xd521a1b0)
    Stack: (0xd521be40 to 0xd521c000)
    be40: d521be84 d521be50 c004bca4 c004b79c c007ead4 c001d478 000157c0 c0810508
    be60: d6f528b0 d521a038 c08104c0 d6f52880 00000000 c08104c0 d521beb4 d521be88
    be80: c004cd94 c004bbb8 c004cd04 d6f52bc0 00000000 d521a038 c08104c0 d6f52bc0
    bea0: 00000000 d521a038 d521bf54 d521beb8 c0556b80 c00c46bc d521beec d521bec8
    bec0: c0046320 c00c3f98 d62b5ce4 00000001 d62b5cf0 c0556c74 00000000 00000003
    bee0: d521befc d5061094 00000000 d5061094 d50f2c00 00000000 00000000 d50f2c00
    bf00: d521bf64 d521bf10 bf132ae4 bf02c5ec 00000000 00000000 d521bf44 d521bf28
    bf20: c0556e20 c05565ec 00000002 d6058080 00000000 d5061094 bf132808 d6058080
    bf40: 00000000 d5061094 bf132808 00000000 00000000 00000000 d521bfac d521bf68
    bf60: c003edf8 bf132814 d521bf94 00000000 c0046010 d5061094 00000000 d521bf7c
    bf80: d521bf7c 00000000 d521bf88 d521bf88 d6058080 c003ed20 00000000 00000000
    bfa0: 00000000 d521bfb0 c000e988 c003ed2c 00000000 00000000 00000000 00000000
    bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
    [] (media_entity_pipeline_start [media]) from [] (dvb_frontend_thread+0x2dc/0x65c [dvb_core])
    [] (dvb_frontend_thread [dvb_core]) from [] (kthread+0xd8/0xf4)
    [] (kthread) from [] (ret_from_fork+0x14/0x20)
    [ 219.435521] Code: e24cb004 e24dd0a4 e52de004 e8bd4000 (e5903008)

    ReplyDelete
    Replies
    1. Media build is currently broken. Fix is here, waiting for commit.
      https://patchwork.linuxtv.org/patch/28372/

      Delete
    2. Same error, changed the line in the c file and run make; sudo make install.
      Or need I run ./build again?

      Delete
    3. First patch was buggy. Mauro made new one, which he already committed to master. I think master will be synchronized to media build once per day.

      "[PATCH v2] [media] dvb core: only start media entity if not NULL"
      https://patchwork.linuxtv.org/patch/28387/

      Delete
    4. Thanks Antti, will try it out now.

      Delete
  27. It works now but get a new error.

    mn88473 0-0018: Panasonic MN88473 successfully attached
    mn88473 0-0018: downloading firmware from file 'dvb-demod-mn88473-01.fw'
    mn88473 0-0018: firmware download failed=-32

    Must the firmware to be recompiled for a ARM CPU?

    ReplyDelete
  28. I will try out this patch now.
    https://patchwork.linuxtv.org/patch/27348/

    ReplyDelete
  29. It works now with this patch; firmware downloading without error.

    ReplyDelete
  30. r820t 1-003a: r820t_write: i2c wr failed=-32 reg=1d len=1: dd
    What about this error?
    Scanned with w_scan and no channels found .

    ReplyDelete
    Replies
    1. It is those same random I2C errors happening... I suspect root of cause is mn88473, maybe it tries clock stretching in order to slow down I2C bus speed => which causes I2C communication failure. However, single error should not have much impact.
      Did you try terrestrial or cable?

      Delete
    2. pi@raspberrypi ~ $ w_scan -fc -o 21 >> channels.conf22
      w_scan -fc -o 21
      w_scan version 20141122 (compiled for DVB API 5.10)
      guessing country 'DE', use -c to override
      using settings for GERMANY
      DVB cable
      DVB-C
      scan type CABLE, channellist 7
      output format vdr-2.1
      output charset 'UTF-8', use -C to override
      Info: using DVB adapter auto detection.
      /dev/dvb/adapter0/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
      /dev/dvb/adapter0/frontend1 -> CABLE "Panasonic MN88473": very good :-))

      Using CABLE frontend (adapter /dev/dvb/adapter0/frontend1)
      -_-_-_-_ Getting frontend capabilities-_-_-_-_
      Using DVB API 5.10
      frontend 'Panasonic MN88473' supports
      INVERSION_AUTO
      QAM_AUTO
      FEC_AUTO
      FREQ (42.00MHz ... 1002.00MHz)
      This dvb driver is *buggy*: the symbol rate limits are undefined - please report to linuxtv.org
      -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
      73000: sr6900 (time: 00:00.839) signal ok: QAM_AUTO f = 73000 kHz S6900C999 (0:0:0)
      Info: no data from PAT after 2 seconds
      deleting (QAM_AUTO f = 73000 kHz S6900C999 (0:0:0))
      *
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:3)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:33)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:4)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:5)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:6)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:7)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:8)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:9)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (1:1:1043)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:1)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (133:1:10)) 0x4000
      new transponder: (QPSK f = 0 kHz S0C0 (1:1:1003)) 0x4000
      *

      Delete
    3. Update DVB-C, w_scan find sometimes channels on QAM64, vdr doesn't work with this driver. Tvheadend working on QAM64 and it find and stream tv-channels and radio. Does the driver support DVB-C QAM128 and QAM256?

      Delete
    4. I have a V1 stick, and it does work with DVB-C QAM256. However, I get quite a lot I2C errors, and it seems like it always fails to scan on some of the frequencies; there are a couple of mux'es where it always fails to find anything (where it works fine on Windows).

      I used the latest media_build. I needed to apply the the rc poll time patch from Benjamin Larsson to make it succeed to load the firmware.

      Is there anyway one can help out with testing/debugging of this driver?

      Delete
  31. I tried cable, maybe not enough power on the USB port? I have four USB ports on my raspberrypi, one bluetooth dongle, one 32G USB dongle and one TV dongle is connected. Also one camera with two 1w IR LEDs is connected to the mainboard. Power supply has 2A output.

    ReplyDelete
  32. This comment has been removed by the author.

    ReplyDelete
  33. Hey! I hope you dont mind a total newbie in need of help on your blog...
    I am trying to make this TV dongle work on a Synology Diskstaion (Ds211j) running (a Synology tailormade) Linux version 2.6.32.12

    No recognition of stick, except it shows up at the info screen as "dvbt2 - Hanftek".
    Directory /dev/dvb doesnt exist.

    Once again, the newbie I am, I tried downloadong this firmware http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/latest/ , but still no recognition....

    Would appreciate any help, in as simple newbie language as possible....
    Do I need to recompile your .fw file for my specific linux version?

    ReplyDelete
  34. This comment has been removed by the author.

    ReplyDelete
  35. Hi I Have Astromedata dongle vith MN88743 chip, instaled on ubuntu desktop 14.04 with 3.19 kernel. I downloaded http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/latest/dvb-demod-mn88473-01.fw firmware and put in /lib/firmware/.
    In kernel.log reports that everything is OK, but w_scan don`t find any channel.
    It`s DVB-T2
    Frekvencija 570MHz
    Modulaciona šema 256-QAM
    Kompresioni standard MPEG-4.10 (H.264/AVC)
    Mod rada 32K
    Nominalna širina kanala 8 MHz
    Zaštitni interval 1/16 (1/8)
    Kodni kolicnik 3/4
    Pilot šema PP4 (PP2)
    Tip mreže SFN
    Ulazni mod A
    Antenski mod SISO
    PLP mod Single
    Frekvencijski mod Normalni/Prošireni
    FEC dužina okvira 648000
    Zauzeta širina opsega 7.61 MHz
    Trajanje korisnog dela simbola 3584 μs
    Trajanje zaštitnog intervala 224 (448) μs
    Procenjen bitski protok 40.58/41.43 (36.72/37.52)Mbps

    Any help ?

    ReplyDelete
    Replies
    1. Have you compiled the driver? It is not enough only to add the fw file.

      When you run w_scan do you get message that Panasonic is detected, or just RTL?

      It should be like this:
      Info: using DVB adapter auto detection.
      /dev/dvb/adapter0/frontend0 -> TERRESTRIAL "Realtek RTL2832 (DVB-T)": good :-)
      /dev/dvb/adapter0/frontend1 -> TERRESTRIAL "Panasonic MN88473": very good :-))

      Delete
    2. Yes that ok, than scann all frequencies and find nothing :(

      Delete
    3. Hi is there any solution for my problem, a try evrithing, comiled driver from source, but still no luck scaning any channel

      Delete
  36. Hello,
    I tried to compile media_build on Arm Orange PI with Debian 3.19.3. Make process finishes without errors but needed module (dvb-usb-rtl28xxu) not present. Can you please suggest ways to solve this issue?
    Also can you say, is it possible to extract from whole media build driver and dvb core for this tuner? This maybe very useful for devices with small disk resources.

    ReplyDelete
    Replies
    1. I've got the same situation, on bpi. I tried backporting as it described here ( https://backports.wiki.kernel.org/index.php/Documentation/packaging ), the compilation went well without any error or warning, but I still missing these modules: i2c_mux, dvb_usb_rtl28xxu and rtl2832

      Delete
    2. If you compile a 3.19 kernel with Igor's script, you can select the needed modules before compiling. Don't forget to select those modules what I wrote before as well.

      See the "How to compile my own kernel or SD image?" topic of the FAQ here:
      http://www.igorpecovnik.com/2015/01/18/orange-pi-debian-sd-image/

      Delete
  37. Hello!
    I have Astrometa dongle first revision with MN88472 chip, installed on ubuntu desktop 15.04 with 3.19 kernel. I downloaded http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/dvb-demod-mn88472-02.fw firmware and put in /lib/firmware/.
    In kernel.log reports that everything is OK
    w_scan write:
    Info: using DVB adapter auto detection.
    /dev/dvb/adapter0/frontend0 -> TERRESTRIAL "Realtek RTL2832 (DVB-T)": good :-)
    /dev/dvb/adapter0/frontend1 -> TERRESTRIAL "Panasonic MN88472": very good :-))

    I get channels.conf

    But vlc installed through "apt-get install vlc" can't show anything.

    What do I wrong?

    ReplyDelete
    Replies
    1. VLC can use the first frontend of a device, which is DVB-T.

      Are you trying DVB-C? If yes:

      For a temporary solution, you can swap the frontends by:
      sudo mv /dev/dvb/adapter0/frontend0 /dev/dvb/adapter0/frontend2
      sudo mv /dev/dvb/adapter0/frontend1 /dev/dvb/adapter0/frontend0
      sudo mv /dev/dvb/adapter0/frontend2 /dev/dvb/adapter0/frontend1

      Or use kaffeine instead.

      Delete
    2. I'm trying DVB-T2

      tzap -a 0 -d 0 -f 1 -c channels.conf -r
      write FE_HAS_LOCK

      But
      cat /dev/dvb/adapter0/dvr0 >
      give me zero size file.

      Delete
    3. I have no idea. Maybe you could try swapping the frontends, then open vlc, media -> open capture device -> capture mode: tv -> select dvb-t2 -> set the frequency manually -> play.

      But it's just a guess.

      I suggest forget this frontend swapping hack, and give it a try to kaffeine. Just to make sure, that everything is working fine.

      Delete
  38. This comment has been removed by the author.

    ReplyDelete
  39. Hello Antti,

    Is there any news from Panasonic about the demodulator documentation?

    Gyuri

    ReplyDelete
  40. Hi Antti,

    Thanks for the great work.

    I have a MN88473 based stick and I want to check that I've followed the correct steps, I have done:

    $ git clone git://linuxtv.org/media_build.git
    $ cd media_build
    $ ./build
    $ make stagingconfig
    $ make -C ./v4l/
    # make install

    Copied firmware to /lib/firmware

    This gives me two frontends, and the first time I ran TVHeadend after this it detected 3 tuners - 2 as MN88473 (DVB-T and DVB-C) and one RTL2832 - which I think is the expected behaviour.

    I've tried scanning with w_scan and scan and neither find anything using the MN88473 frontend (frontend1). TVH didn't managed to tune anything.

    Since the first time TVH detected 3 frontends it now only sees the RTL2832 and the logs say "linuxdvb: unable to open /dev/dvb/adapter0/frontend1" (MN88473)

    dmesg is filled with errors like:
    [ 1236.533787] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3
    [ 1236.538755] rtl2832 1-0010: i2c reg read failed -32
    [ 1239.034638] rtl2832 1-0010: i2c reg read failed -32

    I've also noticed that on reboot only frontend0 is seen by ubuntu (14.04), the stick needs physically unplugging to get frontend1 back listed, is this expected behaviour?

    Another error from TVH when tuning is:

    2015-10-03 09:43:15.459 linuxdvb: Unhandled signal scale: 0
    2015-10-03 09:43:15.471 linuxdvb: Unhandled SNR scale: 0
    2015-10-03 09:43:15.471 linuxdvb: Unable to provide UNC value.

    ReplyDelete
    Replies
    1. Now trying to scan DVB-C - connected to a DVB-C point and trying to scan using w_scan

      sudo w_scan -fc -c GB
      ....
      /dev/dvb/adapter0/frontend1 -> CABLE "Panasonic MN88473": very good :-))
      ....

      Nothing scanned.

      dmesg is full of:

      [ 647.047298] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3
      [ 649.548046] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3
      [ 652.048796] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3
      [ 654.549669] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3
      [ 657.050417] r820t 2-003a: r820t_write: i2c wr failed=-32 reg=0c len=1: f3

      Delete
    2. I've also tried OpenElec 5.95.5 which has the drivers built in and I'm having the same issue. Could it be down to the USB chipset? It's an Intel Atom 330/nvidia ION system.

      I guess it's worth trying on another system.

      Delete
    3. I had the exact same issues on Ubuntu as well as on OpenELEC, didn't manage to solve it. My system is quite old and based on the AMD 780G chipset.

      With Windows 10 on the same system, the tuner works fine.

      Delete
    4. Pretty much what I'm seeing. I've resorted to using Win7 + NextPVR then adding the direct streams as IPTV sources on TVHeadend. It's messy but it seems to work surprisingly well.

      Delete
  41. This comment has been removed by the author.

    ReplyDelete
  42. Is anyone developing this driver at the moment? From what I can see there hasn't been much activity with the mn88472/3 code for quite some time.

    I hope I'm wrong tho and that the Panasonic chips get decent support at some point. I've been trying to get this stick to get HD channels with MythTV. So far frontend1 reports as dvb-t instead of 2, which I don't think is an actual problem, and scanning for channels comes up empty.

    ReplyDelete
    Replies
    1. I've seen Antti has submitted a few patches to improve things on patchwork.linuxtv.org. I might try doing a "media_build" once they're accepted.

      Delete
    2. I uploaded those patches also to my git tree
      http://git.linuxtv.org/anttip/media_tree.git/log/?h=astrometa

      So you may use it also using media build. Media build supports developer git trees located linuxtv.org.

      $ git clone git://linuxtv.org/media_build.git
      $ cd media_build/
      $ ./build --git git://linuxtv.org/anttip/media_tree.git astrometa
      $ make
      $ sudo -s
      # make install

      Delete
    3. Here cover letter of patch which moves mn88473 out of staging. I will pull request it soon. Should go to Kernel 4.6.
      http://www.spinics.net/lists/linux-media/msg97143.html
      Latest firmware:
      http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/2016-02-07/

      Delete
    4. Dear Antti,

      Are you planning to finalize mn88472 too or is it a completely different thing?

      Thanks,
      Gyuri

      Delete
    5. It is different, but not completely. Finalizing of mn88473 took 3 days, mn88472 is about same size of workload. I have been waiting if Benjamin Larsson would like to finalize it.

      Even I spoke about finalizing, it still does not mean it is final. It is ready enough to mainline with minimal set of features. It just works, but many features are missing: all the signal statistics (block error reporting, bit error reporting, signal noise ratio reporting), and DVB-T2 multi-PLP support.

      Delete
    6. I hope once you will have time and spirit to make it.

      Thanks for your reply and thanks for your works on these DVB stuffs!

      Delete
    7. Hi Antti,

      I have this device and I'm trying the driver in the current astrometa branch, but I'm getting the following null pointer dereference while starting tvheadend:

      http://pastebin.com/DMwM6u56

      Did I do something wrong?

      Cheers,
      Alex

      Delete
    8. Feb 12 17:42:43 htpc kernel: [ 63.277855] mn88473: module is from the staging directory, the quality is unknown, you have been warned.

      It is still loading old driver from the staging directory. You have to remove it. Use rmmod mn88473 to remove driver from memory. Then use modinfo mn88473 command to see which driver it loads. If modinfo command show /xx/staging/xx/mn88473 as file patch, when remove that driver by rm /xx/staging/xx/mn88473 and after that run depmod -a. Then do modinfo mn88473 again to see which driver is loaded.

      Delete
    9. Antti... What kernel is needed?

      I'm running 3.19.0-49-generic on ubuntu 14.04.03 LTS and the patching is failing

      http://pastebin.com/PzpTabUd

      Is it best if I just upgrade to 4.x?

      Delete
    10. That was it, Antti, thanks a lot! It works just fine now!

      Delete
    11. Tried kernel 4.4.1

      It fails differently - http://pastebin.com/BWHSGFgD

      4.2?

      Delete
    12. AT it fails to that:
      Makefile:660: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
      CC [M] /home/dvbc/astrometa/new-2016/media_build/v4l/msp3400-driver.o
      gcc: error: unrecognized command line option '-fstack-protector-strong'
      make[3]: *** [/home/dvbc/astrometa/new-2016/media_build/v4l/msp3400-driver.o] Error 1

      I really do not care to waste my time to resolve all these media build errors, sorry. Hopefully someone else could do it. Try to disable msp3400 driver from config (and don't ask how to do it :)
      According to log Jimbo seems to have 4.2.0-27-generic kernel and media build installed successfully.

      Delete
    13. Thanks Antti

      I wouldn't want you to waste your time, thanks for all the work on this.

      I'll have a look at that and give that kernel a go. Thanks for the pointers.

      Delete
    14. Media build works generally better for recent kernels as less backporting is needed. Also older kernels could have missing some stuff used by newer drivers - for example I2C mux support is one of such feature which tends to be disabled in many older kernels and it is used by many newer drivers. Regmap is another thing. Both I2C mux and regmap are needed for Astrometa.
      You could also clone my delopment tree and install it like a new kernel (it contains whole kernel 4.5.0-rc1+).
      http://git.linuxtv.org/anttip/media_tree.git/log/?h=astrometa

      Delete
    15. Compiling breaks with Debian Jessie on 3.16 and 4.6 Kernel:

      http://pastebin.com/paKHKYwx

      Is this a media_build or mn8847X Driver related?

      Delete
  43. This comment has been removed by a blog administrator.

    ReplyDelete
  44. This comment has been removed by a blog administrator.

    ReplyDelete
  45. Hi Antti,
    I just received my astrometa device and verified it can show hd channels on windows. On linux I can scan the channels but viewing them with vlc only works with sd channels. VLC says something about cannot set parameters. MN88473 module is loaded and kernel is stock 4.2.0 general in Ubuntu. Firmware is located in /lib/firmware/dvb-demod-mn88473-01.fw I cannot see any information from firmware loading.


    What am I doing wrong? Can you give me some hints?

    ReplyDelete
    Replies
    1. I think VLC do not know how to tune any other than frontend number 0. That device has 2 frontends. Frontend 0 is RTL2832 which supports only DVB-T and frontend 1 is MN88473 which supports DVB-T, DVB-T2 and DVB-C.

      One hackish solution is to use dvbv5-zap for tuning and VLC for viewing.
      $ dvbv5-zap "Yle TV1 HD" --adapter=0 --frontend=1 --record
      $ vlc --dvb-budget-mode dvb://

      Delete
  46. good afternoon. following problem with the tuner and the latest driver. tvheadend finds no channels at frequencies above 600 mhz. 4.1.18 version of the kernel frequency 88 mhz and 600 mhz channel is excellent.

    ReplyDelete
    Replies
    1. Which broadcast standard?

      Delete
    2. hardware raspberry pi2 software raspbian or osmc. a problem in any of these distributions

      Delete
    3. Can you try both firmwares from here:
      http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/
      Also, is it possible to use w_scan ?
      What channels are found? Is there some transmission parameter set differently those channels found and not found?

      Delete
    4. check with both drivers and with the last driver and 2014 logs w-scan lay out in 10 minutes

      Delete
    5. osmc@osmc:~$ w_scan -fc -c RU
      w_scan version 20130331 (compiled for DVB API 5.4)
      using settings for RUSSIAN FEDERATION
      Country identifier RU not defined. Using defaults.
      scan type CABLE, channellist 4
      output format vdr-2.0
      WARNING: could not guess your codepage. Falling back to 'UTF-8'
      output charset 'UTF-8', use -C to override
      Info: using DVB adapter auto detection.
      /dev/dvb/adapter0/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
      /dev/dvb/adapter0/frontend1 -> CABLE "Panasonic MN88473": very good :-))

      Using CABLE frontend (adapter /dev/dvb/adapter0/frontend1)
      -_-_-_-_ Getting frontend capabilities-_-_-_-_
      Using DVB API 5.a
      frontend 'Panasonic MN88473' supports
      INVERSION_AUTO
      QAM_AUTO
      FEC_AUTO
      FREQ (42.00MHz ... 1002.00MHz)
      SRATE (1.000MSym/s ... 7.200MSym/s)
      -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
      474000: sr6900 (time: 00:02) sr6875 (time: 00:05)
      482000: sr6900 (time: 00:08) sr6875 (time: 00:12)
      490000: sr6900 (time: 00:15) sr6875 (time: 00:18)
      498000: sr6900 (time: 00:21) sr6875 (time: 00:24)
      506000: sr6900 (time: 00:27) sr6875 (time: 00:31)
      514000: sr6900 (time: 00:34) sr6875 (time: 00:37)
      522000: sr6900 (time: 00:40) sr6875 (time: 00:43)
      530000: sr6900 (time: 00:47) sr6875 (time: 00:50)
      538000: sr6900 (time: 00:53) (time: 00:54) signal ok:
      QAM_AUTO f = 538000 kHz S6900C999
      undefined outer fec
      updating transponder:
      (QAM_AUTO f = 538000 kHz S6900C999) 0x0000
      to (QAM_256 f = 538000 kHz S6750C34) 0x4044
      546000: sr6900 (time: 01:06) sr6875 (time: 01:09)
      554000: sr6900 (time: 01:12) sr6875 (time: 01:16)
      562000: sr6900 (time: 01:19) sr6875 (time: 01:22)
      570000: sr6900 (time: 01:25) sr6875 (time: 01:28)
      578000: sr6900 (time: 01:32) (time: 01:33) signal ok:
      QAM_AUTO f = 578000 kHz S6900C999
      undefined outer fec
      updating transponder:
      (QAM_AUTO f = 578000 kHz S6900C999) 0x0000
      to (QAM_256 f = 578000 kHz S6750C34) 0x4044
      586000: sr6900 (time: 01:45) sr6875 (time: 01:48)
      594000: sr6900 (time: 01:51) (time: 01:52) signal ok:
      QAM_AUTO f = 594000 kHz S6900C999
      undefined outer fec
      updating transponder:
      (QAM_AUTO f = 594000 kHz S6900C999) 0x0000
      to (QAM_256 f = 594000 kHz S6750C34) 0x4044
      602000: sr6900 (time: 02:04) sr6875 (time: 02:08)
      610000: sr6900 (time: 02:11) sr6875 (time: 02:14)
      618000: sr6900 (time: 02:17) sr6875 (time: 02:20)
      626000: sr6900 (time: 02:24) sr6875 (time: 02:27)
      634000: sr6900 (time: 02:30) (time: 02:33)
      sr6875 (time: 02:34)
      642000: sr6900 (time: 02:37) sr6875 (time: 02:41)
      650000: sr6900 (time: 02:44) sr6875 (time: 02:47)
      658000: sr6900 (time: 02:50) sr6875 (time: 02:53)
      666000: sr6900 (time: 02:57) sr6875 (time: 03:00)
      674000: sr6900 (time: 03:03) sr6875 (time: 03:06)
      682000: sr6900 (time: 03:09) (time: 03:10)
      sr6875 (time: 03:12) (time: 03:13)
      690000: sr6900 (time: 03:15) (time: 03:16) signal ok:
      QAM_AUTO f = 690000 kHz S6900C999
      Info: no data from NIT(actual)
      698000: sr6900 (time: 03:29) (time: 03:30) signal ok:
      QAM_AUTO f = 698000 kHz S6900C999
      WARNING: received garbage data: crc = 0xea8b6187; expected crc = 0x6196db54
      increasing filter timeout.
      WARNING: received garbage data: crc = 0xffe9295e; expected crc = 0x6716db56

      Delete
  47. Info: no data from NIT(actual)
    706000: sr6900 (time: 04:22) (time: 04:24) signal ok:
    QAM_AUTO f = 706000 kHz S6900C999
    Info: no data from NIT(actual)
    714000: sr6900 (time: 04:37) sr6875 (time: 04:40)
    722000: sr6900 (time: 04:44) sr6875 (time: 04:47)
    730000: sr6900 (time: 04:50) sr6875 (time: 04:53)
    738000: sr6900 (time: 04:56) sr6875 (time: 05:00)
    746000: sr6900 (time: 05:03) sr6875 (time: 05:06)
    754000: sr6900 (time: 05:09) sr6875 (time: 05:12)
    762000: sr6900 (time: 05:15) sr6875 (time: 05:19)
    770000: sr6900 (time: 05:22) sr6875 (time: 05:25)
    778000: sr6900 (time: 05:28) sr6875 (time: 05:31)
    786000: sr6900 (time: 05:35) sr6875 (time: 05:38)
    794000: sr6900 (time: 05:41) sr6875 (time: 05:44)
    802000: sr6900 (time: 05:48) sr6875 (time: 05:51)
    810000: sr6900 (time: 05:54) sr6875 (time: 05:57)
    818000: sr6900 (time: 06:00) sr6875 (time: 06:04)
    826000: sr6900 (time: 06:07) sr6875 (time: 06:10)
    834000: sr6900 (time: 06:13) sr6875 (time: 06:16)
    842000: sr6900 (time: 06:20) sr6875 (time: 06:23)
    850000: sr6900 (time: 06:26) sr6875 (time: 06:29)
    858000: sr6900 (time: 06:32) sr6875 (time: 06:35)
    tune to: QAM_256 f = 538000 kHz S6750C34
    (time: 06:39) undefined outer fec
    service = Glazella 3D (DV Crypt)
    service = Mute 3D (DV Crypt)
    service = AnyDay 3D (DV Crypt)
    service = Music 1 HD (DV Crypt)
    service = Radio Business (DV Crypt)
    service = Radio Humor (DV Crypt)
    service = Radio City (DV Crypt)
    service = Radio Romantika (DV Crypt)
    service = Radio Energy (DV Crypt)
    service = Radio Avtoradio (DV Crypt)
    service = Radio Dorozhnoe (DV Crypt)
    service = Radio R.S.N. (DV Crypt)
    service = Radio Record (DV Crypt)
    service = Radio Relax (DV Crypt)
    service = Radio Chanson (DV Crypt)
    tune to: QAM_256 f = 578000 kHz S6750C34
    (time: 06:51) undefined outer fec
    service = 24 Techno (DV Crypt)
    service = HCT (DV Crypt)
    service = 24 Doc (DV Crypt)
    service = EGE (DV Crypt)
    service = Discovery Show HD (DV Crypt)
    service = Animal Planet HD (DV Crypt)
    service = Ulibka rebenka (DV Crypt)
    service = Amedia 1 (DV Crypt)
    tune to: QAM_256 f = 594000 kHz S6750C34
    (time: 07:03) undefined outer fec
    service = Match! Arena HD (DV Crypt)
    service = Nayka 2.0 (DV Crypt)
    service = Travel+Adventure HD (DV Crypt)
    service = Rossia HD (DV Crypt)
    service = Telekanal 360 HD (DV Crypt)

    ReplyDelete
    Replies
    1. tune to: QAM_AUTO f = 690000 kHz S6900C999
      (time: 07:15) Info: no data from PAT
      Info: no data from SDT(actual)
      Info: no data from NIT(actual)
      tune to: QAM_AUTO f = 698000 kHz S6900C999
      (time: 07:28) Info: no data from PAT
      Info: no data from SDT(actual)
      Info: no data from NIT(actual)
      tune to: QAM_AUTO f = 706000 kHz S6900C999
      (time: 07:41) ----------no signal----------
      tune to: QAM_AUTO f = 706000 kHz S6900C999 (no signal)
      (time: 07:42) WARNING: received garbage data: crc = 0x52032306; expected crc = 0xa242ffff
      increasing filter timeout.
      Info: no data from SDT(actual)
      Info: no data from PAT
      Info: no data from NIT(actual)
      dumping lists (28 services)
      Glazella 3D;DV Crypt:538000:M256:C:6750:4096=27:4097=eng@15:0:0:2144:145:268:0
      Mute 3D;DV Crypt:538000:M256:C:6750:4112=27:4113=eng@15:0:0:2145:145:268:0
      AnyDay 3D;DV Crypt:538000:M256:C:6750:4128=27:4129=eng@15:0:0:2146:145:268:0
      Music 1 HD;DV Crypt:538000:M256:C:6750:4144=27:4145=rus@4:0:0:2147:145:268:0
      Radio Business;DV Crypt:538000:M256:C:6750:0:4160@3:0:0:2148:145:268:0
      Radio Humor;DV Crypt:538000:M256:C:6750:0:4176@3:0:0:2149:145:268:0
      Radio City;DV Crypt:538000:M256:C:6750:0:4192@3:0:0:2150:145:268:0
      Radio Romantika;DV Crypt:538000:M256:C:6750:0:4208@3:0:0:2151:145:268:0
      Radio Energy;DV Crypt:538000:M256:C:6750:0:6144@3:0:0:2752:145:268:0
      Radio Avtoradio;DV Crypt:538000:M256:C:6750:0:6160@3:0:0:2753:145:268:0
      Radio Dorozhnoe;DV Crypt:538000:M256:C:6750:0:6176@4:0:0:2754:145:268:0
      Radio R.S.N.;DV Crypt:538000:M256:C:6750:0:6192@3:0:0:2755:145:268:0
      Radio Record;DV Crypt:538000:M256:C:6750:0:6208@3:0:0:2756:145:268:0
      Radio Relax;DV Crypt:538000:M256:C:6750:0:6224@3:0:0:2757:145:268:0
      Radio Chanson;DV Crypt:538000:M256:C:6750:0:6240@4:0:0:2758:145:268:0
      24 Techno;DV Crypt:578000:M256:C:6750:3456=2:3457@3:0:0:2168:145:271:0
      HCT;DV Crypt:578000:M256:C:6750:3458=2:3459@3:0:0:2169:145:271:0
      24 Doc;DV Crypt:578000:M256:C:6750:3460=2:3461=rus@4:0:0:2170:145:271:0
      EGE;DV Crypt:578000:M256:C:6750:3462=27:3463=rus@4:0:0:2171:145:271:0
      Discovery Show HD;DV Crypt:578000:M256:C:6750:3464=27:0;3465,3466:0:0:2172:145:271:0
      Animal Planet HD;DV Crypt:578000:M256:C:6750:3467=27:3468=rus@4,3469=eng:0:0:2173:145:271:0
      Ulibka rebenka;DV Crypt:578000:M256:C:6750:3470=27:3471@3:0:0:2174:145:271:0
      Amedia 1;DV Crypt:578000:M256:C:6750:3472=27:3473@4:0:0:2175:145:271:0
      Match! Arena HD;DV Crypt:594000:M256:C:6750:3840=27:3841=rus@4:0:0:2192:145:274:0
      Nayka 2.0;DV Crypt:594000:M256:C:6750:3842=2:3843@3:0:0:2193:145:274:0
      Travel+Adventure HD;DV Crypt:594000:M256:C:6750:3844=27:3845=rus@3,3846=eng:0:0:2194:145:274:0
      Rossia HD;DV Crypt:594000:M256:C:6750:3847=27:3848=eng@3:0:0:2195:145:274:0
      Telekanal 360 HD;DV Crypt:594000:M256:C:6750:3849=27:3850=eng@3:0:0:2196:145:274:0
      Done.
      osmc@osmc:~$

      Delete
    2. if you want I can give you ssh access to the device

      Delete
    3. in windows over 600 mhz channels are also shown . therefore defective antenna problem can be eliminated .

      Delete
    4. parameters of all channels are equal. 6750 256

      Delete
    5. Now w-scan behaves as if all does not see the signal at frequencies above 600mhz signal at exactly there .

      Delete
    6. 602000: sr6900 (time: 02:03) sr6875 (time: 02:06)
      610000: sr6900 (time: 02:09) sr6875 (time: 02:13)
      618000: sr6900 (time: 02:16) sr6875 (time: 02:19)
      626000: sr6900 (time: 02:22) sr6875 (time: 02:25)
      634000: sr6900 (time: 02:28) sr6875 (time: 02:32)
      642000: sr6900 (time: 02:35) sr6875 (time: 02:38)
      650000: sr6900 (time: 02:41) sr6875 (time: 02:44)
      658000: sr6900 (time: 02:48) sr6875 (time: 02:51)
      666000: sr6900 (time: 02:54) sr6875 (time: 02:57)
      674000: sr6900 (time: 03:00) sr6875 (time: 03:04)
      682000: sr6900 (time: 03:07) sr6875 (time: 03:10)
      690000: sr6900 (time: 03:13) sr6875 (time: 03:16)
      698000: sr6900 (time: 03:20) sr6875 (time: 03:23)
      706000: sr6900 (time: 03:26) sr6875 (time: 03:29)
      714000: sr6900 (time: 03:32) sr6875 (time: 03:36)
      722000: sr6900 (time: 03:39) sr6875 (time: 03:42)
      730000: sr6900 (time: 03:45) sr6875 (time: 03:48)
      738000: sr6900 (time: 03:52) sr6875 (time: 03:55)
      746000: sr6900 (time: 03:58) sr6875 (time: 04:01)
      754000: sr6900 (time: 04:04) sr6875 (time: 04:07)
      762000: sr6900 (time: 04:11) sr6875 (time: 04:14)
      770000: sr6900 (time: 04:17) sr6875 (time: 04:20)
      778000: sr6900 (time: 04:23) sr6875 (time: 04:27)
      786000: sr6900 (time: 04:30) sr6875 (time: 04:33)
      794000: sr6900 (time: 04:36) sr6875 (time: 04:39)
      802000: sr6900 (time: 04:43) sr6875 (time: 04:46)
      810000: sr6900 (time: 04:49) sr6875 (time: 04:52)
      818000: sr6900 (time: 04:55) sr6875 (time: 04:59)
      826000: sr6900 (time: 05:02) sr6875 (time: 05:05)
      834000: sr6900 (time: 05:08) sr6875 (time: 05:11)
      842000: sr6900 (time: 05:15) sr6875 (time: 05:18)
      850000: sr6900 (time: 05:21) sr6875 (time: 05:24)
      858000: sr6900 (time: 05:27) sr6875 (time: 05:31)

      Delete
    7. For my live network it finds all the muxes, but maximum frequency used is only 394 MHz. Can you send ssh login to my email I could check?

      Delete
    8. This comment has been removed by the author.

      Delete
    9. I sent you ssh access to facebook

      Delete
    10. Got it. You are running a bit old kernel and driver, but I think I have good idea which causes the problem...

      Delete
  48. logs tvheadend
    2016-03-14 18:49:41.000 mpegts: 594MHz in bks - tuning on Panasonic MN88473 : DVB-C #1
    2016-03-14 18:49:41.001 subscription: 007E: "scan" subscribing to mux "594MHz", weight: 2, adapter: "Panasonic MN88473 : DVB-C #1", network: "bks", service: "Raw PID Subscription"
    2016-03-14 18:49:45.003 mpegts: 594MHz in bks scan complete
    2016-03-14 18:49:45.004 subscription: 007E: "scan" unsubscribing
    2016-03-14 18:49:55.000 mpegts: 818MHz in bks - tuning on Panasonic MN88473 : DVB-C #1
    2016-03-14 18:49:55.001 subscription: 0080: "scan" subscribing to mux "818MHz", weight: 2, adapter: "Panasonic MN88473 : DVB-C #1", network: "bks", service: "Raw PID Subscription"
    2016-03-14 18:50:00.000 mpegts: 818MHz in bks - scan no data, failed

    ReplyDelete
  49. I've got a similar issue where anything over 680 MHz fails to scan, but on Windows it scans ok.

    ReplyDelete
  50. Sensitivity problem of higher frequencies is caused likely one of these r820t driver patches:
    275350a [media] r820t: enable flt_ext_wide for SYS_DVBC_ANNEX_A standard
    d03b550 [media] r820t: add settings for SYS_DVBC_ANNEX_C standard
    7b7ef4b [media] r820t: add DVBC profile in sysfreq_sel

    I could try to dig it out later using signal generator...

    ReplyDelete
  51. Good news for Ubuntu user. The kernel 4.5 have compiled module for mn88472 and mn88473 ( but it still in staging )
    build.log :
    " Media staging drivers
    *
    Media staging drivers (STAGING_MEDIA) [Y/n/?] y
    Broadcom BCM2048 FM Radio Receiver support (I2C_BCM2048) [M/n/?] m
    CXD2099AR Common Interface driver (DVB_CXD2099) [M/n/?] m
    Panasonic MN88472 (DVB_MN88472) [M/n/?] m
    Panasonic MN88473 (DVB_MN88473) [M/n/?] m
    "
    http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5-wily/

    ReplyDelete
    Replies
    1. Not so good news for me since upgrading to the newest 16.04 LTS.

      Worked fine on 15.10 with self compiled staging drivers (as above), but with the newest distro I constantly get a problem with loading the mn88473 firmware:

      [Tue May 31 00:23:46 2016] mn88473 7-0018: downloading firmware from file 'dvb-demod-mn88473-01.fw'
      [Tue May 31 00:23:46 2016] mn88473 7-0018: firmware download failed=-32

      Anybody else having trouble with this?

      Delete
  52. Do the higher frequency sensitivity problems apply to DVB-T/T2 also?

    I am quite sure that my adapter0/frontend1 (MN88473) is now working with the correct driver and firmware, as I am able to carry out channel scans in my mythtv backend, but I am unable to see any DVBT2 channels.

    DVBT2 channels in my area broadcast on C53, 730.0MHz.

    Many thanks Antti for your amazing work on this device.

    ReplyDelete
  53. I seem to have an issue with getting T2 working.

    w_scan (20141122) when scanning finds the T2 mux on the first pass, but on the second pass (where it lists actual channels) it fails to tune to dvb-t2. This is even when specifying slowest tuning timeout. Regular T channels are detected OK. I have only managed to it to find T2 channels with dvbscan initial_tuning_data file supplied and even then T2 channels are found if that mux is either first or last in the list.

    Tvheadend (4.0.8 and 4.0.9) finds and works with T channels, but fails with T2 channels with what looks like timeouts to the untrained eye? Relevant bits from log:


    2016-04-16 11:35:01.308 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - checking FE status (ready)
    2016-04-16 11:35:01.310 [ DEBUG]:linuxdvb: Panasonic MN88473 : DVB-T #1 - status GOOD (SIGNAL | CARRIER | VITERBI | SYNC | SIGNAL)
    2016-04-16 11:35:01.310 [ DEBUG]:linuxdvb: Panasonic MN88473 : DVB-T #1 - locked
    2016-04-16 11:35:01.311 [ TRACE]:thread: created thread -1551896688 [linuxdvb_fronten / 0x859e1(0x136e10)]
    2016-04-16 11:35:01.311 [ TRACE]:mpegts: table: mux 0x133378 add pat 00/00 (0) pid 0000 (0)
    2016-04-16 11:35:01.311 [ DEBUG]:mpegts: 642MHz in Levira HD - open PID 0000 (0) [20/0x2017b8]
    2016-04-16 11:35:01.311 [ TRACE]:mpegts: table: mux 0x133378 add cat 01/FF (1) pid 0001 (1)
    2016-04-16 11:35:01.311 [ DEBUG]:mpegts: 642MHz in Levira HD - open PID 0001 (1) [16/0x204530]
    2016-04-16 11:35:01.311 [ TRACE]:mpegts: table: mux 0x133378 add nit 00/00 (0) pid 0010 (16)
    2016-04-16 11:35:01.311 [ DEBUG]:mpegts: 642MHz in Levira HD - open PID 0010 (16) [16/0x2230a8]
    2016-04-16 11:35:01.311 [ TRACE]:mpegts: table: mux 0x133378 add sdt 40/F8 (64) pid 0011 (17)
    2016-04-16 11:35:01.312 [ DEBUG]:mpegts: 642MHz in Levira HD - open PID 0011 (17) [20/0x2244c8]
    2016-04-16 11:35:01.312 [ TRACE]:mpegts: table: mux 0x133378 add bat 48/F8 (72) pid 0011 (17)
    2016-04-16 11:35:01.312 [ DEBUG]:mpegts: 642MHz in Levira HD - open PID 0011 (17) [16/0x2261d0]
    2016-04-16 11:35:01.313 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0012 (18) fd 43
    2016-04-16 11:35:01.314 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0039 (57) fd 44
    2016-04-16 11:35:01.314 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0BBA (3002) fd 42
    2016-04-16 11:35:01.314 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0BBB (3003) fd 45
    2016-04-16 11:35:01.319 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0000 (0) fd 46
    2016-04-16 11:35:01.319 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0001 (1) fd 47
    2016-04-16 11:35:01.320 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0010 (16) fd 49
    2016-04-16 11:35:01.320 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - open PID 0011 (17) fd 50
    2016-04-16 11:35:02.308 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - checking FE status (ready)
    2016-04-16 11:35:02.311 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - status 1 (001F)
    2016-04-16 11:35:03.308 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - checking FE status (ready)
    2016-04-16 11:35:03.311 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - status 1 (001F)
    2016-04-16 11:35:04.309 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - checking FE status (ready)
    2016-04-16 11:35:04.311 [ TRACE]:linuxdvb: Panasonic MN88473 : DVB-T #1 - status 1 (001F)
    2016-04-16 11:35:05.000 [ DEBUG]:service: 642MHz in Levira HD: Status changed to [Graceperiod expired] [Data timeout]
    ...

    I've verified that DVB-T2 works in Windows. Under linux all I have gotten only so far that using dvbv5-zap to tune to dvb-t2 and then dumping channel to a file produces playable files.
    dvbv5-scan finds channels OK (albeit without BER and such things).
    I'm using 4.4.4 with drivers from anttip/media_tree.git (astrometa) patched in on arm box (banana pi with allwinner A20 cpu).

    ReplyDelete
  54. Hi Antti.

    Great work assisting with getting this tuner to work.

    I am experiencing same behaviour as ssmol on DVB-C - Almost every frequency above 570 causes severe continuity errors - On differnet DVB-C USB tuner(Terratec), I have no errors on exact same coax cable.
    I am running Openelec 7 Beta 2 with Kernel 4.4

    Did you find the root cause, and is the solution in a later kernel release or firmware?

    Logs from Tvheadend:
    2016-04-23 20:15:42.089 TS: DVB-C/570MHz/DR2Syn: TELETEXT @ #2329 Continuity counter error (total 143)
    2016-04-23 20:15:42.132 TS: DVB-C/570MHz/DR2Syn: MPEG2AUDIO @ #3861 Continuity counter error (total 97)
    2016-04-23 20:15:44.568 pass-sdt: invalid checksum (len 430, errors 115)
    2016-04-23 20:15:47.228 TS: DVB-C/570MHz/DR2Syn Transport error indicator (total 11539)
    2016-04-23 20:15:49.158 TS: DVB-C/570MHz/DR2Syn: H264 @ #2320 Continuity counter error (total 3412)
    2016-04-23 20:15:49.409 pass-eit: invalid checksum (len 217, errors 316)
    2016-04-23 20:15:57.557 TS: DVB-C/570MHz/DR2Syn: MPEG2AUDIO @ #3861 Continuity counter error (total 103)
    2016-04-23 20:15:57.703 TS: DVB-C/570MHz/DR2Syn: TELETEXT @ #2329 Continuity counter error (total 154)
    2016-04-23 20:15:58.015 TS: DVB-C/570MHz/DR2Syn Transport error indicator (total 12124)
    2016-04-23 20:15:58.717 pass-sdt: invalid checksum (len 110, errors 130)
    2016-04-23 20:16:00.016 pass-eit: invalid checksum (len 1342, errors 328)
    2016-04-23 20:16:02.297 TS: DVB-C/570MHz/DR2Syn: H264 @ #2320 Continuity counter error (total 3532)
    2016-04-23 20:16:09.603 pass-sdt: invalid checksum (len 36, errors 133)
    2016-04-23 20:16:11.951 TS: DVB-C/570MHz/DR2Syn Transport error indicator (total 12519)
    2016-04-23 20:16:13.056 TS: DVB-C/570MHz/DR2Syn: H264 @ #2320 Continuity counter error (total 3654)
    2016-04-23 20:16:13.056 TS: DVB-C/570MHz/DR2Syn: MPEG2AUDIO @ #3861 Continuity counter error (total 110)
    2016-04-23 20:16:13.094 TS: DVB-C/570MHz/DR2Syn: TELETEXT @ #2329 Continuity counter error (total 159)
    2016-04-23 20:16:14.279 pass-eit: invalid checksum (len 1413, errors 337)
    2016-04-23 20:16:20.059 pass-sdt: invalid checksum (len 193, errors 138)
    2016-04-23 20:16:23.350 TS: DVB-C/570MHz/DR2Syn Transport error indicator (total 12927)
    2016-04-23 20:16:24.880 pass-pat: invalid checksum (len 52, errors 4)
    2016-04-23 20:16:24.884 TS: DVB-C/570MHz/DR2Syn: H264 @ #2320 Continuity counter error (total 3829)
    2016-04-23 20:16:28.545 TS: DVB-C/570MHz/DR2Syn: MPEG2AUDIO @ #3861 Continuity counter error (total 115)
    2016-04-23 20:16:28.620 TS: DVB-C/570MHz/DR2Syn: TELETEXT @ #2329 Continuity counter error (total 167)
    2016-04-23 20:16:29.919 pass-eit: invalid checksum (len 1037, errors 365)
    2016-04-23 20:16:35.210 pass-sdt: invalid checksum (len 342, errors 146)
    2016-04-23 20:16:36.982 TS: DVB-C/570MHz/DR2Syn Transport error indicator (total 13481)
    2016-04-23 20:16:36.982 TS: DVB-C/570MHz/DR2Syn: H264 @ #2320 Continuity counter error (total 3943)

    Thanks in advance.

    /Morten

    ReplyDelete
    Replies
    1. That poor DVB-C sensitivity on higher frequencies seems to be common issue.

      Delete
    2. On Windows it seems to be ok with higher frequencies.

      Delete
  55. Has anyone got this to work with MythTV?

    I've been trying the media_build tree with the 4.4.0 ubuntu kernel but when I try to scan with MythTV it either fails to find any channels or it fails to open the frontend at all.

    I've checked the stick with windows and it worked perfectly.

    ReplyDelete
  56. I also got the same errors as "AT" posted here before. I am on Ubuntu with Kernel 4.4. and really appreciate your work. It would be awesome if somebody could post full instructions how he/she got the MN88473-based stick working with DVB-C/T2!

    ReplyDelete
  57. Antti: Are there any difference from kernel 4.4 - > 4.6 regarding discontinuities and higher frequencies.

    What is required to get this card to be properly supported and is there any work in progress?

    If needed, I can supply additional logs and/or remote ssh into a workstation running libreELEC/OpenELEC and the dvb tuner with DVB-C connected.

    Hope to see this problem resolved, hence stick is currently close to useless.

    Thanks in advance
    /Morten

    ReplyDelete
  58. Antti: Are there any difference from kernel 4.4 - > 4.6 regarding discontinuities and higher frequencies.

    What is required to get this card to be properly supported and is there any work in progress?

    If needed, I can supply additional logs and/or remote ssh into a workstation running libreELEC/OpenELEC and the dvb tuner with DVB-C connected.

    Hope to see this problem resolved, hence stick is currently close to useless.

    Thanks in advance
    /Morten

    ReplyDelete
    Replies
    1. It is likely some recent r820t tuner driver bug which leads to performance problems on higher frequencies. I have had no motivation / time to examine it further...

      Delete
  59. git clone git://linuxtv.org/media_build.git
    cd media_build
    ./build
    make stagingconfig
    make -C ./v4l/
    make install
    copied firmware
    After typing these commands the driver compiled, i rebooted but I see only dvb-t
    dmesg | grep dvb

    [ 3.633376] usb 1-13: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
    [ 3.701446] usb 1-13: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
    [ 3.701585] dvb_create_media_entity: media entity 'dvb-demux' registered.
    [ 3.704895] dvb_create_media_entity: media entity 'Realtek RTL2832 (DVB-T)' registered.
    [ 3.718918] rc rc2: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 2
    [ 3.718919] usb 1-13: dvb_usb_v2: schedule remote query interval to 200 msecs
    [ 3.730878] usb 1-13: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected
    [ 3.730899] usbcore: registered new interface driver dvb_usb_rtl28xxu

    lsdvb

    lsdvb: Simple utility to list PCI/PCIe DVB devices
    Version: 0.0.4
    Copyright (C) Manu Abraham

    usb (0:0 1:0) on PCI Domain:-1850267768 Bus:32623 Device:-1852471736 Function:32623
    DEVICE:0 ADAPTER:0 FRONTEND:0 (Realtek RTL2832 (DVB-T))
    FE_OFDM Fmin=174MHz Fmax=862MHz
    DEVICE:0 ADAPTER:2 FRONTEND:0 (Realtek RTL2832 (DVB-T))
    FE_OFDM Fmin=174MHz Fmax=862MHz
    DEVICE:0 ADAPTER:1 FRONTEND:0 (Realtek RTL2832 (DVB-T))
    FE_OFDM Fmin=174MHz Fmax=862MH
    And when i try to scan:
    w_scan -fc
    w_scan version 20130331 (compiled for DVB API 5.10)
    WARNING: could not guess your country. Falling back to 'DE'
    guessing country 'DE', use -c to override
    using settings for GERMANY
    DVB cable
    DVB-C
    scan type CABLE, channellist 7
    output format vdr-2.0
    WARNING: could not guess your codepage. Falling back to 'UTF-8'
    output charset 'UTF-8', use -C to override
    Info: using DVB adapter auto detection.
    /dev/dvb/adapter0/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
    /dev/dvb/adapter1/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
    /dev/dvb/adapter2/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
    main:3228: FATAL: ***** NO USEABLE CABLE CARD FOUND. *****
    Please check wether dvb driver is loaded and
    verify that no dvb application (i.e. vdr) is running.

    ReplyDelete
    Replies
    1. Have you downloaded/installed the firmware?

      http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/latest/dvb-demod-mn88473-01.fw

      Delete
    2. Yes of course, the card is initialized but i cannot get dvb-c working on it.. it finds no dvb-c tuner

      Delete
    3. This comment has been removed by the author.

      Delete
    4. It is bcoz some other service has lock the dvb-c tuner. If tvheadend installed first stop it then try w_scan..
      # sudo /etc/init.d/tvheadend stop
      # w_scan -fc -c IN

      Delete
    5. FWIW, I see the same thing. I need to cold boot, w_scan then start tvheadend.

      Delete
  60. Hello!
    I compiled drivers with make stagingconfig and all seems ok but my adapter don't working. I have the same device.
    dmesg show output:

    [13969.612148] ehci_irq: highspeed device connect
    [13969.833191] usb 1-1: new high-speed USB device number 9 using sunxi-ehci
    [13969.998739] usb 1-1: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
    [13970.072192] usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
    [13970.072255] DVB: registering new adapter (Astrometa DVB-T2)
    [13970.072278] usb 1-1: media controller created
    [13970.076512] dvb_create_media_entity: media entity 'dvb-demux' registered.
    [13970.086037] rtl2832 2-0010: Range 0: selector for 0 in window
    [13970.093516] rtl2832: probe of 2-0010 failed with error -22

    Maybe do I need somehow turn on more debug output?

    ReplyDelete
    Replies
    1. That is exactly what I see. Try my workaround: Config your machine so that tvheadend does not autostart. reboot. Run w_scan -fc -c XX, where XX is your country code. Start tvheadend.

      Delete
  61. if running w_scan hawe this error:

    sudo w_scan -ft
    w_scan -ft
    w_scan version 20141122 (compiled for DVB API 5.10)
    guessing country 'HU', use -c to override
    using settings for HUNGARY
    Country identifier HU not defined. Using defaults.
    scan type TERRESTRIAL, channellist 4
    output format vdr-2.0
    output charset 'UTF-8', use -C to override
    Info: using DVB adapter auto detection.
    main:3904: FATAL: ***** NO USEABLE TERRESTRIAL CARD FOUND. *****
    Please check wether dvb driver is loaded and
    verify that no dvb application (i.e. vdr) is running.

    ReplyDelete
  62. how it's possible to make astrometa to run on Ubuntu ?

    ReplyDelete
    Replies
    1. Make sure that the module is loaded, and the firmware is in its place. It seems you are missing both. A kábeltv része egy fos, úgyhogy ha arra kell akkor már most engedd el... A földfelszínivel lehet érdemes próbálkozni.

      Delete
    2. Nem kabelra akarom hasznalni, hanem inkabb DVB-T2-es foldszini adas vetelere. Tudsz valahogy segiteni ?

      Delete
    3. Mostan igy mutat az egesz:

      dmesg|grep DVB

      [ 22.631561] usb 1-1.3: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
      [ 22.708060] DVB: registering new adapter (Astrometa DVB-T2)
      [ 23.730395] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
      [ 23.730460] usb 1-1.3: DVB: registering adapter 0 frontend 1 (Panasonic MN88473)...
      [ 24.184031] input: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/rc/rc0/input14
      [ 24.184100] rc0: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/rc/rc0
      [ 24.197109] usb 1-1.3: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected

      Delete
    4. $ w_scan -f t -c FI -a /dev/dvb/adapter0/frontend1

      Delete
    5. I reinstall Ubuntu version today, but this w_scan not scanning separatly DVB-T and DVB-T2 frecvencies !

      Befor reinstall Ubuntu W_scan scanning DVB-T all frecvencies after this scanning DVB-T2 frecvencies and fiind channels.

      https://ubuntuforums.org/showthread.php?t=2335299

      Today scanninf verry fast, but i think scanning only dvb-t. But not have DVB-T signal here only DVB-t2.

      Delete
    6. $ dvbv5-scan /usr/share/dvbv5/dvb-t/fi-Oulu -a 0 -f 1

      Delete
    7. A T2 gondolom ugyanannyira fos, mint a C (frontend1). Azt hittem MindigTV-t szeretnél, ami sima T (frontend0), nem T2. Ezek szerint Erdélyben T2 van... De látom időközben feladtad :D Pedig már közel jársz a megoldáshoz.

      Delete
    8. This comment has been removed by the author.

      Delete
  63. I reinstall Ubuntu again, with new w_scan and reinstall drivers and firmware again !

    with:
    $w_scan -f t -c RO -a /dev/dvb/adapter0/frontend1

    i hawe this results:
    http://imgur.com/a/ts66F

    How to play on Ubuntu this ??

    ReplyDelete
  64. This comment has been removed by the author.

    ReplyDelete
  65. If i want to running channels with vlc

    http://pastebin.com/bjnFZVGc

    if running vith cvlc

    http://pastebin.com/B464p70w

    ReplyDelete
  66. This comment has been removed by the author.

    ReplyDelete
  67. This is channels.xpfs for vlc

    http://pastebin.com/S7NXtnst

    VLC see the channel name, but not running channels.

    ReplyDelete
  68. DVB-T2 not running in Ubuntu :(

    In Windows with Dvbviewer Pro Demo running very fast and very good !

    ReplyDelete
  69. I lost a few days with this, but whithout results...

    ReplyDelete
  70. This comment has been removed by the author.

    ReplyDelete