CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD - page 25 - Creative Uses of CHDK - CHDK Forum

CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD

  • 704 Replies
  • 195134 Views
*

Offline srsa_4c

  • ******
  • 4451
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #240 on: 27 / November / 2012, 11:49:41 »
Advertisements
Unless I have misunderstood you, I think you have the answer in firminfo_05, last error.
There are only "IrisError" and "FocusLensError" entries in the log, BUT this is probably to be expected if the IS wasn't the only disconnected hw part.

Please note that sometimes you may find my choice of words rude, unusual or ambiguous, but that's mostly due to my English being poor (i.e. I can't always express myself properly).

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #241 on: 27 / November / 2012, 13:02:34 »
Ah! I see ... misinterpretation of mine ... I was reading the file in reverse.

2012.11.20 08:29:38  E18 FocusLensError  <<== I was playing around with Focus here later // they are not related.
2012.11.20 08:19:43  E18 FocusLensError
2012.11.20 08:07:39  E18 FocusLensError
2012.11.18 10:13:19  E18 IrisError     <<==  This is the one you want.
2012.11.18 10:09:38  E18 IrisError
2012.11.18 09:53:59  E18 IrisError
2012.11.18 09:49:49  E18 IrisError
2012.11.18 09:47:05  E18 IrisError
2012.11.18 00:42:09  E18 IrisError
2012.11.18 00:41:27  E18 IrisError

Quote
BUT this is probably to be expected if the IS wasn't the only disconnected hw part.
I haven't had more than one component disconnected at once so far.   I speculate based on vague evidence that if more than one component is disconnected, the FW won't go any further once it discovers the 1st one.

*

Offline srsa_4c

  • ******
  • 4451
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #242 on: 27 / November / 2012, 17:15:49 »
A usual bare diskboot.bin is here. I have removed the previous hacking attempts, as they are useless (correct me if I'm wrong). The only thing that works so far is DisableISDriveError.
I added the code snippet I wrote about some days ago. If I got it right, the camera won't notice the previous error shutdown condition when started in play mode. If it works, it can come in handy while you're experimenting with the fake hw signals.

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #243 on: 27 / November / 2012, 19:45:40 »
Quote
I have removed the previous hacking attempts, as they are useless (correct me if I'm wrong).
While they had some effect, it was not the desired effect and you claimed they could be detrimental to operation I recall.

Quote
The only thing that works so far is DisableISDriveError.
Yes, that's pretty definite.  One question ... does the hacked firmware implement DisableISDriveError?  I expect not, but just to be sure I am asking.

*

Offline srsa_4c

  • ******
  • 4451
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #244 on: 27 / November / 2012, 21:55:12 »
One question ... does the hacked firmware implement DisableISDriveError?  I expect not, but just to be sure I am asking.
Not yet, will do next time.

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #245 on: 27 / November / 2012, 22:04:52 »
Quote
Not yet, will do next time.
I will work with your release for now // let us see what we get.

edit: pls recall that the DisableISDriveError call sequence must be issued right after ->REC for it to work. 

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #246 on: 27 / November / 2012, 22:36:43 »
Nice job!  This works perfectly I can get PTP after a HW disconnect // tested only with IS but I am sure it will work for all components // will update as I go along.  You  perhaps don't realize how useful this will be not only for HW dummy development, but also once working, in case of dummy fail for some reason, access to PTP wili not be inhibited.  This is a great step // thanks.

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #247 on: 28 / November / 2012, 09:39:52 »
GENERAL SPECIFICATION for the ELECTRONIC DUMMY SOLUTION

INTRO

There are four components that need to be removed:  IS, IRIS, FOCUS and ZOOM.  The most difficult component to substitute by an electric dummy is the IS.  Fortunately for this component Canon has provided us with DisableISDriveError.  The operation (presently lua from CHDKPTP command line) has to be issued in the 1 minute window after ->REC.  For the last few days I've had the IS ribbon cable disconnected, main board shutter drive output going to the SSC (SticK Shutter Controller) and the SSC driving the Canon shutter.  The camera is in M mode and continues to shoot (shoot+dcimdl) as if the IS were connected and working normally.  Hence I believe we have a solid solution for IS and IS can be considered handled.

The next FW solution that is almost essential is the ability to override the Hardware Error Flag (HEF).  The effect of the HEF is that when HW failure is detected, the last bad state is saved to HEF on PDN and then on camera PUP the components get a quick test for reconnection (followed by a mechanical reset if needed) before the camera allows PTP and PLAY (then HEF gets cleared).  I call this "revival."  A special development-issue FW now handles the HEF by ignoring it, so components do not need to be reconnected to revive the camera after a HW fail during dummy development.  It seems that HEF is a general flag for all four components and is recorded in an RTC register.

SPEC

Since we now have a good handle on the signalling and how the camera handles hardware errors, it is possible to define a general solution by noting that an electric dummy has one principle advantage over its Canon component counterpart: since it has no moving parts, when a dummy is PUPed, it always gets power-reset to the "good hardware state (GHS)."  Hence to the camera, the dummy looks like a good stowed functional component each time the camera is PUPed.  That means during operation the dummy *can be left* in an equivalent "bad hardware state" (BHS) (ie unstowed) on PDN.  That would be the same as disconnecting the AC adapter while in REC mode.  So when the dummies are doing their job in REC mode and the user goes REC->PLAY for example, the dummy supervisor circuit simply issues a GHS reset, and the system is good-ready for the next PLAY->REC.

For example, in the worst case when AC is pulled during REC (ie while the components are unstowed), the handling difference between the two hardware variants occurs on PUP and HEF true: for the Canon components, the camera mechanically resets them before PLAY&PTP; for the dummies, it goes directly into PLAY&PTP as if nothing terribly bad had happened (revival with equivalent stowed components).

The upshot of all of this, is that timing circuits only need be implemented in the PLAY->REC (unstow) direction, *not* the REC->PLAY (stow), greatly simplifying the implementation thus requiring only three tiny 555s (plus a bit of glue logic) for the entire mecha dummy arrangement (ZOOM motor notwithstanding).  This new knowledge is especially useful for the elimination of the FOCUS stow dummy, because of its complicated jiggle.

So at this point I am confident we can implement a very compact minimal solution, especially for IRIS unstow, FOCUS unstow, and ZOOM unstow.  FOCUS has to be rid first before tackling ZOOM because it is part of the ZOOM assembly.  The ZOOM motor will need special attention, but first I will tackle IRIS and FOCUS and test concept etc.  Once working, it will allow for easier physical access and manipulation to attempt the ZOOM motor later.
« Last Edit: 28 / November / 2012, 10:35:21 by SticK »

*

Offline SticK

  • *****
  • 779
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #248 on: 01 / December / 2012, 11:26:07 »
@srsa_4c
DISKBOOT_s90_101a_no_startup_lens_check_try1 is working very well.  There's a good chance I might have one of the dummy solutions operational in a few days.  In the meantime, would it be possible to add IS error override capability into it as well, as you had hinted before?  This could be a good time because it will definitely help the testing process, and if works, it could be the final code to work with the hardware dummies.

Here's what I know that could help.  Calling these two once on the first PLAY after PUP is enough for subsequent ->REC->PLAY->REC etc:
  =return call_event_proc("Mecha.Create")
  =return call_event_proc("StartImStEventProc")

This one has to be called within the 1-minute window after every ->REC:
  =return call_event_proc("DisableISDriveError")

Possible to do?


*

Offline srsa_4c

  • ******
  • 4451
Re: CHDKPTP: S90 Primary Focal Plane Configuration - hacking out the CCD
« Reply #249 on: 01 / December / 2012, 15:34:13 »
DISKBOOT_s90_101a_no_startup_lens_check_try1 is working very well.
Glad to hear it works. Are there any side effects (is file numbering or the camera's clock affected)?
Quote
In the meantime, would it be possible to add IS error override capability into it as well, as you had hinted before?  This could be a good time because it will definitely help the testing process, and if works, it could be the final code to work with the hardware dummies.

Here's what I know that could help.  Calling these two once on the first PLAY after PUP is enough for subsequent ->REC->PLAY->REC etc:
  =return call_event_proc("Mecha.Create")
  =return call_event_proc("StartImStEventProc")

This one has to be called within the 1-minute window after every ->REC:
  =return call_event_proc("DisableISDriveError")

Possible to do?
Yes. The following version issues DisableISDriveError after each play -> rec transition (after a 2 sec delay).
https://subversion.assembla.com/svn/chdk-s1.bin/files/DISKBOOT_s90_101a_no_startup_lens_check_disableisdriveerror_try1.zip
The firmware function is called directly, which should save a few kB of RAM. You won't need to call any of the above 3 event procedures any more.

edit: src diff attached, 101a only
« Last Edit: 01 / December / 2012, 15:42:15 by srsa_4c »

 

Related Topics


SimplePortal © 2008-2014, SimplePortal