• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Mitmachen beim DSLR-Forum Fotowettbewerb September 2025.
    Thema: "Straßenfotografie s/w"

    Jeden Monat attraktive Gewinnprämien, gesponsert von unserem Partner PixelfotoExpress.
    Alle Infos zum September-Wettbewerb hier!
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

DIY IR Remote: Canon RC-1 + Pentax IR F + Nikon ML-L3 + Olympus RM-1

So, das Sony Protokoll habe ich drin, aber aus dem Minolta werde ich noch nicht so richtig schlau. Du hast geschrieben, dass es sich um das NEC Protokoll handelt. Das kann aber nicht stimmen. Erstens ist der Header ganz anders und zweitens werden Kommando und Adresse NICHT doppelt übertragen...
da muss ich nochmal ein wenig drüber grübeln..
 
Hallo MasterFX

Das mit dem NEC Code weiß ich natürlich nicht sicher. Es schien mir nur so daß die screenshots von der Minolta am besten zum NEC Protokoll passen.
Ich habe es anhand der im Excelfile eingetragenen Informationen aus den Links verglichen.

Bin schon gespannt auf das Listing.
Schon mal im Voraus ganz herzlichen Dank dafür.

Dewenne
 
So wie versprochen habe ich nun Sony und Minolta noch eingebunden.
Kannst ja mal testen und ggf. Rückmeldung geben ob es klappt oder nicht.

Codegröße mit AVRGCC 4.3.3 und -O2:
Canon: 322 Bytes
Pentax: 278 Bytes
Nikon: 384 Bytes
Olympus: 406 Bytes
Sony: 482 Bytes
Minolta: 458 Bytes

Im Anhang sind sowohl Quellcode als auch die Hex-Files für den ATtiny25
 
Zuletzt bearbeitet:
@Dewenne
hast schon was testen können?
 
Bin grad ganz aus dem Häuschen (aushäusig) komm frühestens nächste Woche dazu - ich melde mich sobald es funzt und werde dann auch ein kleines Layout posten.

Nochmals schon mal vielen Dankfür alles ...


Dewenne
 
Hallo zusammen.

Ich wollte MasterFX nur meinen Dank aussprechen für die großartige Arbeit mit
der Fernbedienung. Ich hab sie gerade nachgebaut und alles funzt einwandfrei.
Meine Kamera: Pentax K-m.
Vermutlich werde ich demnächst noch eine für 'ne Canon EOS bauen für einen Freund.

David
 
Ich will hier auch mal meine Dank für die Arbeit aussprechen.
Ich habe zwar noch etwas Arbeit vor mir, da ich nicht mit einem AVR sondern einem PIC arbeiten werde, aber alles in allem habe ich jetzt schon drei IR-Remotes zu bauen (Nikon, Sony, Canon). Ich bin schon mal gespannt ob mein Code so stimmt wie ich ihn mir Vorstelle, zumal ich aus Mangel an Bauteilen jeden Fernauslöser mit nur einem Taster ausstatte kann. Wird also Code-Technisch etwas mehr zum abfangen sein.

Wenn das Interesse an dem PIC-Code besteht werde ich ihn auch gerne hier posten.
 
Hallo,
leider geht der RC-1 Code nicht mit meiner Canon 550D. Für diese Kamera wird nur die RC-6 angeboten. Kennt jemand die Sequenzen für diese Fernbedienung ?
Gruß
 
Habe leider noch nichts ergoogeln können. Wenn ich die Timings hätte könnte ich das schnell einbauen. Also wer was weiß oder messen kann nur her damit!
 
Hallo,
ich habe eine Fuji S2000HD. Leider habe ich nichts über den benutzen Code finden können. Ich habe zwar eine IR-Fernbedienung ( RC-S2 ), aber kann ja den Code nicht auslesen. Hast da schon jemand Erfahrungen machen können, ist der genutzte Code mit irgendwas kompatibel?

Ansonsten finde ich das Projekt ganz große Klasse. Wenn nix hilft, muß ich die Fernbedienung schlachten....

Viele Grüße
Matthias
 

Habe leider noch nichts ergoogeln können. Wenn ich die Timings hätte könnte ich das schnell einbauen. Also wer was weiß oder messen kann nur her damit!

Hallo,
leider geht der RC-1 Code nicht mit meiner Canon 550D. Für diese Kamera wird nur die RC-6 angeboten. Kennt jemand die Sequenzen für diese Fernbedienung ?
Gruß

frag doch mal im o.g. Forum, evtl hat einer die RC6 und kann die auslesen und den Code nennen.
 
Hallo zusammen,

@MasterFx tolle Arbeit die Du da geleistet hast.
Ich bin auf den Link gestoßen, da ich für meine Tochter (Pentax) und mich (Sony) eine Infrarotfernbedienung bauen die eine möglichst hohe Reichweite hat und sich auch als Intervalltimer bedienen läßt.

Ich habe den Thread komplett gelesen (puh).
Das Pentax Protokoll habe ich gelesen und verstanden.
Für das Sony Protokoll fehlt ja noch die Rückmeldung ob es funktioniert,
was aber viel schlimmer ist, ich verstehe es nicht.

Ich habe keine wirklichen C-Kenntnisse, deshalb durchschaue ich nicht exakt was das bedeutet:
Wodurch werden die Interrupts ausgelöst(die beiden unterschiedlichen Tasten)?
uint8_t i,j=0;
uint8_t cmd = 0;
uint16_t mask = 1;
uint16_t address = 0x1E3A;

Was bedeuten folgende Ausdrücke?
while(mask < 0x80)
if(cmd & mask)
(address & mask)
mask <<= 1;

Vielleicht kannst Du die ablaufende Sequenz beschreiben?

Vielen herzlichen Dank !!!
Stema64
 
@MasterFx tolle Arbeit die Du da geleistet hast.
Danke
Ich habe den Thread komplett gelesen (puh).
nicht schlecht :D

Wodurch werden die Interrupts ausgelöst(die beiden unterschiedlichen Tasten)?
Ja genau.
Durch den "Befehl":
Code:
	PCMSK  = (1<<PCINT3) | (1<<PCINT4);	/* Pin Change Interrupt for Pin3+4*/
	GIMSK |= (1<<PCIE);				/* Enable Pin Change Interrupt */
werden die Pin-Change Interrupts für die Taster aktiviert (darum ja auch die Kommentare dahinter). Diese wecken den µC aus der Sleep-Phase wieder auf.

uint8_t i,j=0;
uint8_t cmd = 0;
uint16_t mask = 1;
uint16_t address = 0x1E3A;

Was bedeuten folgende Ausdrücke?
while(mask < 0x80)
if(cmd & mask)
(address & mask)
mask <<= 1;

Vielleicht kannst Du die ablaufende Sequenz beschreiben?
das ist recht simpel. Beim Tastendruck wird zunächst geschaut welche Taste gedrückt wurde und das Entsprechende Kommando eingestellt:
Code:
	if((PINB & 1<<PB3) == 0)
		cmd = 0x2D;
	else if((PINB & 1<<PB4) == 0)
		cmd = 0x37;
while(mask < 0x80) bedeutet dass die folgende Schleife ausgeführt wird solange die "mask" < 0x80 ist. Die Maske wird bei jedem Durchlauf durch "mask <<= 1;" nach links geschoben (also ich schiebe einfach nur die "1" durch die verschiedenen Positionen. Bedeutet beim ersten Durchgang ist die Maske 0x01, beim zweiten 0x02, beim dritten 0x04 etc. bis sie dann bei 0x80 angekommen ist.
Mit if(cmd & mask) schaue ich ob ein Bit an Postion der "1" aus der Maske ebenfalls eine "1" im Kommando ist und sende das entsprechende Kommando (also 48 Pulse aus einem 40kHz Rechteck-Signal)
Für eine "0" eben nur 24 Pulse.
Das gleiche passiert mir der Adresse.


Bedeutet im Klartext:
Wenn der Taster an PB3 gedrückt wurde ist das Kommando 0x2D. 0x2D ist in binärer Darstellung 101101. Die Maske fängt bei 00000001 an. Nun kommt das binäre UND:
0b00101101 & 0b00000001 ist "1" also sende ich 48 Pulse. Dann schiebe ich die Maske und erhalte im nächsten Durchgang
0b00101101 & 0b00000010 und das ist "0", also sende ich 24 Pulse. Im nächsten:
0b00101101 & 0b00000100 ist wieder "1" also 48 Pulse usw.

wenn ich dann mit dem Kommando senden durch bin kommt kommt die Adresse die eben 13 Bit lang ist durchlaufe ich das ganze eben 13 mal und schiebe die maske auch entsprechend oft nach links.

Achja wie das IR-Signal aussieht, hat Dewenne gemessen, das war meine Grundlage: https://www.dslr-forum.de/showthread.php?t=435214&page=10#93
Leider hat er selbst sich noch nicht dazu geäußert ob es klappt.
 
Zuletzt bearbeitet:
Hallo MasterFX,

vielen herzlichen Dank!
Mit Deinen Erläuterungen und dem Link aus der Excel Datei
http://www.sbprojects.com/knowledge/ir/sirc.htm
konnte ich Deinen Code exakt nachvollziehen.

Besserwissermodus an:

Bei dem Link wird nicht der Command 19 sondern 13 übertragen :)
In Deinem Code könnte jeweils beim Senden von Command und Adress
das _delay_us(600) aus dem If und dem else Zweig entfernt werden und dafür einmal vor mask <<= 1; eingefügt werden (ein Paar Byte gespart).

Modus aus:

Wollte nur zeigen, das ich es verstanden habe, haste aber sehr effizient umgesetzt.
Wenn die Adresse 0x1E3A richtig ist, sollte es funktionieren.

Nochmals Danke für die schnelle Unterstützung und insgesamt fürs Engagement!!!

Liebe Grüße,
Stema64
 
Hi,

nein; Dein Code ist komplett korrekt.
Ich habe auch die Bilder von dem Oscilloscope geprüft.

Insofern bin ich gespannt, was der Test bei Dewenne ergibt.

Bei folgendem Artikel
http://www.sbprojects.com/knowledge/ir/sirc.htm
wird nicht der Command 19 sondern 13 übertragen.
Der Link war bei Dewenne dabei. Für mich war er hilfreich,
da mir das mit der Modulation vorher nicht ganz klar war.

Liebe Grüße,
Stema64
 
Bei folgendem Artikel
http://www.sbprojects.com/knowledge/ir/sirc.htm
wird nicht der Command 19 sondern 13 übertragen.
Achso. Na auf dem Link sind ja nicht die Kommandos und Adressen für die Kamera, sondern dort ist nur das Protokoll dargestellt (mit beispielhaften Kommandos und Adressen wie sie z.B. bei Fernsehern, Stereoanlagen etc übertragen werden). Jedes gerät hat natürlich eine andere Adresse und andere Kommandos.
 
Vielleicht erspare ich mit diesem Eintrag Jemanden viel Zeit.
Folgende Konstellation hat mich gestern fast zur Verzweiflung gebracht:

Habe
AVR Studio 4.18 (build 684) und
AVR Studio 4.18 SP3 (b716)
installiert um mit einem AVR ISP MKII einen attiny25-20PU für dieses Projekt zu flashen.

Der MC lies sich ohne Probleme Programmieren, LED hat mit einem Testeintrag im Quellcode auch geleuchtet.

Nur meine Kamera (Canon 400D) war von den Signalen ziemlich unbeindruckt und hat keinen Mucks zum Thema Fernauslösung gemacht. Sie war natürlich im Modus Fernauslösung/Zeitauslösung.

Das Speicheroszi meldete Impuls und Verzögerungszeiten die einiges schneller waren als programmiert. Je nach "delay"-Dauer mit einem Vorfaktor zwischen 2-32 in meinem Fall.

Rumspielen an der Taktkonfiguration des Compilers und an den Fuses des Controllers brachten nur noch abendteuerlichere Ergebnisse zu Stande.

Nach Hardware tauschen und einer intensiven Suche im Netz habe ich dann das gefunden:

http://www.mikrocontroller.net/topic/196738#1943039

Habe dann die delay.h runtergeladen, sämtliches Vorkommen einer delay.h im AVR-Studio Verzeichnis ersetzt. Quellcode neu kompiliert, den attiny25 geflasht, Knopf gedrückt... und siehe da - es wurde Licht - und 2s später war mein erstes Bild mit Fernauslöser auf der Speicherkarte :-)

Danke MasterFX fürs für das dokumentieren und zur Verfügung stellen dieses Projektes!

Allen Anderen wünsch ich schnelleren Erfolg beim Nachbauen!
Rennmaus
 
Hallo MasterFX,

diese Woche sind die Bauteile von Reichelt gekommen.
Ich habe Dein Hex-File geflasht und an einer Pentax-Kx getestet und
für gut befunden.

Das Sony hex-file funktioniert an meiner Sony a55 leider nicht. Du scheinst ja kein Problem mit den delays gehabt zu haben oder?

Wäre schön, wenn das nochmal jemand an einer anderen Sony Kamera testen könnte. Gesendet hat die Schaltung, die Kamera aber eben nicht ausgelöst.

Liebe Grüße,
Stema64
 
WERBUNG
Zurück
Oben Unten