[mythtv-users] Fire-wire / Motorola DCX-3200M

Johnny Walker johnnyjboss at gmail.com
Tue Mar 22 18:21:08 UTC 2011


On Thu, Mar 3, 2011 at 9:29 PM, Erik Sejr <esejr at wildroseinternet.ca> wrote:
> On 3/3/2011 10:14 AM, robert Larson wrote:
>> Hello,
>>
>> Just a quick thank you to Jarod W about a post that I had found back
>> from 2009 that explained the fire-wire stack (old vs new) from there I
>> was finally able to figure out that I had the old fire-wire stack
>> enabled and not the new stack.
>>
>>
>> I am finally able to get a good test using the firewire_tester script
>> using broadcase mode ( i think )
>>
>> rob at dell:/usr/local/bin$ sudo ./firewire_tester -B -P 0 -n 0
>> Action: Attempt to fix broadcast connection 1 times, node 0
>> Broadcast: Testing...Success, 173 packets
>> Broadcast: Testing...Success, 37 packets
>> Broadcast: Testing...Success, 186 packets
>> Broadcast: Testing...Success, 28 packets
>> Broadcast: Testing...Success, 216 packets
>> Broadcast Fix: Success (already stable)
>>
>> Next I deleted all tuners and all video sources and re-added the
>> firewire capture, grabbed the channels updated the database with the
>> listings and it fails. So I checked the backend logs and it reports:
>>
>> 2011-03-03 11:58:00.919 FireChan(E48399FFFE4AC6E7), Error: Model:
>> 'DCX-3200' is not supported.
>> 2011-03-03 11:58:00.985 mythbackend: Problem with capture cards: Card
>> 8failed init
>> 2011-03-03 11:58:01.016 MythBackend, Warning: No valid capture cards
>> are defined in the database.
>> 2011-03-03 11:58:01.110 mythbackend: No capture cards are defined:
>> This backend will not be used for recording.
>>
>> I checked the wiki and it appears that others are using this
>> particular model but I dont know how to get around the not supported
>> issue.
>>
>> Any advice that you can pass along would be great!
>>
>> I am using ubuntu 10.04.2 LTS with the following for myth:
>> MythTV Version   : v0.24-198-g0d3d3a4
>> MythTV Branch    : fixes/0.24
>> Network Protocol : 63
>> Library API      : 0.24.20101129-1
>> QT Version       : 4.6.2
>>
>>
>> Output of lsmod:
>> lsmod | grep 'firewire\|1394'
>> firewire_ohci          21002  0
>> firewire_core          44510  1 firewire_ohci
>> crc_itu_t               1371  1 firewire_core
>> _______________________________________________
>> mythtv-users mailing list
>> mythtv-users at mythtv.org
>> http://www.mythtv.org/mailman/listinfo/mythtv-users
>
> Robert,
> You need to patch the firewiredevice.cpp file and videosource.cpp file.
> First you need the model and vendor ID's of the DCX-3200-M you have.
> When I had one of these I used the old 6200ch channel changer in verbose
> mode to get these ID's - something like this (Note, DON'T use these ID's
> they are for my current DCX-3400-M which is the 3200's big brother:
>
> [root at mythbox 6200ch]# /usr/sbin/6200ch -v 340
> starting with node: 1
> node 1: vendor_id = 0x000025f1 model_id = 0x0000e741
> AV/C Command: 340 = Op1=0x00487C23 Op2=0x00487C24 Op3=0x00487C20
>
> Next, in firewiredevice.cpp you need to find a section that looks
> something like this:
>
> const uint64_t motorola_vendor_ids[] =
>    {
>        /* DCH-3200, DCX-3200 */
>        0x1c11,    0x1cfb,    0x1fc4,    0x23a3,    0x23ee,    0x25f1,
>        /* DCX-3432 */
>        0x24a0,
>        /* DCH-3416 */
>        0x1e46,
>        /* DCT-3416 */
>        0x1bdd,
>        /* DCT-3412 */
>        0x159a,
>        /* DCT-6200, DCT-3416 */
>        0x0ce5,    0x0e5c,    0x1225,    0x0f9f,    0x1180,
>        0x12c9,    0x11ae,    0x152f,    0x14e8,    0x16b5,    0x1371,
>        0x19a6,    0x1aad,    0x0b06,    0x195e,    0x10dc,
>        /* DCT-6212 */
>        0x0f9f,    0x152f,
>        /* DCT-6216, 2224 */
>        0x17ee,    0x1a66,
>        /* QIP 6200 */
>        0x211e,
>        /* QIP 7100 */
>
> If the vendor ID 6200ch gives you is not included here you need to add
> it. If it already exists don't duplicate it, regardless of what the
> comment above it might say! Chances are very very good it is already
> listed, so look carefully.
>
> Next, in the same file, find a section that looks like this:
>
> for (uint i = 0; i < motorola_vendor_id_cnt; i++)
>    {
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xf740] = "DCX-3200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xfa07] = "DCX-3200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xea05] = "DCX-3432";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xd330] = "DCH-3200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xe741] = "DCX-3400";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xb630] = "DCH-3416";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x34cb] = "DCT-3412";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x346b] = "DCT-3416";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0xb630] = "DCT-3416";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x6200] = "DCT-6200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x620a] = "DCT-6200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x64ca] = "DCT-6212";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x64cb] = "DCT-6212";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x646b] = "DCT-6216";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x8100] = "QIP-7100";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x7100] = "QIP-6200";
>        id_to_model[motorola_vendor_ids[i] << 32 | 0x0001] = "QIP-7100";
>    }
>
> Add in the model id for your DCX-3200 in a similar manner. If it is
> already listed but associated with a different model, you can add it in
> and associate it with a "DCX-3200".
>
> Next, in the same file look for a part like this:
>
> Add DCX-3200 into this list as well.
>
> bool FirewireDevice::IsSTBSupported(const QString &panel_model)
> {
>    QString model = panel_model.toUpper();
>    return ((model == "DCH-3200") ||
>            (model == "DCH-3416") ||
>            (model == "DCT-3412") ||
>            (model == "DCT-3416") ||
>            (model == "DCT-6200") ||
>            (model == "DCT-6212") ||
>            (model == "DCT-6216") ||
>            (model == "SA3250HD") ||
>            (model == "SA4200HD") ||
>            (model == "SA4250HDC") ||
>            (model == "SA8300HD") ||
>            (model == "PACE-550") ||
>            (model == "PACE-779") ||
>            (model == "QIP-6200") ||
>            (model == "QIP-7100") ||
>            (model == "DCX-3400") ||
>            (model == "GENERIC"));
>
> Lastly, in videosource.cpp try to find a section like this:
> If it doesn't already exist add "DCX-3200" matching the model you
> entered above.
>
> {
>    setLabel(QObject::tr("Cable box model"));
>    addSelection(QObject::tr("Generic"), "GENERIC");
>    addSelection("DCH-3200");
>    addSelection("DCX-3200");
>    addSelection("DCX-3400");
>    addSelection("DCT-3412");
>    addSelection("DCT-3416");
>    addSelection("DCT-6200");
>    addSelection("DCT-6212");
>    addSelection("DCT-6216");
>    addSelection("QIP-6200");
>    addSelection("QIP-7100");
>    addSelection("PACE-550");
>    addSelection("PACE-779");
>    addSelection("SA3250HD");
>    addSelection("SA4200HD");
>    addSelection("SA4250HDC");
>    addSelection("SA8300HD");
>
> After that recompile Mythtv. In the mythtv-setup program DCX-3200 should
> be an option, select it and configure accordingly.
>
> A few caveats though:
> I stopped using my 3200 after I got a 3400 about 4 months ago, so
> something may have changed since then that could cause these
> instructions not to work as expected.
> My DCX-3200-M worked fairly well at the time via firewire with both
> mythtv 0.23 and earlier versions of 0.24-fixes. I since switched to an
> HD-PVR for my DCX-3400 though with firewire the DCX-3400 is very
> unstable so I gave up on it.
>
> The moral of the story is, your mileage may vary.
>
> Good Luck.
>
> Erik
> _______________________________________________

As always you can check here
http://www.mythtv.org/wiki/Firewire_Cable_Box_Compatibility and update
it when you've completed your own field testing.

-Johnny


More information about the mythtv-users mailing list