Forum: Mikrocontroller und Digitale Elektronik Suche IR-Codes von Fernbedienung für alte Kodak Action Cam


von Sven (Gast)


Lesenswert?

Hallo zusammen,

ich habe keine großen Hoffnungen, mache aber einen Versuch:

Hat irgendjemand noch eine solche Kodak-Fernbedienung rumliegen und 
kennt die IR-Tasten-Codes oder kann sie für mich auslesen?

https://www.newegg.com/kodak-8716276/p/N82E16830994860


Hintergrund: Ich muss (fragt nicht warum) eine alte Kodak PlaySport Zx5 
"Action" Kamera per Infrarot fernsteuern. Die Original-Fernbedienung von 
Kodak ist weder neu noch gebraucht zu finden. Eine nachgemachte gibt es 
noch bei einem einzelnen Händler, die kann aber offensichtlich nur 
auslösen, nicht die anderen Funktionen (Zoom etc.).

Dem Äußeren nach ähnelt sie den typischen Billig-Fernbedienungen im 
Kredikartenlook, die mit NEC-Protokoll 24Bit Codes der Form FFxxxxx 
senden, von denen habe ich zwei unterschiedliche da, die beide leider 
nicht klappen.

Danke für jeden Hinweis,
Sven

von Dirk L. (garagenwirt)


Lesenswert?


von Olaf (Gast)


Lesenswert?

> noch bei einem einzelnen Händler, die kann aber offensichtlich nur
> auslösen, nicht die anderen Funktionen (Zoom etc.).

DAs wuerde doch reichen. Wenn du ein Kommando kennst, dann kennst du 
seinen Aufbau und kannst dann die anderen Bitkombinationen in ein paar 
Minuten durchspielen. Vielleicht findest du dann sogar noch mehr 
Kommandos als es auf der offiziellen FB gab.

Olaf

von Sven (Gast)


Lesenswert?

Olaf schrieb:
> Wenn du ein Kommando kennst, dann kennst du
> seinen Aufbau und kannst dann die anderen Bitkombinationen in ein paar
> Minuten durchspielen.

Ja, ich denke in diese Richtung werde ich gehen, nachdem sich offenbar 
sonst nichts finden lässt und ich mir nicht noch ein ganzes Set zulegen 
will. Ich habe gestern auf Verdacht mal 24bit NEC Sequenzen durchlaufen 
lassen, aber 2^24 Versuche dauern einfach zu lange, vor allem wenn nicht 
mal klar ist, ob es wirklich das richtige Format ist.

vg
Sven

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Dem Äußeren nach ähnelt sie den typischen Billig-Fernbedienungen im
> Kredikartenlook, die mit NEC-Protokoll 24Bit Codes der Form FFxxxxx
> senden, von denen habe ich zwei unterschiedliche da, die beide leider
> nicht klappen.

Ja, die FB ähnelt den China-Dingern. Diese senden mit der Adresse FF00 
(geschrieben im extended NEC-Format).

Verbleibt noch der Kommando-Code: Hier gilt bei NEC immer, dass Byte 4 
der invertierte Wert von Byte 3 ist. Wenn die obigen Adresse FF00 
stimmt, verbleiben lediglich 256 mögliche Codes. Die kann man mit 
IRSND durchspielen. Die Invertierung macht IRSND automatisch, so 
dass man den Kommando-Code mit 00h - FFh durchspielen kann.
1
    IRMP_DATA irmp_data;
2
    uint16_t  cmd;
3
4
    irmp_data.protocol = IRMP_NEC_PROTOCOL;
5
    irmp_data.address  = 0xFF00;
6
7
    for (cmd = 0; cmd <= 0x00FF; cmd++)
8
    {
9
        irmp_data.command = cmd;
10
        irmp_data.flags   = 1;    // 1x wiederholen, sicherheitshalber 2 Frames
11
        irsnd_data (&irmp_data, 1);
12
        _delay_ms (50);
13
    }

Alles vorausgesetzt, dass die Kodak-FB tatsächlich NEC verwendet.

Viel Glück!

P.S.
Ist es nicht die Adresse FF00 und nimmt man an, dass es Standard-NEC und 
nicht Extended NEC ist, kann man für alle 256 Codes noch 256 
verschiedene Adressen durchspielen. Es ergeben sich dann 2^16 = 65536 
Kombinationen. Aber das ist allemal besser als 2^24.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Olaf schrieb:
>> Wenn du ein Kommando kennst, dann kennst du
>> seinen Aufbau und kannst dann die anderen Bitkombinationen in ein paar
>> Minuten durchspielen.
>
> Ja, ich denke in diese Richtung werde ich gehen,

Wenn ich Dich dabei unterstützen soll, weil es eventuell doch nicht NEC 
ist, melde Dich einfach.

von Sven (Gast)


Lesenswert?

Frank M. schrieb:
> Hier gilt bei NEC immer, dass Byte 4
> der invertierte Wert von Byte 3 ist. Wenn die obigen Adresse FF00
> stimmt, verbleiben lediglich 256 mögliche Codes.

Vielen Dank für den Hinweis und das Unterstützungsangebot, Frank. Das 
mit dem invertierten Byte war mir nicht bewusst, das macht das 
Ausprobieren natürlich leichter, wenn auch nicht trivial. Denn bei FF00 
war leider kein Treffer dabei, bis jetzt habe ich abwärts bis Adresse 
CA00 durchlaufen lassen, dass sich das Gerät auch mit Ladekabel alle 
paar Minuten abschaltet, hilft nicht gerade. Ich werde mich so oder so 
nochmal melden, wenn ich alles durch oder einen Treffer habe.

vg
Sven

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> bis jetzt habe ich abwärts bis Adresse CA00 durchlaufen lassen

CA00 gibt es nicht bei Standard-NEC - nur bei extended NEC. Das zweite 
Adress-Byte ist bei Standard-NEC das invertierte erste Adress-Byte.

Siehe auch:

https://www.mikrocontroller.net/articles/IRMP#NEC_.2B_extended_NEC

Für Standard-NEC über alle möglichen Adressen ändere einfach das obige 
Programm zu:
1
    IRMP_DATA irmp_data;
2
    uint16_t  cmd;
3
    uint16_t  addr;
4
5
    irmp_data.protocol = IRMP_NEC_PROTOCOL;
6
7
    for (addr = 0x00; addr <= 0xFF; addr++)
8
    {
9
        irmp_data.address = addr | ((~addr) << 8);
10
11
        for (cmd = 0; cmd <= 0x00FF; cmd++)
12
        {
13
            irmp_data.command = cmd;
14
            irmp_data.flags   = 1;    // 1x wiederholen, sicherheitshalber 2 Frames
15
            irsnd_data (&irmp_data, 1);
16
            _delay_ms (50);
17
        }
18
    }

Dann werden die Adressen 0xFF00, 0xFE01, 0xFD02 ... 0x00FF durchlaufen. 
Das sind 256 Möglichkeiten.

von Sven (Gast)


Lesenswert?

Frank M. schrieb:
> Das zweite
> Adress-Byte ist bei Standard-NEC das invertierte erste Adress-Byte.

Aargh, da wird also auch invertiert, hätte ich auch selbst drauf kommen 
können. Ok, mal sehen, was bei rum kommt.

vg
Sven

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Sven schrieb:
> Aargh, da wird also auch invertiert,

Ja, bei der Adresse musst Du selbst invertieren, um dem IRMP 
Standard-NEC unterzujubeln, da IRMP prinzipiell Extended-NEC "spricht". 
Standard-NEC ist ja nur ein Spezialfall von Extended-NEC.

Beim Kommando ist es anders: Hier unterscheiden sich Extended-NEC und 
Standard-NEC nicht und deshalb fügt hier IRMP das invertierte 
Kommando-Byte automatisch selbst hinzu. Daher ist hier der Wertebereich 
0x00 - 0xFF.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.