protokół w obiektywach Canona - dam zarobic:)

Witam mam sobie obiektywy Canona

formatting link
do neigo aparat EOS1000F, takze Canona Obiektywy te chce zastosowac do swoich kamer astronomicznych (CCD442,USB2.0HS,GbEthernet) problem jest nastepujacy: Zrobic reverse engineering protokolu ktory steruja obiektywem, a dokladniej ogniskowa oraz przeslona. Rozbieralem obiektyw, strasznei skomplikowane ustrojstwo, kilka scalakow, silniki ultradzwiekowe. itd..tak wiec podpiac sie do nich nei da rady. Pozostaje 8 kontaktowe zlacze. Doszedlem, jakie maja funkcje psozczegolne piny,transmisja w obie strony jest synchroniczna, cos a'la SPI, idzie po f= 90kHz, w paczkach o zmiennje dlugosci od 1 do 20 bajtow. Npisalem na '51 sofcik ktory analizuje ten protokol, tzn odczytuje ramki generowane przez aparat i obiektyw oraz wrzuca to przez USB do PCta na koncu posta przytaczam fragmenty transmisji - co drugi bajt jest odpowiedzia z obiektywu

SZUKAM WIEC POMOCY OSOBY KTORA COS PODOBNEGO ROBILA,LUB WIE JAK TO ZROBIC, EW MOGE ZLECIC ROZGRYZIENEI TEGO USTROJSTWA, za dobre pieniadze

Konwerter ktory umozliwia sterowanei tym obiektywem przez RS232 robi firma Birger

formatting link
ze cena wynosi prawie 1000$ Kupno gotowego ustrojstwa mnie nei interesuje, gdyz potrzebowac tego bede min 32szt, a moze i 100szt, tak wiec kozzty bylyby astronomiczne, zreszta elegancko byloby zaimplementowac obsluge wewnatrz kamery. Ostatecznei kupie od nich ten konwerter i zrobie jemu reverse engineering, ale nie spodziewlabym sie czegos duzo ciekawszego niz obecnie. Pozdr Greg

Istotny problem jest taki, ze aparat zbiera wszelkei dane, i wysyla do obiektywu wszystkei razem w chwili nacisneicia spustu. W miedzyczasie generuje dziwny ruch na magistrali (taki sam jak przy obrocie pierscienia ostrosci), tak weic ne iwiadomo dokladnei keidy te dane sa przesylane, a keidy np wysylany jest roskaz ich wykonania przez obiektyw lub sam status

Ponizej przedstawiam wybrane sekwencje

Przy obrocie pierscienia w dowolnym kierunku generowanych jest kilka tysiecy ponizszych sekwencji.. ja nei znalazlem zadnej korelacji .. te same sekwencje sa generowane zarowno przy ruchu w lewo, jak i w prawo dla przykaldu przedstawie po 2 pierwsze lepsze

lewo: FE F4 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE 5E FE FE AA FE FE F0 F0 F0 F0 FE FE FE 7E FE FE FE 54 FE FE 6E FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE 5E FE FE AA FE FE F0 F0 F2 F0 FE FE FE 7E FE

w lewo: FE FE 54 FE FE FE FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE FE FE FE AA FE FE F0 F0 F0 F0 7E FE FE 7E FE FE FE 54 FE FE FE DE FE 7E FE FE DE F2 FE F2 FE B6 FE FE 5E FE FE AA FE FE F0 F0 F2 F0 6E DE FE 7E FE

prawo: FE FE 54 FE FE 6E FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE DE FE FE AA FE FE F0 F0 F2 F0 FE FE FE 7E FE FE F6 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE DE FE FE AA FE FE F0 F0 F0 F0 FE FE FE 7E FE

lewo: FE FC 54 FE FE 6E DE FE 7E FE FE DE F2 FE F2 FE B6 FE FE DE FE FE AA FE FE F0 F0 F2 F0 FE DE FE 7E FE FE F6 54 FE FE 6E DE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE 7E FE FE AA FE FE F0 F0 F2 F0 6E DE FE 7E FE

w lewo: FE F6 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE DE FE FE AA FE FE F0 F0 F2 F0 FE FE FE 7E FE FE F6 54 FE FE FE DE FE 7E FE FE DE F2 FE F2 FE B6 FE FE DE FE FE AA FE FE F0 F0 F2 F0 6E DE FE 7E FE

prawo: FE F6 54 FE FE FE FE FE 7E FE FE 5E F2 FE F2 FE B6 FE FE 7E FE FE AA FE FE F0 F0 F2 F0 6E FE FE 7E FE FE FE 54 FE FE FE DE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE FE FE FE AA FE FE F0 F0 F2 F0 6E DE FE 7E FE

ponizsze sekwencje zostaly zebrane tuz przed otwarciem migawki - wtedy cala transmisja staje, a tuz przed zostaje przymknieta przeslona - ponizej jest ostatnich kilak sekwencji z tysiecy ktore sa wysylane..kzada linijka to oddzielna ramka szybkosc transmisji siega 50kbit/s, weic mozna przez ten czas nieco przeslac..

f=1.2 lat seq FE FE FE FE FE FE FE FE FE FE FE FE FE FC F4 F6 F0 FC 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE 5E FE FE AA FE FE 4E F2 3C F2 14 B6 FE FE F0 F0 F0 FE 06 44 FE FE 1E F4 FE F0 F6 54 FE FE 6E FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE DE FE FE AA FE FE DE F2 C2 F2 C6 B6 FE FE F2 F0 F0 FE 0E 44 FE FE 1E F4 FE FE CE F2 3E F2 48 B6 FE FE F2 F0 F0 FE 0E 44 FE FE 0E F4 FE F0 FC 54 FE FE 6E FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE FE FE FE AA FE FE 4E F2 30 F2 6E B6 FE FE F0 F0 F0 FE 0E 44 FE FE 0E F4 FE

f=1.4 last seq F4 FE FE FE 7E FE F2 FE B6 FE FE FE FE FE FE FE FE FE FE F4 F4 FE FE 4E F2 3E FE 06 44 FE FE 0E F4 FE FE DE F2 C2 F2 BE B6 FE FE F2 F0 F0 FE 06 44 FE FE 1E F4 FE F0 F6 54 FE FE 6E FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE 5E FE FE AA FE FE DE F2 FE F2 1E B6 FE FE F2 F0 F0 FE 06 44 FE FE 1E F4 FE F0 FC 54 FE FE FE FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE FE FE FE AA FE FE 4E F2 40 F2 F6 B6 FE FE F2 F0 F0 FE 0E 44 FE FE 0E F4 FE FE 4E F2 7E F2 FE B6 FE FE F0 F0 F0 FE 0E 44 FE FE 0E F4 FE

f=1.8 last seq F4 6E FE FE 7E FE F6 FE EC F8 EC FC F6 FE FE FE FE FE FE FE FE FE FE FE FE FC F4 F6 FE 0E 44 FE FE 1E F4 FE FE 4E F2 F2 F2 EE B6 FE FE F2 F0 F0 FE 06 44 FE FE 0E F4 FE F0 F0 F0 F0 FE F0 F0 F0 F0 FC 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE 7E FE FE AA FE F0 FC 54 FE FE FE F0 F2 F0 F0 FE F0 F0 F2 F0 F6 54 FE FE 6E FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE 7E FE FE AA FE F0 F0 F0 F0 FE F0 F0 F2 F0 F6 54 FE FE 6E FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE 5E FE FE AA FE F0 F2 F0 F0

f=2.0 last seq F4 FE FE FE 7E FE F4 FE FE FE FE FE FE FE FE FE FE FE FE F4 F4 F6 FE DE F2 7C F2 FE B6 FE FE F0 F0 F0 FE 0E 44 FE FE 1E F4 FE F0 FC 54 FE FE 6E FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE FE FE FE AA FE FE DE F2 FC F2 DA B6 FE FE F0 F0 F0 FE 06 44 FE FE 0E F4 FE FE 0E 44 FE FE 1E F4 FE FE DE F2 7E F2 BC B6 FE FE F2 F0 F0 FE 0E 44 FE FE 0E F4 FE F0 F4 54 FE FE FE FE FE 7E FE FE DE F2 FE F2 FE B6 FE FE DE FE FE AA FE FE 4E F2 7E F2 FC B6 FE FE F0 F0 F0 FE 06 44 FE FE 0E F4 FE FE 0E 44 FE FE 1E F4 FE FE 4E F2 34 F2 D6 B6 FE FE F0 F0 F0 FE 0E 44 FE FE 1E F4 FE F0 FE 54 FE FE FE FE FE 7E FE FE 4E F2 FE F2 FE B6 FE FE DE FE FE AA FE FE 4E F2 3C F2 1C B6 FE FE F2 F0 F0 FE 0E 44 FE FE 1E F4 FE

Reply to
Greg(G.Kasprowicz
Loading thread data ...

Greg(G.Kasprowicz) napisał(a):

Z tego co widac to sam odwaliłeś juz kawał roboty. Dla chętnych do rozpracowania ew. szczegółow to mi się przypomina taka informacja ( przeczytana gdzies w sieci ): Żadna z firm , które produkuja alternatywne obiektywy do EOS'a nie ma oficjalnie udostepnionego protokołu i też robiły reverse engineering. Parę lat temu Canon coś zmienił w swoim protokole i niektóre z zamienników ( np Sigmy ) nie chciały dobrze działać z nowszymi EOS'ami. Co ciekawe stare oryginalne obiektywy CANONA tych problemów nie miały. Z tego wniosek płynie taki: albo w samym obiektywie jest jakiś firmware aktualizowany z aparatu co jakis czas, albo w protokole sa jakieś funkcje nadmiarowe , których nie były używane kiedy rozpracowawywano protokół.

Zeby złapać w tych danych jakiś punkt zaczepienia, to dobrze byłoby wiedzieć jakie sa aktualne nastawy obiektywu ( ogniskowa , ostrośc ) w momencie przesyłania paczek danych. Te informacje z kolei sa dostepne przez usb ( patrz projekt gphoto ).

Reply to
"Miłosz K."

tak, te dane to ja mam na wyswietlaczy Canona EOS1000F, ale w danych jest zbyt weilka sieczka by do czegos dojsc.. chyba zaczne weic od wysylania tych odebranych danych po kawalku, patrzac co sie dzieje z obiektywem:)

Reply to
Greg(G.Kasprowicz

Musi byc Canon? Moze obiektywy innych firm bedzie latwiej oprogramowac. Z firm niezaleznych tylko Tamron wykupil licencje na protokol.

Reply to
Filip Ozimek

no wlasnei okazuje sie ze z tak jasnymi obiektywami krucho jest.. a i Canony juz sa zamowione..

Reply to
Greg(G.Kasprowicz

Greg(G.Kasprowicz) napisał(a):

Hm. Przy 32 sztukach to nawet nie co myśleć obudowie międzymordzia ze starych Canonów. Czy komunikacja wygląda tak samo przy zrobieniu kilku klatek pod rząd bez zmiany parametrów (ostość, przysłona)?

Reply to
Filip Ozimek

Hm .. skoro jest licencja, to moze i jest patent ? A patenty sa dostepne na

formatting link

J.

Reply to
J.F.

Dane o ogniskowej da się poznać analizujac EXIF zdjęć zrobionych w danym momencie.

A co do ostrości to nie ma takich danych. Body każe kręcić ostrością w lewo czy prawo w zależności od tego co mówią czujniki AF.

TP.

Reply to
Tomasz Piasecki

Greg(G.Kasprowicz) napisał(a):

Z danych którymi chcesz sterować to na wyświetlaczu masz tylko przesłonę. A gdzie masz aktualną ogniskową i nastawę ostrości ?

Reply to
"Miłosz K."

Można patrzyć na liczby na pierścieniu zooma :)

TP.

Reply to
Tomasz Piasecki

Tomasz Piasecki napisał(a):

To to ja tez wiem. Tylko, że taka informacja jest nieprzydatna do rozgryzania protokołu, bo jest dostępna tylko po nacisnieciu spustu. A chodzi o wartości aktualne w czasie kręcenia obiektywem.

Reply to
"Miłosz K."

Tomasz Piasecki napisał(a):

Musi byc jakis feedback nt. pozycji, albo przynajmniej sygnał z krańcówki że juz dalej sie obróci.

Reply to
"Miłosz K."

IMHO właśnie są zwracane krańcówki a obiektyw reaguje tylko, jak się ostatnio dowiedziałem sam decydując o prędkości kręcenia ostrością, na polecenia bliżej - dalej.

To znaczy info o odległości ostrzenia w nowszych EF też jest (podobno pomocne do TTL-II), ale to nie jest obowiązkowe do działania AF.

TP.

Reply to
Tomasz Piasecki

Użytkownik Greg(G.Kasprowicz) napisał: ...

...

Jakieś tam korelacje to nawet na oko widać. Obawiam się, że możesz mieć bardzo poważny problem ze złamaniem kodu, ponieważ istnieje bardzo duże prawdopodobieństwo, że Cannon postarał sie o jego zabezpieczenie, tym bardziej że to bardzo proste. Rynek akcesoriów to zbyt poważna sprawa, żeby pozwolić jednemu inżynierowi na rozwalenie kodu w kilka(dziesiąt) dni. Wystarczy że część informacji jest zaszyfrowana albo istotne są również niektóre relacje czasowe, i polegniesz. Taka Sigma to sobie mogła pozwolić na rozkodowanie protokołu (jak widac również nie do końca) metodą siłową. A Tobie się to nie opłaci. Ktoś kto się podejmie tej pracy, musiałby być ryzykantem na wakacjach. Ty akurat nie ryzykujesz nic, najwyżej nie zapłacisz za brak efektów, a on się narobi jak głupi za darmo. Trudno, astronomia to niezmiernie drogie hobby. Wiem coś o tym, mam takiego sąsiada :) Ale kto wie, może algorytm jest prosty. Może przygotuj umowę, dane które zebrałeś z bardzo wyczerpującym opisem, kiedy zostały wczytane, rzuć cenę (musi mieć 5 cyfr, inaczej nie widzę, i raczej nie z jedynką na początku) i kto pierwszy, ten lepszy... :)

Reply to
A.Grodecki

Zaproponowałem obiektywy innych systemów bo nawet najnowsze obiektywy Pentaksa da się mechanicznie obsługiwać (tj. zmiana odległości ostrzenia bo silnik jest w aparacie) oraz przysłona (transmisja cyfrowa i mechaniczny wodzik oraz dzwignia przymykająca przysłone proporcjonalnie do wychylenia).

Reply to
Filip Ozimek

jasne, da sei rozroznic slowa statusu i slowa sterujace, oraz to ze fala sekwencja powtarza sie z rozncia kilku bitow..

jestem tego swiadom

na dnaich postaram sie powrzucac kawalki sekwencji do obiektywu z proca, zoabcze jak reaguje

na razei problem rozwiazemy w tak isposob, ze kupimy jeden modul konwertera od Birger'a i za pomoca multiplexerow polaczymy z 32 kamerami. Kamery beda pracowac na wyspach Kanaryjskich ,wiec musza byc operowane zdalnie. W miedzyczasie gdbym nei byl w stane irozgryzc tego canona, to wezme na stol ten modul - powinno byc proscie, gdyz wiem jaka informacje wysyla do obiektywu..zoabczymy, dzieki za info.

Reply to
Greg(G.Kasprowicz

wlasnei tych danych ejst tak wiele, ze ciezk to stweirdzic.. nawet gdy aparat nic nie robi to wysyla sekwencje bajtow do obiektywu... co ciekawe ta sekwencja rozni sie kilkoma bitami od poprzedniej

Reply to
Greg(G.Kasprowicz

Greg(G.Kasprowicz) napisał(a):

Ja bym tez chyba w tą stronę poszedł. Bo rozumiem ,ze konwerter ma udokumentowaną komunikację od strony RS232. Jeśli tak , to będzie duzo łatwiej powiazać parametry zadawane po rs'ie z tym co na złączu obiektywu lata. Jest niewielka szansa że metodą brute force to sie uda zrobić: Dla każdej kombinbacji ogniskowej i przesłony podanej przez rs'a a zczytac dane na złączu obiektywu i zrzucić do tabelki. No i potem to dwie rzeczy sprawdzić :

  1. po pierwsze czy te same sekwencje "odtworzone" z zapisu i podane na obiektyw zadziałają
  2. jeśli zadziałają, to czy za każdym razem dana kombinacja przesłona/ogniskowa generuje te same dane dla obiektywu, czy tez odpowiedzi obiektywu zależą od aktualnego położenia pierscieni.

Tak z ciekawości, to którędy sie podpiąłeś do złącza obiektywu żeby zczytywac dane ? Bo żeby ta cała transmisja była zgodna z oryginałem to aparat powienien miec ten obiektyw założony ( choćby żeby ogniskowanie działało ). Chyba że masz jedno body "na straty" i go rozbebeszyłeś. Ja bym do tego użył pierscienia pośredniego z przeniesieniem sygnałów.

A jeszcze jedno: czy autofocus w czasie tego skanowania złącza był załączony ?

Reply to
"Miłosz K."

A.Grodecki napisał(a):

Jeśli pytający może na rozpracowaniu tematu osczędzić 100 * 1000$ to te 5 cyfr to i tak będzie mały procent .... Ale raczej nie widze tu miejsca na konkurs z nagroda główną. Surowe dane do analizy sa bezuzyteczne bez dostepu do sprzętu na którym to mozna testować. Czyli trzeba najpierw zainwestować parę kPLN żeby się do tego zabrać.

Reply to
"Miłosz K."

Greg(G.Kasprowicz) napisał(a):

A możesz się podzielić informacjami jakie sa funkcje poszczególnych pinów ? To akurat najłatwiej jest odbadać, a ciekawi mnie po tam jest aż

8 lini jak to jest szeregowa transmisja. Poza tym, jak Ci się nie uda tego rozpracować, może taka informacja komus posłuży jako początek do własnych eksperymentów w tym zakresie.
Reply to
"Miłosz K."

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.