[SOLVED] Property screwed up in 600D, how to solve?

Started by scrax, April 09, 2013, 12:01:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

scrax

I've made a silly mistake when adding quality pic mode option to my custom mode feature, and that has bricked my 600D.
I've tried to reset it but nothing worked.

What I accidentally set is: PROP_PIC_QUALITY

Actually I got err70 in any mode/ startup combination, with or without card.

Crash log:

ASSERT: FALSE
at DevelopCombination.c:108, task RscMgr
lv:0 mode:0


Magic Lantern version : v2.3.NEXT.2013Apr09.600D102.C-Modes.scrax
Mercurial changeset   : c277177d95c0+ (unified) tip
Built on 2013-04-08 23:47:48 by [email protected].
Free Memory  : 290K + 1062K



Tue Apr  9 00:52:36 2013
     0:     9.267 [STARTUP]
K286 ICU Firmware Version 1.0.2 ( 3.8.3 )
     1:     9.331 [STARTUP]
ICU Release DateTime 2011.11.25 11:00:17
     2:    11.252 [SEQ] seqEventDispatch (Startup, 0)
     3:    11.279 [STARTUP] startupEntry
     4:   113.387 [STARTUP] startupPropAdminMain : End
     5:   113.509 [SEQ] seqEventDispatch (Startup, 1)
     6:   113.541 [STARTUP] startupPrepareProperty
     7:   116.539 [SEQ] seqEventDispatch (Startup, 2)
     8:   117.233 [RSC] hMemoryQueue (0x620010) hStorageQueue (0x640012)
     9:   124.261 [RSC] ERROR SetDevelopImageCondition DevelopCombination.c 107
    10:   125.263 [RTC] !! RTC CHECK ERROR !!

    11:   130.159 [JOB] InitializeJobClass (ID = 19441, Num = 16)
    12:   131.805 [STARTUP] ERROR ASSERT : DevelopCombination.c, Task = RscMgr
    13:   131.891 [STARTUP] ERROR ASSERT : Line 108
    14:   131.938 [STARTUP] ERROR ASSERT : FALSE
    15:   132.028 [STARTUP] ASSERT : Time 1899/12/31 0:0:0
    16:   134.417 [STARTUP] startupErrorRequestChangeCBR (0x1d)
    17:   134.550 [STARTUP] startupErrorRequestChangeCBR : ErrorSend (101, ABORT)
    18:   134.974 [CERES]  RegisterGPSInfoCallback
    19:   135.691 [EM] emLockControl (TYPE_JOBSTATE = 0x0)
    20:   137.106 [JOB] InitializeInnerDevelopJobClass (ID = 19441, Num = 16)
    21:   137.154 [JOB] InitializeMultipleExposureSaveAndEndJobClass ( Num = 10 )
    22:   139.181 [SND] Seq LPC fin
    23:   143.820 [ENG] [ENGIO](Addr:0x4fb40000, Data:0x   30000)
    24:   150.746 [FM] FM_RegisterSpaceNotifyCallback
    25:   150.954 [FM] FM_RegisterSpaceNotifyCallback
    26:   156.878 [SHTP] spsInit
    27:   165.111 [TERMINATE] SHUTDOWN init comp
    28:   165.248 [TERMINATE] Abort init comp
    29:   165.674 [WFT]  PROP_WFT_IMAGE_TRANS (1)
    30:   168.615 [MC] PROP_GUI_STATE 0
    31:   169.620 [MC] JobState 0
    32:   171.319 [MC] PROP_LCD_OFFON_BUTTON : 0
    33:   171.897 [MC] PROP_VARIANGLE_GUICTRL : Enable
    34:   172.367 [MC] regist master CardCover
    35:   173.982 [MC] Disp Error : 70
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

a1ex

You can try to set PROP_PIC_QUALITY back to some valid value, e.g. from debug_init_stuff (it's already commented out).

If not, you can disable the assert handler (boot-hack:c, in my_assert_handler, return 0 instead of old_assert_handler). Once you do that, you should be able to get in the menu and clear the settings. Don't forget the assert handler disabled, as it will cause errors to be silently ignored - which can be dangerous.

scrax

Quote from: a1ex on April 09, 2013, 12:26:26 PM
You can try to set PROP_PIC_QUALITY back to some valid value, e.g. from debug_init_stuff (it's already commented out).

If not, you can disable the assert handler (boot-hack:c, in my_assert_handler, return 0 instead of old_assert_handler). Once you do that, you should be able to get in the menu and clear the settings. Don't forget the assert handler disabled, as it will cause errors to be silently ignored - which can be dangerous.
when tring to set PROP_PIC_QUALITY back I have this assert:
ML ASSERT:
PROP_LEN(80000031) correct:0 called:4
at ../../src/property.c:308 (prop_request_change), task ml_init
lv:0 mode:0


Magic Lantern version : v2.3.NEXT.2013Apr09.600D102.C-Modes.scrax
Mercurial changeset   : c277177d95c0+ (unified) tip
Built on 2013-04-09 10:26:57 by [email protected].
Free Memory  : 290K + 1062K


but the leng is the same used in auto burst code...

will take a look a debug file, or disable the assert handler
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

scrax

Blocking the assert handler worked for fixing the problem, thanks!
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

trsaunders

I'm thinking about experimenting with ML dev, and seeing this ability to recover from problems like this is encouraging! if you mess up properties is it generally still possible to boot the autoexec.bin and (manually) fix stuff?

Is there a way to dump all properties (from a healthy camera), making a backup that could be used in case of disaster?
50D, 5D3

scrax

Quote from: trsaunders on April 09, 2013, 01:38:39 PM
I'm thinking about experimenting with ML dev, and seeing this ability to recover from problems like this is encouraging! if you mess up properties is it generally still possible to boot the autoexec.bin and (manually) fix stuff?

Is there a way to dump all properties (from a healthy camera), making a backup that could be used in case of disaster?

To avoid problem like this is important to do things without hurry, check numbers twice and re-check them...
Since the first effort to pot ML to 600D I got only twice a block at start-up and this one is the first serious one, since the other was movie related and starting in photo mode was not a problem so from there I was able to reset camera settings and solve the movie problem.

I suppose that you can do a rom dump before starting to work with custom code, but I have no idea on how to restore it if things goes wrong, that should be an interesting topic btw.

Also I have a 400D and a 5Dc so I can stay for some days with a bricked 600D since I do almost only photo for now with it.
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

a1ex

ML already dumps the healthy ROM (executable code, properties etc) in ROM0.BIN and ROM1.BIN (the same files that you use for QEMU), but we didn't try to restore the data from these files yet. G3gg0 knows how to call the reflash routines, but we didn't try.

When changing some property for which you are not sure about the value, you can use the C mode - in this mode, Canon settings are not saved, so it's less likely to cause permanent damage.

Before changing things, I first check the values used by Canon firmware and try not to go too far from there. It's just guesswork, there's no known method that it's 100% safe (that's why I put this kind of test code under Don't click me). In many cases, Canon firmware will do some sanity checks, but not always.

See also http://www.reikan.co.uk/photography/blog/?p=1550 - using Canon SDK is just as (un)safe.

1%

Don't set the other 2 properties on pic quality. They aren't present on 600D, thats why they are 0.

scrax

Quote from: 1% on April 09, 2013, 04:33:05 PM
Don't set the other 2 properties on pic quality. They aren't present on 600D, thats why they are 0.
looking with prop spyI can see them, but also other more that changes when changing pic quality.
I had some errorcompiling with debugmsg because the new menu layout i suppose,so i've commented the line giving errors and be able to load the propspy. will reload it and post what numbers I see changing there...

btw saving/restoring AF mode is working now in c-modes, I want to add picstyle and ALO/HTP too if I can,.

RAW+L

8000002f 0004:  307000    0    0    0    0    0
80030006 0004:       3    0    0    0    0    0
80000030 0004:  307000    0    0    0    0    0
8004000d 0004:      1c    0    0    0    0    0
80030005 0004:      1c    0    0    0    0    0
80000031 0004:  307000    0    0    0    0    0

RAW

8000002f 0004:  406000    0    0    0    0    0
80030006 0004:       6    0    0    0    0    0
80000030 0004:  406000    0    0    0    0    0
8004000d 0004:      24    0    0    0    0    0
80030005 0004:      24    0    0    0    0    0
80000031 0004:  406000    0    0    0    0    0

L

8000002f 0004:  301000    0    0    0    0    0
80030006 0004:       c    0    0    0    0    0
80000030 0004:  301000    0    0    0    0    0
8004000d 0004:      88    0    0    0    0    0
80030005 0004:      88    0    0    0    0    0
80000031 0004:  301000    0    0    0    0    0


and so on, so I'm not sure how to do it, since there is a lot of things changing here
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

1%

When I change the 1 property and switch modes the picq changes. It was instant with the other properties but they kept popping up that 0 error so I took em out.

scrax

maybe this is also related to why auto_burst mode don't work on 600D.
I used
set_pic_quality(PICQ_RAW);

but quality don't changes, can you post your code,please?

BTW: got the 0 warning popping up on 30 an 31 too
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

a1ex

To get rid of that warning, put some dummy prop handlers in property.c at the bottom.

1%


#ifndef CONFIG_600D

     prop_request_change(PROP_PIC_QUALITY2, &q, 4);

     prop_request_change(PROP_PIC_QUALITY3, &q, 4);

+#endif



Thats all I did, and took out useless void* parameter from one of the functions.

https://bitbucket.org/OtherOnePercent/tragic-lantern-2.0/commits/b56f768b0f1c32c6dc6e4b69f04471eac15cf94c

Auto burst doesn't work because it can't change qualities in the middle.

scrax

Ok so if think that it works like for 1%, the problem is that PROP_PIC_QUALITY changes right, but others changes only if the mode dial is switched to another mode,so for my needs it's not useful.
PROP_PIC_QUALITY2 and PROP_PIC_QUALITY3 are shown in prop-spy but I can't change them length error instead.
setting PROP_PIC_QUALITY to a wrong value it will give permanente err70, like at the start of this topic.

there should be a way to update all the value without changing mode on the dial,but I can't find out how.
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

scrax

EDIT: adding the dummy handler fixed also the other two and now all works good :)
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

1%

So all the props change instantly with the dummy handlers? That might be an upgrade for me. What value did you set, all mraw/sraw/raw/jpeg work for me.

scrax

Quote from: 1% on April 09, 2013, 06:12:25 PM
So all the props change instantly with the dummy handlers? That might be an upgrade for me. What value did you set, all mraw/sraw/raw/jpeg work for me.
I restore only previously saved value so the default canon, didn't try other size. check the pull request or the fork: https://bitbucket.org/600dplus/magic-lantern-fixes/commits/134a790c9c4e4a26e7b3e93fb523867872afecda

need to try auto burst pic quality now...
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

thuttu77

I did do what a1ex instructed but I have still one question about does assert handler go back "online" with formatted card or do I need to do some trick to enable it again?

In my case I did boot with my assret handler return 0; and I did see just red led on no menus or anything I did power off take card out
and power on and it did power on without err70 then I did clear custom settings camera settings etc.