5 sept 2007

Reproductor Multimedia con la caja de un VHS



Vi una placa P6EVM3 micro ATX en ebay a buen precio, y cuyas principales características son el bajo consumo de su Via C3 Ezra a 735 Mhz y su video/ethernet integrados, que junto con su tamaño la hacían ideal para montar un pequeño PC multimedia sin tener que poner ninguna tarjeta más.
No me quería gastar un euro más, así que aproveché piezas de otro ordenador y utilizé la carcasa de un vídeo para alojar todos los componentes.



Primero hice unas pruebas de rendimiento, para ver si lo que se comentaba en alguna página web de la falta de potencia de la unidad de cálculo (3dnow, coma flotante que funcionan a la mitad del reloj) junto con su pequeña memoria caché (128 Ks L1 y otros 64 L2) serían insuficientes para reproducir divx con calidad suficiente.
Y para mi sorpresa se desenvuelve muy bien si utilizas el mplayer sin GUI desde la ventana de comandos. La única limitación que tiene es que con vídeos de mucha resolución (720x576) y DVD's se salta algunos frames cuando hay mucho movimiento, pero esto depende del codec de video y de audio utilizados. Y la mayoría de vídeos que se han extraído de un DVD no tienen tanta resolución.
Lo mejor es cambiar el comando del navegador que se utilize (en mi caso en configurar Konqueror -> asociaciones de archivos) por uno parecido a este:

mplayer -quiet -fs -double -framedrop -vf pp=x1hdeblock:autoq/x1vdeblock:autoq/dering:autoq -autoq 6 -slang es,en


Significado de los parámetros:
-quiet: Se desactivan los mensajes de ejecución.
-fs: Se abre a pantalla completa.
-double: Se activa buffering doble; se procesan dos frames, almacenando uno en memoria.
-framedrop: Si no puede mostrar todas las imágenes se salta algunos automáticamente.
-vf pp: Se activa el filtrado de vídeo, en este caso se activan algoritmos para mejorar la calidad en caso de que haya tiempo de cpu disponible.
-slang es,en: Preferencia del lenguaje en subtítulos a español, o inglés, según disponible.

Características de la placa base P6EVM3:
lspci:
0000:00:00.0 Host bridge: Silicon Integrated Systems [SiS] 630 Host (rev 21)
0000:00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0)
0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC Bridge)
0000:00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 83)
0000:00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07)
0000:00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07)
0000:00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator (rev 02) (SiS 7018)
0000:00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP)
0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter (rev 21)

cat /proc/cpuinfo:
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 7
model name : VIA Ezra
stepping : 10
cpu MHz : 735.030
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow up
bogomips : 1471.41


Fijando las piezas a la caja




Tuve que vaciar el vídeo estropeado de tarjetas y plásticos, cortando por lo sano con un dremel, lo que me llevó más de 2 horas entre la planificación por si podía aprovechar algún plástico para hacer de soporte de las piezas. Finalmente apenas se salvó nada.
En la siguiente imagen se observan algunos puntos de anclaje de la placa base, que no quedó demasiado fijada (podría moverse en caso de golpe), pero que es suficiente para mantener todo en su sitio; puse tornillos donde coincidían los agujeros con el plástico y en otros que no tenían fijé soportes con la termo-encoladora para atornillarla a ellos.





En la imagen superior se aprecian los cortes que hice con el dremel para las conexiones, el agujero que quedaba lo tapé con un pedazo de plástico como se aprecia en la siguiente imagen.




Puse el disco duro de 80GB de mi ordenador principal con Kubuntu 6.06 que funcionó sin hacer ninguna adaptación (ya que viene con el código compilado para 486), no sin antes desinstalar todo lo que no fuera a utilizar en un reproductor multimedia que sólo iba a disponer de 175 Mb de memoria RAM. No tuve más remedio que sujetar el disco duro con un tope de plástico y termoencoladora, y lo monté parcialmente sobre las ranuras PCI debido a la falta de espacio.
El cable de encendido de la placa la conecté al botón de encendido "OPERATE" del vídeo, y la luz de encendido "power on" al diodo de "play" del vídeo, además de la luz del disco duro a la luz roja de "rec". Ha quedado fino.



La fuente de alimentación ATX más compacta que conseguí fue la de un viejo PC de 250W. La desarmé y me armé de valor para colocarla, ya que me iba quedando sin sitio por momentos.



Recorté la chapa donde iba alojado el enchufe para colocar los enchufes de la fuente, y alojé ésta en la parte delantera, pegando a la placa base.



El resultado casi acabado. Puse un lector/grabadora de DVD y me quedó un espacio a su lado, que aproveché para colocar un lector multi tarjeta. Más tarde colocaría un altavoz en el espacio libre de la izquierda y un pequeño amplificador que provenía de unos altavoces de PC baratos para poder conectar directamente unos altavoces en la parte trasera y completar el centro multimedia, pero no se ven en esta foto.


Se vería mucho mejor en una pantalla de 21" TFT, pero bueno, es lo que hay. Para enfriar el tinglado, ya que consume unos 50W con la pantalla encendida a pleno rendimiento (unos 25W la pantalla y otros 25W el ordenador) que salen de la misma fuente de alimentación, por lo que al final la mejor opción era poner un ventilador en la parte superior encima de los principales generadores de calor (como el procesador y la fuente de alimentación) a bajas vueltas para bajar el ruído (conectándolo a 5V en vez de a 12V), suficiente para dejar los componentes a unos saludables 28º con temperatura ambiente de 22º.

Los altavoces emiten un sonidillo de fondo débil que aún no se a qué puede deberse, ya que he tratado de aislar todos los cables con cable mallado e incluso he puesto una placa metálica fina (0,3 mm) desviada a masa rodeando el amplificador, pero bueno, tampoco se nota mucho.

Detalles del software
Al principio pretendía conectarlo directamente al euroconector de la tele configurando el servidor X11 para obtener la señal adecuada por la salida SVGA según algunos tutoriales que encontré googleando, pero no lo conseguí, puede que porque no aceptara esos parámetros la tarjeta gráfica, aunque tampoco lo intenté demasiado.

Optimizar el kernel
Para obtener el máximo rendimiento compilé el kernel para el procesador C3 con los mínimos controladores, reducido a su mínima expresión y con los controladores de la placa base compilados en el kernel, no como módulos.
Importante desactivar todos los controladores lo que no tenga cabida en la máquina para reducir el tiempo de arranque, por ejemplo el USB es 1.0, desactivar el 2.0.

Esta placa no tiene un buen soporte acpi, y tras múltiples pruebas para hacer hibernar el ordenador desistí y opté por "hibernarlo" mediante APM, activando el software suspend en el kernel, de forma que pulsando el botón de apagado el ordenador se queda la luz de encendido parpadeando, se apaga el vídeo, sonido, red y disco duro, pero el procesador queda "latente" recibiendo instrucciones "idle", por lo que en este estado queda en "stand by" pero sigue consumiendo, calculo que unos 10W máximo entre procesador, memoria y fuente. Además el ventilador no se para, pero como va a bajas revoluciones apenas se oye.

Optimizar el reproductor
El mplayer lo compilé ya que se optimiza para el procesador y sus capacidades, el 1.0pre8 se optimiza para c3, mmx y 3dnow, aunque creo que no hay mucha diferencia con el que se instala precompilado de los repositorios, pero debido a que mplayer da menos problemas así y podría ganar algo de potencia lo compilé. En posteriores comparaciones con el Xine resulta que sale ganando por muy poco, incluso el Xine es más rápido reproduciendo DVD's, por lo que lo utilizo exclusivamente para eso (además el soporte de menús está más logrado).
Lo bueno del software libre es que cada proyecto puede tomar lo mejor de los demás, por lo que proyectos como Xine y Mplayer comparten mucho código.
Para reproducir mp3, ogg, y demás archivos de audio utilizo el xmms, que está muy logrado y apenas utiliza recursos, y es lo suficientemente potente para programar (gambas basic), navegar (Firefox), correo electrónico (Thunderbird) y demás.

Si has llegado hasta aquí, enhorabuena lector. Si ves alguna incorrección o quieres hacer una consulta deja un comentario y lo revisaré el mismo día.

Actualización 5-9-07: Actualmente este ordenador lo utiliza mi madre para escribir principalmente, me daba pena venderlo, así que le puse Ubuntu que trae el Openoffice y le gusta más que su anterior Win98.


Reconocimientos:
Thomas Winischhofer por el controlador de la SiS630


Más información sobre PC's multimedia con captura de vídeo:
Página de Vicente Navarro


Enlaces relacionados:
Blog sobre la construcción de un mini-ordenador

6 comentarios:

  1. oye que bien , yo pensaba hacer uno asi, pero no tengo pc en que trabajar ya que el anterior lo vendi, y no tenia disponible la caja del dvd, haora me sucede lo contrario tengo la caja del dvd y no tengo la pc, pero en que la tenga lo voy a hacer, o por lo menos lo intentare, haber como me queda.. oye muy bien tu proyecto ..

    ResponderEliminar
  2. Me gusta pero con todo lo que as metido ay se te va a calentar mucho.
    Sin duda yo e visto un mini pc acer aspire por 200 euros

    ResponderEliminar
  3. Gracias, anónimo, pero no se calienta nada, ya que apenas consume; esa CPU tiene muy poca potencia; como un Pentium II a 300 Mhz.

    ResponderEliminar
  4. David: tengo una pregunta sobre fuentes, se pueden acortar los cables de una fuente. He oído algo de cables modulares, y algo llamado canon, pero no tengo la menor idea...
    De momento habrá que apañarse con unas bridas color fosforito.

    Miguel (sí... el de el blog.)

    ResponderEliminar
  5. Miguel, si tienes un blog, es más sencillo para distinguirte de otros Miguel logueándote ;-)

    Lo que me comentas... no lo conozco. Supongo que habrá conectores, pero yo lo que hago es cortar, estañar, soldar y aislar; sin problema, se pueden acortar y alargar todo lo que quieras.

    ResponderEliminar

Puede dejar su comentario, que tratará de ser moderado en los días siguientes. En caso de ser algo importante/urgente, por favor utilicen el formulario de arriba a la derecha para contactar.