Review receptor ISDB-T DiBcom STK8096GP (TV digital do Brasil)

Na visita do Jon “Maddog” ao Brasil para o 4º SoLiSC ele trouxe, como sempre, alguns brinquedinhos comprados nas viagens. Um deles é um receptor de televisão digital para o padrão ISDB-T usado no Brasil e Japão, mais especificamente ao padrão brasileiro. Como ele não tinha tempo para testar eu me ofereci (nerd é a vó).

O produto é chinês, fabricado por uma empresa chamada MyGica. A embalagem é simples, não mostra nem o nome da empresa que fabrica, informação essa que só consta no manual. É bem montado e acabamento aceitável para o preço (algo em torno de $50).

O controle remoto fica na parte de trás da embalagem.

O controle remoto fica na parte de trás da embalagem.

O conteúdo da embalagem é tão completo quanto parece, só vem o essencial:

  • O receptor em formato “dongle”
  • Antena VHF/UHF de alto ganho (diz ela)
  • Adaptador para ligar uma antena externa
  • Controle remoto desenhado para o software Total Media que vem no CD
  • Manual
  • Cd com driver e software de media
Nada mais que o suficiente

Nada mais que o suficiente

Um detalhe estranho, o driver para windows que vem no CD não é o driver correto para o chip de captura. Encontrei o driver correto em um fórum chileno e deixo aqui caso alguém precise.

Não vou cobrir a instalação dele no windows, então vamos ao que interessa, ao plugar ele no seu computador você não vai ter muitas informações.

usb 1-1: new high speed USB device using ehci_hcd and address 6
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: New USB device found, idVendor=10b8, idProduct=1fa0
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: STK8096GP
usb 1-1: Manufacturer: DiBcom
usb 1-1: SerialNumber: 1

Isso não colabora muito mas nos dá o fabricante e o modelo do chip. Com isso é fácil dar uma googlada sobre o funcionamento dele no Linux. A boa notícia é que o fabricante é bonzinho e colaborou com a confecção do driver. Temos por tanto um suporte ainda inicial ao ISDB-T no v4l-dvb. Uma questão de fazer o download, um make, make install e tudo pronto. Para isso basta pegar o trunk (já que é experimental vamos viver perigosamente).

$ hg clone http://www.linuxtv.org/hg/v4l-dvb
$ cd v4l-dvb
$ make
$ su
# make rmmod
# make install

Você pode substituir o su com sudo se preferir. Após instalar os driver ainda precisamos do firmware do dispositivo. Basta fazer o download e colocá-lo em /lib/firmware/ que tudo estará bem. A resposta do dmesg após replugar o dispositivo agora deverá ser algo como:

dib0700: loaded with support for 14 different device-types
dvb-usb: found a 'DiBcom STK8096GP reference design' in cold state, will try to load
a firmware
firmware: requesting dvb-usb-dib0700-1.20.fw
dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
dib0700: firmware started successfully.
dvb-usb: found a 'DiBcom STK8096GP reference design' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (DiBcom STK8096GP reference design)
DVB: registering adapter 0 frontend 0 (DiBcom 8000 ISDB-T)...
DiB0090: successfully identified
input: IR-receiver inside an USB DVB receiver as /devices/...
dvb-usb: schedule remote query interval to 50 msecs.
dvb-usb: DiBcom STK8096GP reference design successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_dib0700

Não é lindo? :)

Com isso nos temos o dispositivo funcionando mas ainda falta o pedaço que me fez perder algumas horas. Escanear os canais para poder ver o Faustão na telinha do seu PC (ele cabe agora que emagreceu). Para isso nos vamos usar as ferramentas que o driver ali em cima já instalou antes junto com os módulos. A aplicação scan fará isso mas ela precisa de informações para fazer seu trabalho, ela precisa de uma lista de freqüências e ranges para poder escanear por recepção. Essa lista eu consegui primeiramente no blog de dougsland (que não parece ter o nome real divulgado no site). Sabendo o que eu estava procurando (frequency table) eu consegui encontrar no excelente wiki do linuxtv.org em http://www.linuxtv.org/wiki/index.php/ISDB-T_Frequency_Table

Copie o conteúdo e cole em um ch.conf então rode o comando scan para gerar a lista de canais disponíveis:

$ scan ch.conf > channels.conf

Isso gerará um monte de erros como:

>>> tune to: 503142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_
AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE

Mas não se preocupe, são normais. Se você tem recepção no meio desse monte de erros você verá um:

Network Name 'RBS TV FLOPS'
0x0000 0xdc60: pmt_pid 0x0101 (null) -- RBS TV HD (???)
0x0000 0xdc78: pmt_pid 0x1fc8 (null) -- RBS TV 1seg (???)

E então seu arquivo channels.conf terá as informações de canais para que você possa vê-los. Se você está em Florianópolis Santa Catarina Brasil por volta do ano de 2009 você terá somente dois canais, um 1 seg e outro full seg que são, infelizmente:

RBS TV HD:587142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM
_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:273:274:
56416
RBS TV 1seg:587142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM
_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:529:530:
56440

Afinal a Band ainda tem as madrugadas de sábado pra animar a garotada. Com isso nós ficamos no ultimo passo: assistir televisão. Mas antes, uma explicação rápida antes sobre a zona toda de TV digital (não achou que eu ia te liberar agora né?).

O mundo todo usa os tais dos DVB-S, DVB-T, DVB-S, DVB-C e ATSC, o Japão  criou e usa o ISDB-T, o Brasil adotou ele e o usa para transmissão, inclusive usa o mesmo range de freqüências, se as tabelas não são iguais elas são muito parecidas. A transmissão digital usa 13 segmentos, 1 deles esse padrão deixou reservado para transmissão de baixa qualidade para dispositivos móveis, com telas pequenas, ou baixa capacidade. Sim, esse é o tal do 1seg que você vai ver bastante. O resto é transmitido em 12 segmentos (full-seg) e nesses estão as transmissões standard e hd. O codec de audio usado é o AAC e o de vídeo e o H264.

Toda a parte anterior está resolvida pelo driver, linda e funcional, um charme tecnológico. Mas… a questão do codec ainda não. Apesar do MPlayer ter colocado suporte por agora ainda não está bom até a redação desse texto. A unica alternativa viável por agora é o VLC que tem suporte a h264 e AAC. Além de se entender com o DVB.

Para fazer funcionar basta você clicar em Exibir > Lista de Reprodução, clicar no mais, adicionar o channels.conf que você criou, dar dois cliques e pronto, simples assim.

No fantástico =

No fantástico =)

Mas vamos ao que interessa, e o HD??? Bom, veja bem. O h264 garante uma alta compressão com pouca perda de qualidade, mas isso tem um custo, um rim. Digo, um processador, você precisa ter uma máquina BOA para descodificar o vídeo em HD 1080p. Tanto que no linux eu não consegui tocar direito por conta da implementação do h264, no áudio é perfeito sem nenhum problema, vídeo vai travando, inclusive no poderoso windows (por conta do meu proc dai). Pra ser sincero, no VLC eu não consegui visualizar nem o 1seg direito por conta da descodificação do h264 o vídeo fica com frames repetidos (falha na interpolação ou algo por ai). Você pode ter mais sorte em uma versão mais nova ou melhor do VLC (não desista padawan).

Quero ver você pegar momento melhor pro screenshot.

Quero ver você pegar momento melhor pro screenshot.

Sobre o controle remoto, ele funciona e o driver reconhece mas eu não tive tempo de fazer ele fazer algo útil. A prova são as mensagens que o driver põe no kernel. Basta tratá-las e usar, mas não é algo que um usuário comum faria, então fica pra outra hora (talvez nunca :P ).

dib0700: Unknown remote controller key: 0000 20 df
dib0700: Unknown remote controller key: 0000 20 df

Todo o processo acima foi feito em cima de um Slackware Linux com versão entre 12.2 e current pré 13.1. (sim, uma zona).

Ps. Gostaria de agradecer a Douglas Conrad que me deixou ficar com o equipamento por uns dias para testes. Foi divertido :P

UPDATE (15/06/2010): Aparentemente o kernel 2.6.33.3 já inclui os drivers para dvb-usb e para o dibcom 0700. Você ainda precisa do firmware do dispositivo que está linkado nesse artigo e também é necessário o dvb-apps instalado para ter a ferramenta scan.

Tags: , , , ,

6 Responses to “Review receptor ISDB-T DiBcom STK8096GP (TV digital do Brasil)”

  1. BeGOD Says:

    Acredita que nao consegui usar esse mesmo usb no windows?

    nao acha nenhum canal com o driver que achei na internet.

  2. tdt Says:

    [PATCH] Adding support to the Geniatech/MyGica SBTVD Stick S870 remote control

  3. Wormson Says:

    Amigo, realmente no xp o bichinho não funciona nem a pauladas.
    Tentei baixar o driver no caminho que vc disponibilizou, mas dá “page not found”. Tem como averiguar? Tô precisando muito desse driver e no fórum chileno o link também tá quebrado. Valeu

  4. guax Says:

    @Wormson
    Meu pub/ ali ficou meio maluco, já resolvi, pode usar aquele mesmo link ali pra baixar.

  5. Claiton Says:

    Obrigado pelo post esclarecedor. Mas, onde poderia comprar um receptor destes?

    Abraço!

  6. guax Says:

    Só googlando ou no mercado livre. =D

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">