View Full Version : BT8x8 Drivers
Ron
October 13th, 2002, 12:55 PM
I'm thinking about writing generic BT8x8 remote driver for Girder, but I don't have this card, so I'm probably gonna buy or lend one from someone :-), I was wondering if anyone knows about a good source of information on how to go about programming these drivers.
-Ron
Ron
October 13th, 2002, 12:55 PM
I've been browsing the web for a bit and i found that there are 2 main ways of accessing the BT8x8.
via the GPIO register ( lots of cards )
via I2C ( hauppage cards )
Ron
October 13th, 2002, 12:55 PM
I think the GPIO port should be polled, but maybe its also possible to use an interrupt.... hmm
Ron
October 13th, 2002, 12:55 PM
I just looked at the source of dTv, and it seems to me that this locks the hardware if I use that. And that is not what we need. I want to be able to simulaniously use the remote control while another program is doing its thing with the video part of the card. Don't know if that is possible though.
If anyone tried any of the BT8x8 remote control programs if they still can use the video functions from a different application.
Ron
Ron
October 13th, 2002, 12:55 PM
Well I finally got a BT878 card, the PixelView. So I'll dive into the programming of this beast :) Any info is appreciated!!
Ron
October 13th, 2002, 12:55 PM
It seems that i need to make a kernel level driver. This is a nice challenge for me so I take it up. I bought a good book (Programming the M$ Windows Driver Model) and i'm now reading it.
This however implies that my solution is only going to work on Win98/Win2K and higher.
I'll keep you posted on the progress
Ron
October 13th, 2002, 12:55 PM
This general driver should be able to read the remote control registers/i2c lines of the Bt8x8 chipset cards. So i hope to support lots of cards with 1 driver.
Sure send them docs over!
Ron
Ron
October 13th, 2002, 12:55 PM
Hi Juan,
The reason that I am 'letting win95 out of the fun' is because the driver will be a WDM driver, this is supported all over the windows platform except for Win95. If anyone is interested in backporting I'll be happy to help. But my first goal is to write the WDM driver as this is the *cough* standard.
I had to shift this down the todo list a little though. First thing i want to do is update the redrat, then girder 3.0.23 and after that i'll go back to the bt8x8 driver. I just have to little time :smile:
But its good to have someone here that knows how to program the bt8x8.
-Ron
Ron
October 13th, 2002, 12:55 PM
Thanks for the link, i've downloaded it. I didn't check yet but the VXD suggests that it will be for win9x :sad:.
I've been reading further on this topic, and it seems i have the option to write a filter driver. This is a driver that sits on top of the manufacterers driver and has access to the hardware too. This way i would not have to worry about setting up the card, this would have been done already. But now the question is how compatible are the drivers...
-Ron
Ron
October 13th, 2002, 12:55 PM
Cool!! are you looking for girder plugin code ? There are several examples in the developer section, and you can always email me privately with questions! (or more examples)
<font size=-1>[ This Message was edited by: RonB on 2001-05-29 19:09 ]</font>
Ron
October 13th, 2002, 12:55 PM
No i don't know that one,.. do you have a link ? The more code the better,.. we are close to getting drivers anyway.
-Ron
Ron
October 13th, 2002, 12:55 PM
The IrMan isn't a remote, its a receiver, just as the bt8x8 drivers are.
Ron
October 13th, 2002, 12:55 PM
And the best part is the hard work is done, you only need to modify the winfast driver (http://www.girder.nl/download.php?Link=151)!!!!
Ron
October 13th, 2002, 12:55 PM
You need to modify the registers (GPIO) or the I2O stuff depending on which method your grabber uses. That is all as far as i know.
-Ron
Ron
October 13th, 2002, 12:55 PM
We already have that in the Winfast 2000 plugin, someone just have to make it compatible with the card of his/her choice.
Yvonus
October 13th, 2002, 12:55 PM
I've bumped the not-so-general topic in the "general" forum (see http://www.girder.nl/phpBB/viewtopic.php?topic=119&forum=2)
Just to let you know that support of those grab-card driven remotes is strongly wanted by users, including me. More and more users are getting equipped with those cards and the (almost free) remotes.
Such a shame that the (at least my) king of remote control software doesn't support those.
Quoting Status Quo's "In the army now" ; "Stand up and code" :wink:
Any coders willing to help in the support of those remotes will be thanked by tons of users out there.
Yvonus
October 13th, 2002, 12:55 PM
Hi there
Borg's bRemote page is here http://www.borgtech.org/bRemote.php
"bRemote is a program to control your computer without having to leave your favorite chair, that means with the use of remote control. It supports only remote controls connected to the TV tuner cards."
It even gives a method (with btTool) to allow one to gather informations from his remote to make it supported by bRemote ! For short, just read the GPIO stuff with each button press and report to Borg.
There's already a lot of cards supported. Such a shame we can't do it in Girder.
Yvonus
October 13th, 2002, 12:55 PM
It's gonna be difficult. You might try to contact Borg and ask him if he wants to give away some code or an SDK.
I thik that the only way to go is to have such generic basic plugin (just like btRemote) that could be enriched by simple GPIO registers values reporting.
Unfortunately, it doesn't seem so easy.
Yvonus
October 13th, 2002, 12:55 PM
Get the code. It's in the zip http://www.girder.nl/download.php?Link=151
Drop an email to the author of the current plugin mailto:toledo@users.sourceforge.net
Have a grab card with a remote that connects onto it (not on the serial port ! Thus avoid the Pinacle cards)
Use the tool we're talking about to monitor GPIO values.
Update the code to take into account those values.
Test your new plugin :wink:
Mark F
October 13th, 2002, 12:55 PM
The dTV project ( http://deinterlace.sourceforge.net/ ) includes a driver and code which accesses the BT8x8 chip to use an attached tuner and sound chip. An IR receiver chip on a BT8x8 based board is probably accessed through the same mechanisms. dTV is an open source project so you might be able to use their driver (with permission from John Adcock).
Do you know which IR receiver chips are on these boards? I have a BT8x8 based capture board but it doesn't have an IR chip.
EDIT: Then again, the dTV driver doesn't program the capture card to generate interrupts so it is probably a poor starting place, after all.
[Edited by Mark F on 03-20-2001 at 07:58 AM GMT]
Caffiend
October 13th, 2002, 12:55 PM
Just FYI, there is a link to generic WDM driver source code at http://www.tv-cards.com. Don't know if those help at all...
-will
Ingo
October 13th, 2002, 12:55 PM
I'm not shure if it realy helps you very much. but Lirc (the original Linux version, unfortunately not the Windows port) supports quite a lot of these BT8x8 based remote controll receivers. You can find out about Lirc (and get the source) at www.lirc.org
Ingo
mhawkins
October 13th, 2002, 12:55 PM
I'll confirm it tonight, but I've used Borg TV quite a bit and also Borg's bRemote program and it does allow you to use the remote while another application is using the video (in this case Borg TV.)
I think that the only problems will arise when you are using TView 98, the supplied video software which has no option to disable the remote and will likely lock out the remote for other applications. Again I will confirm this tonight.
If this is the case, it is not a great drama, because Borg TV is a generic TV Tuner software which works for all Brooktree chipsets, and much better than any included software. Much better de-interlacing algorithims. It's also free, so any body facing this problem simply has to switch to this program.
I'll test tonight and post it later.
Mark
mhawkins
October 13th, 2002, 12:55 PM
I tested out all scenarios. Using bRemote and BorgTV and then using bRemote and TView 99.
With Borg TV on, the buttons on the remote worked the TV tuner, but this is a feature of bRemote, to recognise when Borg TV is on and pass the TV commands to it.
Surprise, surprise Tview does not take control of the remote. When TView is on, along with bRemote, both actions happen at a press of a button. So, if you press the video button, bRemote activates the screen saver, and at the same time Tview changes video modes.
There is still no way that I can see to stop TView from recognising the IR signal, but I would imagine that there is a way to tell girder to sleep when this function is in the foreground, or simply use Borg TV instead of TView, which has a better picture, and shortcut keys for everything.
Please tell me what else I can do to help this driver become a reality!
didi
October 13th, 2002, 12:55 PM
Hi Fred,
Could you send me the Visual C project, if you still have it lying around. I have no idea what it will look like, but if I can understand more or less what it is doing I'd like to make it work with girder. My Hauppauge remote is starting to get real dusty.
Jus_001
October 13th, 2002, 12:55 PM
I use TView2000 (v5.4) - you can disable the remote controller under the TV settings dialog with the check box 'Remote Controller'. Not sure if this solves the above prob with TView.
Jus_001
October 13th, 2002, 12:55 PM
So what do I need to modify in the winfast driver?
Jus_001
October 13th, 2002, 12:55 PM
Since i have failed at making a UIR or a bt8x8 plugin that works for my card -- i was wondering if it would somehow be possible to use bRemote (which supports my tv card but lacks general usability) to 'forward' the commands on to Girder.. could this be done with window messages or something?
<font size=-1>[ This Message was edited by: Jus_001 on 2001-08-21 10:38 ]</font>
Jus_001
October 13th, 2002, 12:55 PM
Found a work around: using bRemote to send out a ctrl+shift+alt+KEY command for every button on my remote and then using girders keyboard plugin to capture the key strokes.
It's rather simplistic but it does the job.
fonok
October 13th, 2002, 12:55 PM
I can send You the datasheets and programming information about those chips if You want.
Although I don't really understand what this
"generic driver" should be able to do ...
L.K.
fonok
October 13th, 2002, 12:55 PM
The I2C interface is just there to control the onboard Tv-tuner
toledo
October 13th, 2002, 12:55 PM
I've spent the last three days adding support for the Winfast TV2000 to lirc. As with many others tv cards, the remote codes show up in the gpio data register. The register can be polled, but I found that in my case it was better to use the bttv gpio interrupt, or else the key press bit indicator would be lost most of the time.
Actually it was a very easy job to do, since once you have a generic bttv and gpio driver, adding support for new cards is just a matter of knowing the card vendor code (which the bttv driver already tells you) and identifying the mask that isolates the remote codes.
I am extremely interested in seeing support for my card in Windows as well, since I do my DVD viewing in this platform, and I'm very glad to know that you are thinking about doing this generic bt8x8 driver. I'm not so fond of the fact that you are thinking of letting W95 users out the fun. :sad:
What is the technical reason for you to do so? Is there any hope that you would change your mind?
If you are determined in pursuing the w98 via, I'll try to make my own specific Winfast driver for gerder, but I basically know nothing about windows system programming. Do you know of any piece of open source code that could be a good starter for windows bttv programming?
Regards,
Juan.
toledo
October 13th, 2002, 12:55 PM
While trying to build a solution for my card, I kept on thinking that writing a new device driver is not the way to go, since the hardware already installs it's own.
What I wanted to do was to interface with it, but it has really been a pain to find information about it and the fact that I have no experience in windows system programming doesn't help any.
But I think I've finally found what I wanted.
I think you should download ASAP http://www.unitronic.de/Hersteller/conexant/brooktree/pdf/Bt848ProgrammerGuide.PDF
It seems that most TV cards simply installs the default driver that brooktree provides, and this is the programming guide for the bt848. It is relevant as well for the bt878, since the gpio part hasn't changed, but the driver (and function names, I guess) have changed to bt848 to btpcivid.
Unfortunatelly the sourcecode examples that probably came with the guide are not listed as well. But I think it is a very good start.
So if I understand it correctly, I can use the btpcivid.vxd to program a callback whenever there is a GPIO interrupt, and btvid_32.dll to read the gpio data register. Once there, interpretation of the data can be done following the code of lirc_gpio.c of the lirc project.
I hope somebody understood any of my blabbering.
Regards,
Juan.
toledo
October 13th, 2002, 12:55 PM
Ok. This dirty code is enough to read data from the gpio data port. Usually that's enough to read the code, since you can just poll at a low rate and use a flag bit to know when a key has been pressed.
#include <stdio.h>
#include <windows.h>
#include "bt848api.h"
typedef ErrorCode __BT848FUNC (CALLBACK* LPFNDLLFUNC1) ( GPIOReg * data, int size, int offset = 0 );
void
main (void)
{
GPIOReg data;
HINSTANCE dll_handle;
LPFNDLLFUNC1 MyGetGPDATA; // Function pointer
dll_handle = LoadLibrary("btvid_32.dll");
MyGetGPDATA = (LPFNDLLFUNC1)GetProcAddress(dll_handle, "GetGPDATA");
while (1)
{
if (MyGetGPDATA (&data, 1, 0))
{
printf ("Error en getgpdata");
}
Sleep (100);
if (!(data & 0x000100))
printf ("n%xn", data);
}
}
This doesn't really work with the TV2000 since the flag bit is reset almost immediately and the polling doesn't catch it. That's why the linux solution uses interrupts.
What really has me nuts now is the fact that the programs that came with the card DON'T use the interrupt either (I've checked with btTool) Somehow it must have routed the data to a fifo in the chip, I guess. If anybody has any information on what could be happening, I'd be glade to know.
(The bt848api.h comes from the sdk. Look for Bt848v1_1_0.zip in google)
toledo
October 13th, 2002, 12:55 PM
SUCCESS!
I've finally had success with my card without the need for interrupts and using the GPL DTV driver (which I believe works fine for both 95 and NT).
Now the only piece missing is the girder plugin code. The only source code example I have is for the AverMedia, and it doesn't state explicitly to be GPL code.
Is there any other example that I could use?
Regards,
Juan.
mogof
October 13th, 2002, 12:55 PM
i just wanted to ask if you already know the hauppo-tool. it was a freeware-project of henrik klinkmann. a dll for the bt8x8 is included with sourcecode. but probably you all know this and i will never dare to post to the developers board again;)
mogof
October 13th, 2002, 12:55 PM
hi ronb
you can find hauppo at http://www.burdell.org/~admkirk/bin/haup10.zip
the source of the bt8x8.dll is ripped from multidec.
there is also a large explanation from mcguyton and hauppauge themselves about ir control remote spec in the General-forum
http://www.girder.nl/phpBB/viewtopic.php?topic=119&forum=2
i wish you good luck and am looking forward to using girder with my hauppauge-ir....
<font size=-1>[ This Message was edited by: mogof on 2001-06-01 11:01 ]</font>
pivot
October 13th, 2002, 12:55 PM
Does the bt8x8 remote sensors work with any remote, like IrMan?
Clown #2
October 13th, 2002, 12:55 PM
I've modified the winfast plugin to suit my card (a Pixelview PlayTV pro), which is like you've probably discovered months ago is just a simple bt878 variant (perhaps just wired up a bit backwards...)
http://homepages.ihug.co.nz/~gtang/PixelviewPlayTVpro.zip
fdkeukel
October 13th, 2002, 12:55 PM
On 2001-08-30 17:34, RonB wrote:
We already have that in the Winfast 2000 plugin, someone just have to make it compatible with the card of his/her choice.
Hey,
I've tryed to make that code compatible with the hauppauge wintv cards but it didn't really work out well. So i decided to find a wdm driver that can handle the remote of the wintv card. I've used the driver that is used by sattelite. It's build in a way that one sould be able to make it generic bt8x8. I've managed to write the plugin for girder and the only thing that needs to be done is some simplyfing of the code and passing the keycode to girder ( i just print a msgbox on the screen whenever there's a key pressed ). I don't have enought time to complete the pluging but i think it can be a good start for writing a generic bt8x8 driver. You can always ask me for the visual c++ project i've made.
Greetz Fred
meermanr
May 5th, 2003, 08:30 AM
Hey all,
Been reading through your old thread about making BT878 generic drives. I have downloaded all plugins which state they work with BT878 cards..
The closest to working has been BTWinCap, which detects the cards, says it works, but also says the remote is not present..
I know this to be wrong as I have been using another remote control program called JTV-Remote (http://jtvhost.narod.ru/en). This program works but does not have all the features of Girder that I wish for.
I am not an advanced developer myself, but I checked and the source code for the remote control driver of my particular card is available (http://jtvhost.narod.ru/files/pixvplaytvpk.zip).
This might be very useful to you all as it seems to access the hardware directly without locking it.. I am not certain of this, but I am certain that while my remote control program is running ( and working ) I am also able to use DScalar (and it will remote control it.. ) and also able to capture..
Personally, I have a PixelView PlayTV (NOT pro), which according to the manual is a PV-BT878P+...
RobM
mik23
January 15th, 2006, 03:49 AM
Hi,
I've recently interested in Girder and tried to use it with my TV card. It's Apac Viewcomp, so it's not especially popular and it's not posiible to found a decent girder plugin. So I thought of making one using Generic bt8x8 driver. That is the problem. Link in download section leading to this file opens somekind of searchportal not to source file for the plugin. Is it still possible to find it anywhere ??
And the second question is if it posiible to use any remote with bt8x8 card or only the one delivered with will work ??
Powered by vBulletin® Version 4.1.8 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.