• 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 April 2024.
    Thema: "Sprichwörtlich"

    Nur noch bis zum 30.04.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
WERBUNG

Canon-EOS-Protokoll

AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

So, wie du das schreibst, könnten wir uns mit einem zerfledderten Zwischenring (Kosten: unter 50€) und ein bisserl Softwareschreiben einen Birger selber bauen, und dazu sogar noch mehr steuern als mit dem 900€-Adapter ...
Das einzige Problem ist der elektronische Umsetzer von RS232 oder heute würde man wohl USB nehmen, nach SPI. Ich verwende gerade so einen FPGA von NI als Messsystem für 3000 Euro (totaler Overkill natürlich), aber jeder nimmt was gerade rum steht. Da gibt es sicher auch ganz günstige Lösungen, aber einen Standard SPI Chip kann man wohl nicht nehmen, da man Einfluss auf die Clock nehmen muss, die macht etwas mehr als nur up and down mit einer fest gelegten Frequenz.

Wenn das wirklich das ganze Problem ist, müsste man das mit einem µC mit 2 SPI-Anschlüssen beheben können. Schaut zwar nicht sonderlich elegant aus, aber wenn man damit ein paar lichtstarke Teles reanimieren könnte, kann ich mir gut vorstellen, dass sich dafür ein Markt findet.
Den würde man einfach direkt hinter den Stecker im Bajonett klemmen und der leitet alle Befehle 1 zu 1 durch und wenn er durch den Befehl für die Blende getriggert wird antwortet er kurz selbst. Klingt nicht nach der großen Sache. Für alles was sich nicht mit LabView programmieren lässt bin ich aber zu blöd.

Hab mir gerade noch das Protokoll eines Tamron 28-75/2,8 und Sigma 15/2,8 fish angesehen. Also Tamron muss definitiv Einblick in die Canon Programmierung bekommen haben. Die versuchen noch nicht mal die Kamerabefehle wie ein Canon Objektiv zu beantworten, die wissen anscheinend genau was auch funktioniert und meist kürzer ist. Gleich mit dem ersten Byte geben sie sich auch als nicht Canon Objektiv zu erkennen und dann sendet die Kamera auch leicht veränderte Befehle. Ob da System dahinter ist kann ich nicht sagen, ich hab nur die eine Tamron Linse. Auch das Sigma gibt sich als nicht Canon Objektiv zu erkennen (kann auch ein Versehen sein), die restliche Kommunikation läuft aber Canon typisch ab. Sehr seltsam das Ganze, ich brauch mehr Fremdhersteller Objektive.
 
AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

, aber einen Standard SPI Chip kann man wohl nicht nehmen, da man Einfluss auf die Clock nehmen muss, die macht etwas mehr als nur up and down mit einer fest gelegten Frequenz.

wie verändert die sich, also soft spi ?

Den würde man einfach direkt hinter den Stecker im Bajonett klemmen und der leitet alle Befehle 1 zu 1 durch und wenn er durch den Befehl für die Blende getriggert wird antwortet er kurz selbst. Klingt nicht nach der großen Sache. Für alles was sich nicht mit LabView programmieren lässt bin ich aber zu blöd.

gerade du ? also ich bin ja schon doof, aber eine 1:1 Durchreichung mit nur Antwort bei Blende zu würde ich mir zutrauen

Auch das Sigma gibt sich als nicht Canon Objektiv zu erkennen (kann auch ein Versehen sein), die restliche Kommunikation läuft aber Canon typisch ab. Sehr seltsam das Ganze, ich brauch mehr Fremdhersteller Objektive.

finde ich ja auch wenn eine Canon Linse am Sigma Bajonett läuft, wie reagiert eine Sigma Cam wenn sich ungewohnter Weise eine Canon Linse meldet, das es Sigma Linsen für das C Bajonett gibt ist ja bekannt, aber offiziell gibt es ja keine C Linsen für Sigma.
 
AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

wie verändert die sich, also soft spi ?
Ich hab mal zwei Bilder angehängt in unterschiedlichen Zoomstufen. Digital 0 ist die Clock, 1 ist die Leitung vom Objektiv und 2 kommt von der Kamera. Die unten als SPI angezeigten Werte stimmen nicht ganz, da ich wegen der etwas unüblichen Clock 9bit einstellen musste.
 
übrigens, hier bestätig Thunderclap was ich immer schon dachte, oder hat er nur meine Gedanken abgeschrieben ?

https://www.dslr-forum.de/showpost.php?p=2006529&postcount=14

meinst du wirklich das Sigma 1 / 3 Problem ist nicht nur ein Bitkipper ?

übrigens:
https://www.dslr-forum.de/showpost.php?p=1015372&postcount=131
https://www.dslr-forum.de/showpost.php?p=1015450&postcount=132
https://www.dslr-forum.de/showpost.php?p=1015643&postcount=133

und wieso 2 Clocks ? es gibt nur einen Clock, das werden die Daten sein, von der Cam zur Linse ? von der Linse zur Cam

DCL und DLC

http://www.canon.co.jp/Camera-muse/history/canon_story/1987_1991/img/densi_l.gif
 
AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

Das einzige Problem ist der elektronische Umsetzer von RS232 oder heute würde man wohl USB nehmen, nach SPI.
Das ist trivial. Entweder du nimmst den FT232 zur Konversion von USB auf RS232, oder du zahlst ein bisserl was und nimmst ein fertiges Modul, dann ersparst du dir die SMD-Löterei. Um dann von RS232 auf 2xSPI zu kommen (du hängst dich ja quasi rein in einen SPI), brauchst du entweder zwei ATmegas, oder du machst eine Schnittstelle in Software, was bei unter 100 kBps nicht so schwer ist. Im Prinzip könnte man ja die Bits direkt sniffen (Clockpin an externen Interrupt, ...) und händisch zusammenbauen und dann an die Serielle schicken (mit irgendeinem Framing). Zwischen den Bytes lässt uns Canon ja freundlicherweise ein bisserl Zeit. Der letzte Ansatz lässt sich mit einem ATmega48 schnell und elegant umsetzen, die Software dafür ist schnell geschrieben, dank gcc steht uns ja ein kostenloser und guter C Compiler zur Verfügung.
Also Tamron muss definitiv Einblick in die Canon Programmierung bekommen haben.

[...]
Auch das Sigma gibt sich als nicht Canon Objektiv zu erkennen (kann auch ein Versehen sein), die restliche Kommunikation läuft aber Canon typisch ab. Sehr seltsam das Ganze, ich brauch mehr Fremdhersteller Objektive.
Was seltsam ist, weil beim 17-50/2.8 jammern die Leute genauso laut über Fehlfokus wie bei Sigma (und das ist sogar bis zu mir durchgesickert, der ich analog fotografiere und gar kein 17-50 brauche :eek:). Kann es sein, dass das Tamron einfach nur eine andere Protokollversion reverse engineered hat?

@jar: Thunderclap hat das ja wahrscheinlich nicht gemessen, sondern gibt auch nur die Meinung der Foren wieder. Seltsam ist ja auf jeden Fall, dass eigentlich alles geht, bis auf eine ganz triviale aber eben essentielle Funktionalität: Abblenden. Das kann man meiner Meinung nach mit 3.3V vs. 5V nicht erklären. Aber nightshots Messungen werden hoffentlich bald die Wahrheit ans Tageslicht bringen, wenn Sigma und Canon schon so ein Geheimnis daraus machen :grumble:
 
AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

@jar: Thunderclap hat das ja wahrscheinlich nicht gemessen, sondern gibt auch nur die Meinung der Foren wieder. Seltsam ist ja auf jeden Fall, dass eigentlich alles geht, bis auf eine ganz triviale aber eben essentielle Funktionalität: Abblenden. Das kann man meiner Meinung nach mit 3.3V vs. 5V nicht erklären.

oh doch !
bei der Canon 10D war das von Canon erklärte Ziel Strom sparen und die Bajonettspannung soll da gesenkt worden sein, als älter C Linsen zickten haben sie angeblich in der Firmware den Spannungscontroller neu programiert, in den möglichen Grenzen von 3,3 - 3,45 V also sukzessive mit jedem Update etwas erhöht soweit möglich, wenn die neueren wie hier geschrieben wurden wieder mit 5V daherkommen, dann ist das ein totales zurückrudern, passt nicht zum Sigma Problem oder eben doch nur ne Falschmeldung.
 
ZoneV hat dankenswerter weise ein Sigma mit Err99 Problem zur Verfügung gestellt, um endlich mal die Ursache finden zu können. Ich habe auch noch eine alte analoge Canon da und somit war die Ursache recht leicht zu finden.

Der Befehl die Blende zu schließen ist 19, gefolgt von dem Wert wie weit sich die Blende bewegen soll. Bei den alten analogen Kameras war dieser Befehl aber noch 18. Canon Objektive verstehen sowohl 18 als auch 19, das Sigma Objektiv kann mit 19 nichts anfangen und bewegt daher die Blende nicht. Ein Schelm, wer Canon Böses unterstellt... :angel:

Man könnte sich jetzt mal überlegen, wie man für diese Sigma Objektive einen Babelfish bauen kann.
 
AW: Grundsätzliche Infos über Fehlfokus-Korrektur gesucht

Die ganzen Werte dann noch mal zwei, für den 2,8er und 5,6er AF getrennt, dann nochmal Faktor zwei für EOS1 und nicht EOS1 und dann gibt es noch einen eigenen Set für den zentralen Kreuzsensor der 40D, 50D, der ist aber meist 0 da in der Regel noch nicht implementiert.

Damit hat Canon dann ja auch eine Art maximale Lebensdauer von Objektiven festgelegt, da bei einem neuen AF die alten Objektive nicht mehr in jedem Fall korrekt fokussieren.

Gibt es eigentlich weitere neue Erkenntnisse zum Protokoll?

Jörg
 
Vielleicht habt ihr das schon durch, aber sollten nicht folgende Sachen auch noch vom Objektiv zur Kamera übertragen werden. Vielleicht erklärt das eventuell "herrenlose" Daten.

IS on/off
MF-AF
 
ZoneV hat dankenswerter weise ein Sigma mit Err99 Problem zur Verfügung gestellt, um endlich mal die Ursache finden zu können. Ich habe auch noch eine alte analoge Canon da und somit war die Ursache recht leicht zu finden.

Der Befehl die Blende zu schließen ist 19, gefolgt von dem Wert wie weit sich die Blende bewegen soll. Bei den alten analogen Kameras war dieser Befehl aber noch 18. Canon Objektive verstehen sowohl 18 als auch 19, das Sigma Objektiv kann mit 19 nichts anfangen und bewegt daher die Blende nicht. Ein Schelm, wer Canon Böses unterstellt... :angel:

Man könnte sich jetzt mal überlegen, wie man für diese Sigma Objektive einen Babelfish bauen kann.

Möglich wäre auch die Software auf dem uC im Objektiv anzupassen. Wahrscheinlich ist der Programmcode noch auf einem EEPROM bei dieser alten Hardware. Dann einlesen, assembly code generieren (müsste man noch den uC kennen) Byte an der richtigen Stelle von 0x18 auf 0x19 wechseln und zurückschreiben ;)

Übrigens super Arbeit ;) Habe sonst auch noch ein LA zuhause wo ich kurz was sniffen könnte bei Bedarf.
 
Damit hat Canon dann ja auch eine Art maximale Lebensdauer von Objektiven festgelegt, da bei einem neuen AF die alten Objektive nicht mehr in jedem Fall korrekt fokussieren.
Ganz so schlimm ist es dann auch nicht. Wird ein Wert nicht vom Objektiv übertragen, so nimmt sich die Kamera einen Wert der dem am nächsten kommt. Gibt es keinen Justagewert für die 40D Kreuzsensoren, nimmt sie den 2,8er AF Wert. Meist passt das ganz gut.

Gibt es eigentlich weitere neue Erkenntnisse zum Protokoll?
Hab mir mal das neue EOS2.0 Protokoll angesehen. Da wird es schon deutlich kompliziertet, ist wohl auch ein Grund warum das noch kein Fremdhersteller kann. Hier werden die Befehle schnell 16bit lang und auch die Antworten sind länger. Gar nicht so einfach. Hab aber vor lauter Reparaturen im Moment wenig Zeit und wenn ich weniger als 5 Stunden Schlaf habe werde ich unausstehlich. :devilish:

Das wird im Statusbitpattern übertragen, wobei ich mir beim IS nicht ganz sicher bin, der taucht glaube ich auch nicht im Exif auf.


Möglich wäre auch die Software auf dem uC im Objektiv anzupassen. Wahrscheinlich ist der Programmcode noch auf einem EEPROM bei dieser alten Hardware.
Das übersteigt meine Fähigkeiten deutlich. Zudem müsste man das dann bei jedem Objektivtyp neu machen und Sigma hat auch nicht immer die gleiche Hardware verbaut. Ich programmiere jetzt mal einen Translator für das Sigmaobjektiv und wenn das geht muss man sich noch Gedanken machen wie man das auch in klein machen kann.
 
Das übersteigt meine Fähigkeiten deutlich. Zudem müsste man das dann bei jedem Objektivtyp neu machen und Sigma hat auch nicht immer die gleiche Hardware verbaut. Ich programmiere jetzt mal einen Translator für das Sigmaobjektiv und wenn das geht muss man sich noch Gedanken machen wie man das auch in klein machen kann.

Ich bin angehender el. ing und würde bei Bedarf sonst gerne mithelfen. Falls du ein Bild vom Innenleben eines Sigmas mit 0x18 machen könntest, könnte ich dir vielleicht ein Tipp oder eine Lösung geben wie man das am besten machen könnte.
Einfachster Vorschlag, was für alle Sigmas mit diesem Fehler gehen könnte ist ein uC mit 2 SPI ports zu nehmen, und wenn ein 0x18 kommt, dies als 0x19 herauszugeben. Eine kleine Platine zu ätzen und in das Objektiv pflanzen.
Vorallem im 70-210 2.8 hätte man sicher genug Platz (und genau das Objektiv wäre super da billig und für den normalen User als defekt zu betrachten).
 
Ich programmiere jetzt mal einen Translator für das Sigmaobjektiv und wenn das geht muss man sich noch Gedanken machen wie man das auch in klein machen kann.

da gibt es User hier

luca HDR Jack hier
oder embedded projekt USB Prog Bendikt Sauter, wie und wo man SMD bestückte getestet her bekommt, oder im µC Forum, Atmel PIC, ich wär ja für Atmel
 
Ganz so schlimm ist es dann auch nicht. Wird ein Wert nicht vom Objektiv übertragen, so nimmt sich die Kamera einen Wert der dem am nächsten kommt. Gibt es keinen Justagewert für die 40D Kreuzsensoren, nimmt sie den 2,8er AF Wert. Meist passt das ganz gut.

OK, zumindest kann es erklären, warum laut Canon einige Objektive nicht mehr so gut mit der neuen 1D Mk4 harmonieren. Der Autofokus ist einfach nicht mehr in der Lage, in jedem Fall korrekt zu fokussieren.

Ärgerlich ist, dass einige Objektive von Herstellern != Canon einfach nicht so gut mit einigen Kameras harmonieren. Wenn ich jetzt einmal unterstelle, dass die Hersteller das Protokoll kennen und es auch korrekt implementieren, dann sollte dies doch eigentlich nicht auftreten. Da dies aber doch auftritt, kann es doch nur daran liegen, dass eine neue Canon Kamera selber für Canon Objektive möglicherweise noch Korrekturwerte in die Berechnung einbezieht, die das Verhalten des aktuell verbauten AF-Moduls repräsentieren. Könnte dies eine Erklärung für die Probleme sein? Beispielsweise haben meine Tokina 11-16 und Sigma 50 1.4 gewisse Probleme, einmal im Fernbereich und einmal im Nahbereich.
 
Einfachster Vorschlag, was für alle Sigmas mit diesem Fehler gehen könnte ist ein uC mit 2 SPI ports zu nehmen, und wenn ein 0x18 kommt, dies als 0x19 herauszugeben.
Genau anders rum :D Ganz so simpel ist es aber nicht, da Objektiv und Kamera immer gleichzeitig reden. Ich kann also nicht einen Befehl abfangen und dann einen anderen schicken, da der Timeslot dann schon vorbei ist. Noch während die Kamera 19 schickt muss die Elektronik das erkennen und eine 18 draus machen, also das letzte Bit auf 0 setzen.

im µC Forum, Atmel PIC, ich wär ja für Atmel
Ich hab mich auch schon mal ein wenig umgesehen und ich denke ein ATtiny könnte ganz gut passen.

OK, zumindest kann es erklären, warum laut Canon einige Objektive nicht mehr so gut mit der neuen 1D Mk4 harmonieren.
Welche sollen das sein?

Könnte dies eine Erklärung für die Probleme sein? Beispielsweise haben meine Tokina 11-16 und Sigma 50 1.4 gewisse Probleme, einmal im Fernbereich und einmal im Nahbereich.
Dann stimmt einfach der Lens extension response correction factor nicht. Der ist aber seit Einführung vom Protokoll bekannt. Wenn die Hersteller den bei ihrem Objektiv nicht sauber ausmessen und in der Elektronik hinterlegen kann Canon nichts dafür.
 
Genau anders rum :D Ganz so simpel ist es aber nicht, da Objektiv und Kamera immer gleichzeitig reden. Ich kann also nicht einen Befehl abfangen und dann einen anderen schicken, da der Timeslot dann schon vorbei ist. Noch während die Kamera 19 schickt muss die Elektronik das erkennen und eine 18 draus machen, also das letzte Bit auf 0 setzen.

Ich hab mich auch schon mal ein wenig umgesehen und ich denke ein ATtiny könnte ganz gut passen.

Dann stimmt einfach der Lens extension response correction factor nicht. Der ist aber seit Einführung vom Protokoll bekannt. Wenn die Hersteller den bei ihrem Objektiv nicht sauber ausmessen und in der Elektronik hinterlegen kann Canon nichts dafür.

Aus der 19 eine 18 machen ist ja nicht ganz so einfach. Du musst ja immerhin genau wissen, dass die gerade gesendete 19 ein Befehl und kein Parameter ist (sofern ich deine Analyse korrekt verstanden habe, kann man ja nie erkennen, wo genau man in dem Protokoll gerade ist und eine Resynchronisation ist nicht möglich). Daher müsstest Du ja alle möglichen Befehle zumindest erkennen und die Zugehörigen Parameterbytes zählen. Sicher nicht ganz so einfach. Außerdem steigt die Inerruptlast, wenn Du jede Flanke erkennen musst...

Zum Thema Lens extension response correction factor: Hier wäre es ja gut, wenn Deine Analysen helfen würden, so ein Fehlerverhalten besser zu erkennen. Dann hätte man bessere Argumente bei den Herstellern von Objektiven. Schließlich ist es ärgerlich, dass auch manuelle Fokussierung mit AF-confirm einen Fehlfokus produziert, da die selben Werte vom Objektiv genutzt werden, die auch für den AF verwendet werden.
 
Genau anders rum :D Ganz so simpel ist es aber nicht, da Objektiv und Kamera immer gleichzeitig reden. Ich kann also nicht einen Befehl abfangen und dann einen anderen schicken, da der Timeslot dann schon vorbei ist. Noch während die Kamera 19 schickt muss die Elektronik das erkennen und eine 18 draus machen, also das letzte Bit auf 0 setzen.

Das dürfte mit einem Durchschleifen der SPI in einem Controller schlecht machbar sein - ich kenne keinen, bei dem man schon in einem Register stehende Werte noch im Sendevorgang verändern könnte. Einfacher wäre wahrscheinlich eine Art Sniffer, der bei diesem Befehl über einen an einem Portpin hängenden Transistor die Datenleitung von der Kamera auf Masse zieht und damit das niederwertigste Bit nullt.
Damit lässt sich allerdings nur die Err99 bei der Blende korrigieren.

Klaus
 
Zum Thema Lens extension response correction factor: Hier wäre es ja gut, wenn Deine Analysen helfen würden, so ein Fehlerverhalten besser zu erkennen. Dann hätte man bessere Argumente bei den Herstellern von Objektiven.

Ich stelle mir grade vor wie Ihr Sigma erklärt warum ihre Linsen fehlfokussieren und was sie falsch machen :devilish: :lol:
 
WERBUNG
Zurück
Oben Unten