• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • 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 ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs März 2024.
    Thema: "Arbeitsmittel"

    Nur noch bis zum 31.03.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Frohe Ostern!

    Wir wünschen allen DSLR-Forum Nutzern, ihren Familien und Freunden sowie unseren Sponsoren und Partnern und deren Familien und Freunden ein frohes Osterfest.

    Euer DSLR-Forum Team!
WERBUNG

Canon-EOS-Protokoll

Hello John,

Some 18 month ago I tried like you to control a Canon lens and had good support from clever people working since lomg on the protocol at that time I posted here all known commands including the general structure of the protocol. Maybe you ucould search for it on the older pages.

Different to the focus motor the diaphram motor is a stepper motor that needs to be switched manually to power off, otherwise the motor will overheat an burn through. This happened to a russion guy who adapted the Canon lens to a different bajonet. The trick is to send a current stop signal after the aperture move signal and to wait inbetween for the handshake signal on the clock to disappear. The command is probably 0x0B, please look it up in my old table as I am on travel without access to my files.

The second option to command power off to the diaphram is to command it to fully open. The lens has a fully open switch and stops the motor automatically when this position is reached.

Please be aware that my project never finished and I can not prove which command is the correct one, but the physics behind are quite clear.

By the way, could you share some details about your HW and SW that you used?

Best regards
Thomas
 
To Ramanza:

First of all, thank you for the interest and the tips. I have tried the 0x0B command, no luck so far maybe because of incorrect timing or something else. I'll try to send it your way and see what happens. I know that the EMD de-energizes when commanded to fully-open but it doesn't help in may situation.
The gear I work with is a Sigma 50-500 OS HSM, one 1.4x TC and one 2x TC. On that I put a 12 mm macro tube with an adapter for C mount amd a hi-sens camera. I have a small PCB with an PIC 16F to control the aperture, focus and a brushed motor to move the zoom ring, so that no shaking gets in.
At this moment I stop the power after each aperture actuation, but this doesn't allow the IS (OS) continuous use.

Now in german, via Google translate:

Um Ramanza:
Zunächst einmal, ich danke Ihnen für das Interesse und die Spitzen. Ich habe den Befehl 0x0B bisher vielleicht wegen der falschen Zeitpunkt oder etwas anderes probiert, kein Glück. Ich werde versuchen, es zu senden Sie Ihren Weg und sehen was passiert. Ich weiß, dass die EMD wird stromlos, wenn befohlen, vollständig geöffneten aber nicht im Mai Situation zu helfen.
Das Getriebe mit denen ich arbeite ist ein Sigma 50-500 OS HSM, eine 1.4x TC und ein 2x TC. Auf, dass habe ich ein 12 mm Makrorohr mit einem Adapter für C-Mount amd ein hallo-sens Kamera. Ich habe eine kleine Platine mit einem PIC 16F, um die Blende, Fokus und einen Bürstenmotor zu steuern, um den Zoom-Ring zu bewegen, so daß kein Schütteln bekommt in.
In diesem Moment höre ich die Kraft nach jeder Öffnung Betätigung, aber das bedeutet die IS (OS) Dauerbetrieb nicht zulassen.
 
Hello,
need help need a wiring diagramhttp://butterflybikers.cz/index.php/cz/elektronika/item/1-canon-eos-protocol-convertor-for-old-sigma-lens
Thank you
 
Schönen guten Abend,

Ich arbeite aktuell an einer Steuerung der EF Objektive auf Arduino Basis. Dieser Thread hat mir schon sehr geholfen. Allerdings trete Ich gerade auf der Stelle und komme einfach nicht weiter.

Das einzige Feature, dass mir für mein Projekt noch fehlt ist das auslesen des aktuell eingstellten Blendenwertes. Durch Abfrage des Blendenwertes mit 0xB0 bekomme Ich eine auf den ersten Blick gültige Antwort.
Mein Sigma 10-20 f3.5 Objektiv antwortet = 0x00, 0x25, 0x025, 0x4F
und das Canon 50mm f1.8 antwortet = 0x00, 0x11, 0x10, 0x50

Mithilfe einer Tabelle die Ich online gefunden habe, kann Ich nachvollziehen dass die zurückgelieferten Werte stimmen. also z.B. 0x25 = f3.5(max) und 0x4F = f22(min) bei dem Sigma. Wenn Ich die Blende jetzt schliesse und dann wieder mit 0xB0 abfrage, verändert sich keines der 4 Bytes. Meiner Meinung nach sollte sich doch das 3. Byte ändern und den aktuellen Blendenwert widerspiegeln. Leider passiert an der Stelle nie etwas. Beide Objektive verhalten sich gleich.

Übersehe Ich etwas?
Kann man so überhaut die aktuelle Blende abfragen?
Muss Ich nach dem verstellen der Blende noch einen anderen befehl übersenden um die aktuelle Blendenöffung abzufragen?

Im Moment bin Ich leider ratlos...
 
Hallo leper 666,

Die Blende wird aus der Nullstellung mit dem Kommando 0x12 (alt) oder 0x13 (neuer) um einen zweierkomplementwert zu- oder aufgefahren. Die Kamera zählt die Schritte intern mit. Dabei ist aber unbedingt ein Poweroff Kommando anzuschliessen 0x0B da der Schrittmotor keinen Haltestrom kennt und nach kurzer Zeit durchbrennt. Nur das Kommando voll auf 0x13 0x80 schaltet den Motor automatisch ab. Und nicht vergessen auf das Acknowledge auf dem clck nach dem Fahrkommandozu achten sonst bekommt das Objektiv den Powerdown nicht mit und der Motor ist hin. Ich arbeite gerade an einem Update der Kommandotabelle, da ich auch an einer Arduinosteuerung arbeite.
Da gibt es noch viele kleine Lücken im Verständnis, aber die meisten Vorgänge sind schon ganz gut verstanden.
 
Vielen Dank für die schnellen Antworten.

Meine anfängliche Idee war die Blende per Kommando zu ändern und dann abzufragen welche Blende eingestellt ist. Jetzt hab Ich verstanden, dass die Blende komplett geöffnet wird und ab da dann einfach mitgezählt wird welchen Wert die Blende aktuell haben muss.

Ein Update der Kommandotabelle wäre super. Ich persönlich finde das "Eos-Protokoll" ein wenig unübersichtlich.

Ist mit dem Acknowledge einfach das wiederholen des Blendenbefehls gemeint?
Nach dem Blendenkommando 0x07,0x13,0xXX,0x00 antworten die Objektive glaube ich immer 0x07,0x13,0xFF,0xFF.
 
Was Ramanza mit "ACK" meint, wird auch von einigen als "BUSY" bezeichnet.

Jedes Mal, wenn die Kamera das Objektiv einen neuen Befehl sendet, die 8 LCLK Zyklen dauert, wird das Objektiv die LCLK für einen Zeitraum auf "Low" setzen.
Die Länge dieses neunten Bit variiert je nachdem, wie schnell das Objektiv den Befehl verarbeiten kann und sofort wenn bereit für den nächsten Befehl, wird das Objektiv LCLK wieder frei geben ("High").

Wenn dein Ardino als Kamera agiert, muss die LCLK überwacht werden und den nächsten Befehl, oder einen Teil davon, nicht abgegeben werden bevor das Objektiv die LCLK freigegeben hat (LCLK wieder "High").
Mit Befehle für Aktuatoren in das Objektiv, wie zum Beispiel 0x12 / 0x13 an die Blende, dauert das ACK/BUSY-Bit viel länger - in der Regel 20 ms oder mehr.

Unten ist ein Beispiel von eine EOS10 Filmkamera. Hier gibt das Objektiv ein ACK/BUSY-Bit von 33.845ms ab, beim 0x12 0xE = 14 Schritte Schließen, und 33.725ms das 0x12 0x80 um die Blende vollständig zu öffnen.
Beachte auch die 0x01 Antwort ("Blende nicht ganz geöffnet") des 0x90 Status-Kommandos zwischen die beiden 0x12 Befehle, die von Nightshot erwähnt wurde.

~ hans ~
 

Anhänge

Hello guys,
Long time has passed since my last message here. Even if I didn't worked on the my EOS protocol project since 2015, I looked constantly for new info about it. So, today I have found this on ML forum:

http://www.magiclantern.fm/forum/index.php?topic=18308.0

It contains some nicely organised infos and lots of tables and pics. Maybe it can help any of you guys still working in this area.
The downside for some potential users might be the french language but google translate is a very nice help.

And now In german, via Google Translate:

Hallo Leute,
Lange Zeit ist seit meiner letzten Nachricht hier vergangen. Auch wenn ich seit 2015 nicht an meinem EOS-Protokollprojekt gearbeitet habe, habe ich ständig nach neuen Informationen gesucht. So, heute habe ich dieses auf ML-Forum gefunden:

Http://www.magiclantern.fm/forum/index.php?topic=18308.0

Es enthält einige schön organisierte Infos und viele Tische und Bilder. Vielleicht kann es jemand von euch helfen, die noch in diesem Bereich arbeiten.
Der Nachteil für einige potenzielle Nutzer könnte die französische Sprache, aber Google Übersetzer ist eine sehr nette Hilfe.
 
...

Also, if anybody needs to know about starting the IS, just ask...

Hi John,
Could you please let me know how to start the IS?

Thanks
 
Hello,

I trying to modify the sigma lens 28-200 mm aspherical IF. I have a 1000D canon. I want to use the ATTiny10, to reduce the power consumption. Does anyone have the last code or some code for this chip?

Thank you
 
...

Also, if anybody needs to know about starting the IS, just ask...

Hi John,
Could you please let me know how to start the IS?

Thanks

Hello,

Please check my post #600 on page 60 on this thread. Maybe next posts can be usefull.
Unfortunately I don't have the time to work on this project for now.
 
Hallo, ich würde mich jemanden bitten, mir die HEX file zu schicken (pulsartomi@gmail.com). Der Download-Link funktioniert nicht.
Vielen Dank. (y)
 
Zuletzt bearbeitet von einem Moderator:
Hello everyone,

Sorry I don’t speak German.
I hope someone here can help me. I had read through the whole post and cannot find the answer I’m searching for. I would like to control the focus without using the Canon camera, but by using a microprocessor via the SPI serial bus. I can move the focus to INF using 0x05, then move to minimum focus using command 0x06, then command 0xC0 to read USM motor encoder position in int16, which is 0xE556. This means encoder count at INF = 0 and at minimum focus = 0xE556. This also means now if I give command 0x44 + 0x1AAA (0x1AAA = 0 - 0xE556) then focus should move to INF in 6828 (0x1AAA) steps. However I found the encoder is losing count when read with command 0xC0 after checking motor is stopped with 0x90 0xB9 status command. For example, from minimum focus and move with 0x44, 0x0300, the lens moved to 1 meter (read by 0xC2), and 0xC0 read 0xE856 (0XE556 + 0x0300 = 0xE856). However if I repeat this many times (0x44 0x0300 from minimum focus), lens at 1 meter but 0xC0 reading encoder does not give the same 0xE856, but instead 0xE846. Does this mean there is error in encoder count with 0xC0 command and what is the reason? My goal is to use command 0x44 + x to move the focus to location x ( 0 >= x >= 0xE556) and using 0xC0 for position feedback as below (cannot use C2 for position feedback because its value is not linear and no relationship to USM step in command 0x44):

While(1)
{
........enc = 0xC0(0x00); // read encoder count
........steps = x – enc;
........while(steps != 0) //
........{
...............0x44 (steps);
...............wait motor stopped with 0x90 0xB9;
........}
}

Thank you,
Brian
 
Zuletzt bearbeitet:
Btw, in the captured commands during the camera doing AF, I cannot see a single 0x44 focus move command being used. So what other focus move commands that the camera used?

Best Regards,
Brian
 
Hi,

ich besitze ebenfalls ein Sigma Super Wide II 24mm 2.8

Das Objektiv funktioniert problemlos an meiner 600D und 6D, inkl. Autofokus.
Aber eben nur mit Blende 2.8
Bei allen anderen Blenden kommt ein Fehler, ist ja bekannt.

Kurz und knapp:

Gibt es mittlerweile einen Workaround dafür?
Gerade an der 6D ist das Objektiv ein schönes WW und es wäre super, wenn man abblenden könnte.

Gruß
 
Zuletzt bearbeitet:
Mein erster Post im DSLR.F seit sieben Jahren...:)
Ich habe bereits FanFan Foto eine PN geschickt, leider bisher ohne Antwort.

Gibt es hier noch Leute, die selbst in der Lage zur Nachrüstung von Sigma-Gläsern mit dem Abblendfehler sind oder Abhilfe vermitteln können? Ich hätte zwei Objektive, die eine Nachrüstung wert sind und bin bereit, da einen vernünftigen Preis für zu bezahlen.

Freue mich über jede Rückmeldung und Hilfe!
Grüße!
 
WERBUNG
Zurück
Oben Unten