- Use HxD soft: http://mh-nexus.de/en/downloads.php?product=HxD (http://mh-nexus.de/en/downloads.php?product=HxD) to open the Master Boot Record (MBR) of your CF card Logical Disk Drive (your drive letter may be: I, or H, or G ...). Check the address 0x40 to find the text string: "BOOTDISK" (that Cartricks have written) to make sure you choose correct drive. Then put the text string:"EOS_DEVELOP" at the address 0x2B.
Dont you have to set a new crc check-sum value in the header, after modifying a string and encrypting it again?
This checksum is present in the 40D FW at byte 0x20-0x23 of the file header.
ISO-AUTO doesent work. It just displays it. And ISO 3200 works fine, but gives way too mutch noise :(
Now I'm trying to read shutter speed, and focal lenght. And try to figure out wath happend when I press the shutter button half way.
Set to ISO1600 -> Done
Wait 4 secs until your viewfinder display turn off -> What do you mean? The big display? It turns off after 30 secs (Auto-Power-Off!). And nothing happens when it turns off and i press "Direct Print".
Do you mean "review-time", after i've taken a picture?
IT WORKS :-)
i do the posted steps by thaibv and load the testfir.fir on the cf card (http://chdk.setepontos.com/index.php/topic,1618.0.html (http://chdk.setepontos.com/index.php/topic,1618.0.html)). After i go to fw-updade at the camera menu, the cam loads and "hang off".
i removed the akku and started the camere seconde time, and i see a blue led blinking.
If i put a "normal" CF Card, it work normaly...
THANKS GUYS FOR YOU HELP!!!
Why I'm writing it? Two reasons:
1. So if you'll break the camera like that, mayby it will help you (attached .fir and AUTOEXEC.BIN)
2. As I said in a other thread: I'm not rich man - I was terrified when It happened (guarantee expired, so much money!), and I had to write somewhere :-)
am i allowed to write a full howto, for sure with thanks to thaibv and lykantroph, with the links to the files
and upload it on another german board?
i guess this is the first DSLR modification that really is released to the public. congratz. this will be big news for the dslr sites - i guess. hopefully this will be explored more, and more devs come join in on the fun (without financial interests of course :D).
Some success :-) There is a "cf_extend_iso" hidden custom function. This enables ISO3200 to apear in the system menu. Some bugs with it. It doesent appear always. In a few days I will post the code and the bin file, when it's stable.Great work!
Please be patient. I have so little time, since I've become a father on 1th on june :DBest wishes ;) ! All the best for your child!
Please be patient. I have so little time, since I've become a father on 1th on june :D
Please be patient. I have so little time, since I've become a father on 1th on june :D
Best wishes ;) ! All the best for your child!
But when you are online the next time, please tell me, which file with which software to analyse?
the menu code does not notice the change to ISO 100 because it shows it as the default selected option whenever you have a non-standard ISO selected, this is not a problem.
Hi again,
Could some one hang your 400d using this bin file pls! :D
bin: http://depositfiles.com/files/jdmun9g0c (http://depositfiles.com/files/jdmun9g0c)
enjoy it.
This last release works greatly on my 400d, but I noticed a little bug, when you set ISO 2500 the LCD wrongly displays "ISO 2200".
it doenst modify anything in flash. only in the ram so i dont think it can destroy anything.
Hi all,
@raingrove:
Thanks for a great guidance.
Let me make some comments.
4. insert CF, and then run firmware update again using testfir.fir the screen will go blank. wait 5 minutes, turn off, take battery out and back in.
The testfir.fir make changes to 400d's boot flags immediately, so count down from 10 after testfir.fir blank your display screen. No need to wait 5 minutes.
9. ......
ISO levels 16/32/40/50 can also be enabled if you go to menu and turn "shoot without CF" ON, but not sure if they really work (i see no difference.)
I think iso 16/32/40/50 are same as iso 160/132/140/150. Please test and post your comments so i can decide to keep them available or not
10. .... to go back to "evaluative metering", you have to select other metering modes first, and then back to "evaluative metering", because the camera thinks you are at "evaluative" although you are at "spot metering".
I will correct it soon and upload .bin file and source code too
--------FYI-------------
Dont have much time so no big Progress. Realy got stuck finding how to make and display a custom dialog. Not success to understand Canon's CreateDialogBox function (in firmware). It is very complicated. I dont know much about VXwork and Camera hardware. Still google for some documents.
so inform you some ideas
- Found out that there are alot focus point combinations others than Canon defaults such as cross; all points at top, at bottom, at left, at right; center point and 4 nearest points ... i'm trying to make it work.
- Not sure if it can be enable focus confirmation for manual lens or not. if yes, you dont have to spend too much money for AF confirm mount (i have some M42 lens :D).
- Can we partition CF card to protect boot loader and the bin file from format or erase.
- 60, 70, 80, 90, 100 second etc exposures would be useful, dont have a remote and holding shutter for bulb sucks (as requested by nicholas-c)
I Followed the Instructions and they work great. One thing i would like to ask is how to does spot metering work. I managed to switch meter from partial to spot but i don't know which area is being metered? Does it work like center metering ?
get the .txt file and then search for "release" but it says that this word has not been found?
please make sure your cam run lastest firmware ver: 1.1.1 and use your cam to format your card (don't format in windows). then use cardtricks to make it bootable, use HxD to change label.
3. empty your CF, download testfir.fir from http://chdk.setepontos.com/index.php/topic,1618.0.html (http://chdk.setepontos.com/index.php/topic,1618.0.html) and copy it into the root of your CF.
4. insert CF, and then run firmware update again using testfir.fir the screen will go blank. wait 5 minutes, turn off, take battery out and back in.
5. insert CF into card reader and perform a quick format.
Hi again,
Have a day off today, The Nation Day of Vietnam (2 Sep.). Nowhere to go so playing with camera and code.
Here my lastest release http://code.google.com/p/400d/downloads/list (http://code.google.com/p/400d/downloads/list)
New:
- Correct Evaluative mode set (now you can open dialog and press set button to active Evaluative mode, dont have to move cursor)
- Focus frame pattern. add 42 more patterns for your 400d, dont know 40d, 50d or higher models have this feature or not.
Not easy to make it work, but the final code is very simple.
How to choose Focus frame pattern:
Normal use:
- Press focus frame button to show FP dialog, use main dial or Up/Down/Left/Right button to choose focus point.
- Press focus frame button again to close dialog.
Pattern use:
- Fast press forcus frame button twice to show FP dialog. if you hear a beep and the dialog showed, use Direct Print button to change pattern (if you press the focus frame button not fast enough, the dialog not showed).
- Press focus frame again to return to default canon focus frame mode.
Hope ours Direct Print button not died too soon :lol
Again, please post your opinion on lower 100 iso values, so i can decide to keep them available or not.
Thanks!
11. to view shutter actuation count, which was only viewable by canon themselves, go to menu, push print button, push menu button again twice, ("factory menu" appears), enter factory menu, then push print button to enter "debug mode". after a beep, go back and set spot metering. and you will see the camera writing something to the CF (CF light). eject CF, insert it into card reader, you will see a file called STDOUT.txt, search the textfile for "Release". there you see a number and that is the shutter count.
Hi,
My shutter release 11641. It is said that some 400d pass 50,000 and still alive
Edit: open len front cap, point your cam to something farer than 50cm and run AF test, you'll see your lens auto change focus. wait and see result (all lens minimum focus length less than 50cm)
Mine have 3 fails. Len 50mm F1.8 Mark II
No need to pass tests.. That X is not saved anywhere.
vathek: yes I am "that" zibri (didn't know there were clones around).
What I meant is that that X doesn't change anything.
To pass tests usually sequences of keys or test patterns must be used.
Who cares ?
(I wondered about the autofocus test because I wish to know if that happens to everybody or just me)
Hi frogcement,
If you set iso 80 and increase manualy back to 0, yours image will overexposed.
When set iso 16, Av will auto down to -3, and at iso 16 image will too too bright, loss details if increase Av comp to 0.
Hi,
Just uploaded new file here: http://code.google.com/p/400d/downloads/list (http://code.google.com/p/400d/downloads/list)
New:
- Focus point Pattern mode light illumination
- Corrected bug: display off when exit menu or Picture viewer mode if enter Menu or Picture viewer while Pattern dialog on.
Edit: name of bin file now added release date. Please rename to AUTOEXEC.BIN after copy to CF card.
hi guys quick question,
normally when you increase the ISO, the file size goes up.
Hi,
Just uploaded new file here: http://code.google.com/p/400d/downloads/list (http://code.google.com/p/400d/downloads/list)
New:
- Focus point Pattern mode light illumination
- Corrected bug: display off when exit menu or Picture viewer mode if enter Menu or Picture viewer while Pattern dialog on.
Edit: name of bin file now added release date. Please rename to AUTOEXEC.BIN after copy to CF card.
Hi thaibv.
Hi installed the chdk firmware on my 400D. It's all ok. But the filename of the images is changed in _MG_5000 (the old filename was IMG_5000).
Is this a modify of the new firmware?
Another question, can You explain this "Focus point Pattern mode light illumination "?
Thanks
Another question, can You explain this "Focus point Pattern mode light illumination "?
Hi, I'm starting having problems with hight ISO's iso's greater then 100. The images are getting Horizontal Lines in them. The Greater the ISO the more line and the image produced is reddish. What could cause this issue and how could i solve it?
Thanks
Etienne
pls google for how to clean CCD and upload an image so I can see yours problem
Could a large speaker magnet cause this issue?Like electro magnetic interference? Because now i recall that the camera bag was near a Sub Woofer. From there onwards the images started to get like that. Is there a way to degauss the cmos? or else discharge it totally ?I guess anything is possible, take out 'both' batteries and let the camera sit for about 20 minutes. See if that helps. If it doesn't it looks like your CMOS sensor is toast.
Thanks
Could a large speaker magnet cause this issue?Like electro magnetic interference? Because now i recall that the camera bag was near a Sub Woofer. From there onwards the images started to get like that. Is there a way to degauss the cmos? or else discharge it totally ?I was looking at your posted photo again, were there any high power lines around where you were shooting this? And the obvious dumb question, does it still look like this when you take pictures at home?
Thanks
I placed a raw file @ the following URL i don't know if it could help u diagnose the issue.
http://rapidshare.com/files/285641882/IMG_8396.CR2 (http://rapidshare.com/files/285641882/IMG_8396.CR2)
We can restore the original CMOS? (unTESTFIR.FIR)
"The test.fir change boot flags in your cam's cmos rom, so your cam can boot up from card."
Canon Eos Utility not working properly to me. CFcard is 8Gb Fat32.
Changes work well, but EOS Utility and USB blocks the camera. The reading light blinks once, then stops and locks the camera. We must remove the battery to reset.
thaibv: any progress on firmware feature additions?
One of the guys that tried this reported that his camera slowed down more and more while he was using the hack - I didn't shoot a lot of pics with it so I cannot tell if it is true.
I wonder if the camera in this mode isn't writting constantly some info in the internal memory? Like a debug file? If yes, can it be turned off?
Also, formating the card is not what he asked, but setting the flags in the firmware back on the same condition (as in not booting rom CF cards). Like the "bootflag" utility existing for 350D.
Where can I find information about "FACTORY MENU? Specifically AF CK.
Actually I didn't try the AF CK because I don't like to get messy with failed tests, but someone (Zibri, I guess) already tried the AF CK.
TO THOSE WHO ARE EXPERIENCING PROBLEM WITH TRANSFERING IMAGES:
When you install CHKD to your memory card, EOS utility blocks the hack for i don't know what reason..so if you usb connect the your camera to PC/laptop, or use a card reader to transfer images, EOS utility will not allow you to transfer the images.
-I use a 2GB CF card, my 400D hangs everytime I USB connect it to PC
-Via card reader, I cannot transfer images because the PC cannot read the files..
SOLUTION:
-I use another PC without EOS Utility to perform the transfer operation. - Works normally
As I was trying to get AUTO ISO work I found out the correct values for shutter speeds. You can see them in the bottom of this post. The current shutter speed can be found at *(int*)(0x16b7c). So a simple "minimum shutter speed" auto iso can be written easily. But I didn't find any data corresponding to lens focal distance. This is required to make a really good auto iso.
Iglass -hmm lemme guess... its normal that "hack" functions does not work with clean card without hack?
If it works same for the powershot's and dslr's cameras. Why do You think that something LOADED to camera FROM THE MEMORY CARD will work in camera with CLEAN CF CARD, unprepared, just formatted WITHOUT any file?
@Iglass
I doubt if Canon would still honour the guarantee if you change the firmware ...
Also, RAM-based hacks are a lot safer: just imagine yourself accidentally grabbing
the wrong (hypothetical) real firmware hack and applying it :(
wim
patryk...either you lie to us about the story or that canon usa guy was bullshitting you.Iglass -hmm lemme guess... its normal that "hack" functions does not work with clean card without hack?
If it works same for the powershot's and dslr's cameras. Why do You think that something LOADED to camera FROM THE MEMORY CARD will work in camera with CLEAN CF CARD, unprepared, just formatted WITHOUT any file?
I was under the impression that the "hack" was supposed to write itself to the camera OS.
I spoke with a Canon tech at Canon USA yesterday and he said it is possible to write the "hack " to the camera OS, but Canon's policy is not to reveal that info to customers...he owns an xti and was aware of the "hack" and in so many words, said he had written it to the camera OS and no longer need the boot card to acquire the added features...
thats why...
tim
pretty brazen thing to say...patryk...either you lie to us about the story or that canon usa guy was bullshitting you.Iglass -hmm lemme guess... its normal that "hack" functions does not work with clean card without hack?
If it works same for the powershot's and dslr's cameras. Why do You think that something LOADED to camera FROM THE MEMORY CARD will work in camera with CLEAN CF CARD, unprepared, just formatted WITHOUT any file?
I was under the impression that the "hack" was supposed to write itself to the camera OS.
I spoke with a Canon tech at Canon USA yesterday and he said it is possible to write the "hack " to the camera OS, but Canon's policy is not to reveal that info to customers...he owns an xti and was aware of the "hack" and in so many words, said he had written it to the camera OS and no longer need the boot card to acquire the added features...
thats why...
tim
pretty brazen thing to say...Given these facts
i have no reason to lie to anybody and i wouldn't know if the canon guy was bullshitting me or not....
I have nothing to gain or lose by what the the canon tech told me. indeed, he said that canon as well as many other camera builders cripple their software...he said he was aware of your "hack", he said it was possible to write the hack to the OS...I may have misunderstood what he was saying (but i don't think so),ie, it was possible to write, enable, or what ever you chose to call it, the features of your hack to the camera OS...pretty brazen thing to say...Given these facts
i have no reason to lie to anybody and i wouldn't know if the canon guy was bullshitting me or not....
1) the actual hack, as made in this forum, only loads from the card
2) you've clearly stated in your earlier posts that you unfamiliar with the technical details
3) you claim that some unspecified "canon" guy told you something that is known to be untrue of the hack developed in this forum.
The logical conclusions are
1) you misunderstood and "canon guy" was talking about either
a) the fact that the bootflag must be modified for the hack to load at all
b) the theoretical possibility of storing a hack in the camera
c) a different hack, unknown to the members of this forum
d) his own personal modification, unknown to the members of this forum
2) you made up the "canon guy" in the bizarre misapprehension that someone would implement/reveal this feature if you claimed it was possible
3) the "canon guy" told you something untrue, either through his own misunderstanding or deliberately.
I would personally expect something closer to #1a or #1b, but we have seen things like #2 more often than you would think.
While I wouldn't put it the way PhyrePhoX did, insisting to the people who made the hack that it does something something that it cannot actually do does not make a very good impression.
I did not make up the canon guy...you've called me a lier again....and i don't appreciate it...No I didn't. I said it was one of several possible explanations, and explicitly said I didn't think it was the most likely.
i don't believe i was "insisting" anything...i just said that it seems to be possible...... after the people who actually made the hack told you it was not.
I did not make up the canon guy...you've called me a lier again....and i don't appreciate it...No I didn't. I said it was one of several possible explanations, and explicitly said I didn't think it was the most likely.Quotei don't believe i was "insisting" anything...i just said that it seems to be possible...... after the people who actually made the hack told you it was not.
Note that no one is saying it is technically impossible to do, we're just telling you this hack doesn't work that way, and anyone who said otherwise is wrong. Writing to on-board flash isn't hard, but eventually someone would brick their camera and get all pissed about it, regardless of how many warnings and disclaimers were put up. Plus developers would be at a high risk of bricking their cameras, which would get expensive real fast. Flash cards are cheap, if you can afford multiple DSLR systems, having enough to dedicate a few to each camera should not be a major burden.
If you just want to stop using the added spot metering and 3200 iso, just delete autoexec.bin from your CF.
I saw somewhere a modified testfir who reverse the state of the boot flag, but I don't see why it can be needed.
Just format your CF will bring you to a point where near nothing except the boot flag is still modified.
lglass, just FYI if your 40D doesn't have the bootflag on, having the autoexec.bin in the CF isn't going to do anything else than some few kilobytes lying on the CF.
You can mix your card without problem, except if you have also modded your 40D (And I dunno if it is possible, I am lazy to check the wiki)
Another AUTOEXEC.BIN and sources:
http://www.filefactory.com/file/a13hg3d/n/autoexec_low_iso100_autoiso_20091222.rar (http://www.filefactory.com/file/a13hg3d/n/autoexec_low_iso100_autoiso_20091222.rar)
It's AUTOEXEC.BIN.20090913 from http://code.google.com/p/400d/downloads/list (http://code.google.com/p/400d/downloads/list) with added autoiso in Av and P modes. To activate autoiso turn "shoot without CF" ON (after activation, sometimes you have to press print button once), and if you need to change other additional functions turn it off. Auto Compensation doesn't work right when switching from 80 and lower to 200 and higher, so iso 80 and lower is disabled.
12.22.09: Updated autoexec.bin
Can it work together with other function? Because once i set Auto ISO, i can't set the Focus Framing & Spot Metering.
Another AUTOEXEC.BIN and sources:Sorry for my bad English.
http://www.filefactory.com/file/a13hg3d/n/autoexec_low_iso100_autoiso_20091222.rar (http://www.filefactory.com/file/a13hg3d/n/autoexec_low_iso100_autoiso_20091222.rar)
It's AUTOEXEC.BIN.20090913 from http://code.google.com/p/400d/downloads/list (http://code.google.com/p/400d/downloads/list) with added autoiso in Av and P modes. To activate autoiso turn "shoot without CF" ON (after activation, sometimes you have to press print button once), and if you need to change other additional functions turn it off. Auto Compensation doesn't work right when switching from 80 and lower to 200 and higher, so iso 80 and lower is disabled.
12.22.09: Updated autoexec.bin
Sorry for my bad English.Shuter speed set points was set to 100-200 in autoiso:
I have looked the program listing responsible for function AutoISO. (main.c) From it I have understood that for ISO100 and ISO200 the shutter speed varies from 1/100 to 1/200. For ISO400 from 1/30 to 1/125. For ISO800 from 1/15 to 1/40.
Whether it is possible to make so, what on ISO400 and on ISO800 the shutter speed varied from 1/100 to 1/200?
I have a slight problem, I use 2 CF cards now. and I both formatted them when I bought the new one, so I lost functionality of the hack. Now, when I made the Cf bootable and put in the new autoexec.bin, the camera does not work with that CF, while it works with the newly formatted one. What do I do to put back the hack?
I have a slight problem, I use 2 CF cards now. and I both formatted them when I bought the new one, so I lost functionality of the hack. Now, when I made the Cf bootable and put in the new autoexec.bin, the camera does not work with that CF, while it works with the newly formatted one. What do I do to put back the hack?
Check the size of the CF. The instructions for 4GB (fat16) and > 4GB (fat32) Cards differ, just incase u may have missed that part.
If anybody's interested in autoiso, here is another autoexec:
http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip (http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip)
Minimum shutter speed can be set from Tv or M modes. Shutter speed in those modes will be minimum set point for Av and P (after switch from M or Tv to Av or P). And maximum speed will be minimum + 2/3 .
If anybody's interested in autoiso, here is another autoexec:What does this actually mean?
http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip (http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip)
Minimum shutter speed can be set from Tv or M modes. Shutter speed in those modes will be minimum set point for Av and P (after switch from M or Tv to Av or P). And maximum speed will be minimum + 2/3 .
You will need to go in M or Tv modes only if you want to change lowest shutter speed in auto iso. Software in the camera saves shutter speed value from M,Tv in memory. It will be in memory even if camera is off. Auto iso will read that value and use it as set point.Hello, you guys are great! This is what I always wanted with my beloved 400D!! Auto-ISO!
To turn off auto iso set "shoot without CF" to OFF.
Does the Auto-ISO take into account the focal length?It doesn't. I didn't find where firmware stores focal length.
One idea: could it be possible to set a maximum ISO value?AUTOEXEC.BIN and sources:
I noticed few places where to store settings (in example autoiso in "Shot without CF", Auto Adjust Exposure in PAL/NTSC video format)
Couldn't be useful to destiny the last picture style User3 to store settings?
This way you could store 4 settings also with multiple values.
did you updater the code on google.code, or can you provide it ?
Juste one question for me : How can i Set maximum ISO for the auto ISO mode. I d'ont understand : "So maximum ISO will be: sharpness value * 1/3 stop + lowest shutter set point."
What is "1/3 stop" ?
http://www.filefactory.com/file/a2d83hf/n/autoexec_autoiso_2010-01-21.zip (http://www.filefactory.com/file/a2d83hf/n/autoexec_autoiso_2010-01-21.zip)Hello Sergey,
To set maximum ISO, change contract and saturation values in User3.
Contrast values:
-1 100
0 200
1 400
2 800
3 1600
4 3200
Use saturation values from 0 to 4 to set how many times you want to increase main ISO to the next higher value.
Example: contrast 2 and saturation 1 will set ISO 1000.
Then switch to Tv or M mode and back to Av or P. You will see your max ISO as ISO value.
I didn't see that problem until i pulled the battery out. To clear it, i had to turn AutoISO off and on. Print button in M or TV mode will clear it too.Hello, I did pull the battery out, put it back in, and now it works. Great!
If anybody's interested in autoiso, here is another autoexec:
http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip (http://www.filefactory.com/file/a19a8ah/n/autoexec_autoiso_20100112.zip)
Minimum shutter speed can be set from Tv or M modes. Shutter speed in those modes will be minimum set point for Av and P (after switch from M or Tv to Av or P). And maximum speed will be minimum + 2/3 .
I didn't see that problem until i pulled the battery out. To clear it, i had to turn AutoISO off and on. Print button in M or TV mode will clear it too.Hello, I did pull the battery out, put it back in, and now it works. Great!
By the way, when your firmware is running, spot metering does not work in AV anymore, but only in TV.
I tested this release and did as you wrote. I set Max ISO to 800 for example (Contrast = 2, Saturation = 0), went to P, back to Av. Display showed ISO 800. Then I metered on something bright, ISO on display switched to ISO 100 as it should. But when I take the photo, it shows ISO 800 in the review. I think the saved ISO is wrong though (versus the real ISO of the picture), since the shutter speed and aperture in the saved photo are as metered just before taking the picture, only the ISO is at 100. But if ISO were really 800, to photo would have been overexposed.
When I meter on something dark, ISO does not go beyond 800, so this part works.
I hope this can be of any help.
I know, but the bootloader is not even on the CF card, but on the camera. I want to flash the bootloader back to original state.
the change and continue running even looking for a file on the CF card.
I know, but the bootloader is not even on the CF card, but on the camera. I want to flash the bootloader back to original state.
the change and continue running even looking for a file on the CF card.
Flash again with the Canon original Firmware.
I know, but the bootloader is not even on the CF card, but on the camera. I want to flash the bootloader back to original state.
the change and continue running even looking for a file on the CF card.
Flash again with the Canon original Firmware.
Others have reported that does not restore the boot flag.
Update.
1) Tried Windows Vista Business 32 bit
2) Disable Antivirus
3) Clear Camera setting
Same result.
Update.
1) Tried Windows Vista Business 32 bit
2) Disable Antivirus
3) Clear Camera setting
Same result.
Update.
1) Tried Windows Vista Business 32 bit
2) Disable Antivirus
3) Clear Camera setting
Same result.
Hey there,
could you please test the attached version for your problem?
I have rewritten the procedures initializing the mod of Sergei. Original version see http://chdk.setepontos.com/index.php/topic,3290.msg46593.html#msg46593 (http://chdk.setepontos.com/index.php/topic,3290.msg46593.html#msg46593).
All features work as always, but no more memory interruptions should occur, freezing the cam.
As stated earlier, I was not able to even get a preview of more than 300 pics. Now, using my version, I can copy up to 7.5gb of pics at once, with no freezes at all! (Well, that's the size of my card, so no more pics possible :) )
Maybe this also solves your problem.
I have installed your version.
Fixed the problem of using Eos utility for more than 300 pics.
But when used, i get an ERR 99 after a few continues pictures.
Seems like it interferes with the buffer, only the first pic of the series is saved on the card.
Hope you can check and fix this bug.
thanks!
:-)
Thanks fabian.off & M.G for the testing,was too excited with my 400d shooting 8)
Currently I am using the AutoISO autoexec from Sergei, and would like report one bug.
http://www.filefactory.com/file/a2207h9/n/autoexec_autoiso_2010-02-08.zip (http://www.filefactory.com/file/a2207h9/n/autoexec_autoiso_2010-02-08.zip)
If the AutoISO is enabled, the pictures in the buffer will never transfer to CF card if you use other preset mode eg Auto, Portrait, Landscape, Sports, Macro, Night view, Non-flash. The red light keeps going and it will only transfer to CF card if you change back any other manual mode eg. AV, TV, M, P, A-DEP
Anyone encounter the same problem?
Thanks fabian.off & M.G for the testing,was too excited with my 400d shooting 8)
Currently I am using the AutoISO autoexec from Sergei, and would like report one bug.
http://www.filefactory.com/file/a2207h9/n/autoexec_autoiso_2010-02-08.zip (http://www.filefactory.com/file/a2207h9/n/autoexec_autoiso_2010-02-08.zip)
If the AutoISO is enabled, the pictures in the buffer will never transfer to CF card if you use other preset mode eg Auto, Portrait, Landscape, Sports, Macro, Night view, Non-flash. The red light keeps going and it will only transfer to CF card if you change back any other manual mode eg. AV, TV, M, P, A-DEP
Anyone encounter the same problem?
Try this AUTOEXEC.BIN. I think i got that error corrected.
http://www.filefactory.com/file/b131f71/n/autoexec_autoiso_2010-04-20.zip (http://www.filefactory.com/file/b131f71/n/autoexec_autoiso_2010-04-20.zip)
I was trying to understand why camera was freezing and replaced two files (entry.S, init.c) with earlier version from Thaibv's AUTOEXEC.BIN. Looks like everything works now.Update.
1) Tried Windows Vista Business 32 bit
2) Disable Antivirus
3) Clear Camera setting
Same result.
Hey there,
could you please test the attached version for your problem?
I have rewritten the procedures initializing the mod of Sergei. Original version see http://chdk.setepontos.com/index.php/topic,3290.msg46593.html#msg46593 (http://chdk.setepontos.com/index.php/topic,3290.msg46593.html#msg46593).
All features work as always, but no more memory interruptions should occur, freezing the cam.
As stated earlier, I was not able to even get a preview of more than 300 pics. Now, using my version, I can copy up to 7.5gb of pics at once, with no freezes at all! (Well, that's the size of my card, so no more pics possible :) )
Maybe this also solves your problem.
I have installed your version.
Fixed the problem of using Eos utility for more than 300 pics.
But when used, i get an ERR 99 after a few continues pictures.
Seems like it interferes with the buffer, only the first pic of the series is saved on the card.
Hope you can check and fix this bug.
thanks!
:-)
When you set an ISO value, work with it and enter ISO menu again and don't change the setting- the ISO drops to 100.
But the camera will sometimes hung up when selecting the low ISO by pressing the Direct Print button and requires to reset by removing the battery.Let me know if camera still freezes with this bin.
AutoIso probably reacts on light changes too slow (have to pre-focus few times before it sets right speed). It gets current shutter speed value from LCD screen, which updates with delay and sometimes it will increase/decrease in steps. That's why AutoIso so slow. I can't find any better place to get current shutter speed from. Don't have enough knowledge in disassembly. If anybody know good resources about disassembly in arm feel free to send me a link. Thanks.
If anybody know good resources about disassembly in arm feel free to send me a link. Thanks.
Saturation - next higher value for Maximum Auto ISO
Saturation value - from 0 to 4
ISO Range - 16, 32, 40, 50, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200
Example 1: If Contrast value is -1 (ISO 100), Saturation value is 1, the maximum ISO value is 125. (see ISO Range above)
Example 2: If Contrast value is 1 (ISO 400), Saturation value is 4, the maximum ISO value is 1000. (see ISO Range above)
I cant seem to get the min shutter speed to work in auto iso by following instructions above. Any ideas?AutoIso calculates ISO only when shutter speed is showing on the screen and can change ISO if no buttons is pressed. So you have to press shutter button half way and release it.
The purpose is to set special ISO value since Contrast value cannot do that e.g. If you want to set maximum ISO to 250, contrast value will be -1 and saturation value will be 4.
Saturation - next higher value for Maximum Auto ISO
Saturation value - from 0 to 4
ISO Range - 16, 32, 40, 50, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200
Example 1: If Contrast value is -1 (ISO 100), Saturation value is 1, the maximum ISO value is 125. (see ISO Range above)
Example 2: If Contrast value is 1 (ISO 400), Saturation value is 4, the maximum ISO value is 1000. (see ISO Range above)
I don't really understand what this "next higher value for maximum auto ISO" is. wtm0325, kann you explain this to me? The max auto ISO value, I get, it works pretty well. But if he auto ISO range is already defined by the contrast parameter, what does this "next higher value for max auto ISO" do?
By the way, I am also unable to use the minimum shutter speed: I have the auto ISO on, I'm in P mode, I go to M mode, set the shutter speed to 1/60th, then go back to P mode, and the shutter speed goes to 1/30th and slower...
Also, the auto ISO refuses to use ISOs below 100. Not a big deal though.
This details aside, thank you SO MUCH for this. I've been looking up my emails, and I wanted the auto ISO in the programmable modes and the minimum shutter speed since 2008 already, I can't believe I discovered this hack only 2 weeks ago.
And thanks Sergei, I tried to refocus but it still doesn't work if the ISO is too low.Lower than 100? It will not work if ISO was set manually lower than 100 when AutoISO was enabled.
The purpose is to set special ISO value since Contrast value cannot do that e.g. If you want to set maximum ISO to 250, contrast value will be -1 and saturation value will be 4.
I cant seem to get the min shutter speed to work in auto iso by following instructions above. Any ideas?AutoIso calculates ISO only when shutter speed is showing on the screen and can change ISO if no buttons is pressed. So you have to press shutter button half way and release it.
Hello All,
I'm new here. I tried out the firmware hack and found it worked pretty much as you stated, thank you so much. I found only the AEB does not seem to work correctly as for the number of shots, it does not matter what I setup in the Sharpness value to modify the number of bracketed shots; I only got 3 shots but the AEB values works fine (AEB values based on Color tone value). Did any of us here successfully tried this? I'm not sure what I missed but your help would be very much appreciated. I'm very interested in this modified AEB to get a wider range of exposure for HDR images.
Thanks again.
Steve
Hello All,
I'm new here. I tried out the firmware hack and found it worked pretty much as you stated, thank you so much. I found only the AEB does not seem to work correctly as for the number of shots, it does not matter what I setup in the Sharpness value to modify the number of bracketed shots; I only got 3 shots but the AEB values works fine (AEB values based on Color tone value). Did any of us here successfully tried this? I'm not sure what I missed but your help would be very much appreciated. I'm very interested in this modified AEB to get a wider range of exposure for HDR images.
Thanks again.
Steve
As far as I am aware this hack only allows you to change the value of the AEB exposure and not the number of AEB shots which is set by Canon at 3. There is a post above which proposes a way of altering the number of AEB shots but it is only that........a proposal. Maybe a future version will incorporate it.....that's my understanding at least.
hello, no one said nothing so i'm asking again if you please could make a option for the timer.
you all know the timer is 10 seconds, so i'm asking if you could change the timer to select 2s, 5s, 10s or 2s, 10s.
thx in advance
and please do define this "Safety Shift" :D
hello, no one said nothing so i'm asking again if you please could make a option for the timer.
you all know the timer is 10 seconds, so i'm asking if you could change the timer to select 2s, 5s, 10s or 2s, 10s.
hello, no one said nothing so i'm asking again if you please could make a option for the timer.
you all know the timer is 10 seconds, so i'm asking if you could change the timer to select 2s, 5s, 10s or 2s, 10s.
thx in advance
This is a quote from a review of the EOS 1D MKIII camera and it would indicate that it is the ISO that is changed not the shutter speed when using Safety Shift.
QUOTE
Safety Shift is another new feature designed to keep exposures correct. ISO speed safety shift is provided via C.Fn I 8-2. If the correct exposure cannot be obtained with the P, Tv, or Av mode, the ISO speed is automatically shifted within ISO 100 - 3200 to obtain the correct exposure.
UNQUOTE
I'm assuming that Sergei has unlocked/enabled the same feature for the 400D (but not via Custom Functions) and it looks like a good substitute for AUTOISO
I'll give it a whirl.
i tried to hack my 400d but my camera doesn't work now :( lcd doesn't display anything. how can i fix this?
Hello- I just tried installing the hack per the instructions on page 26, but I seem to have bricked my camera.
I have tried formatting the card and installing the .fir firmware file to the card, but still nothing. I'm not sure what updater tool you're talking about. I connected the camera to the USB port, but I can't copy the .fir file to the camera that way. Thanks for the help.
Canon EOS 400D hack.
Summary of new features:
1. Maximum ISO value (From 1600 to 3200)
2. Customizable ISO value (ISO 16, 32, 40, 50, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200)
3. Spot Metering
4. Auto ISO function in A-DEP, M, AV, TV, P mode
5. Customizable Shutter Speed
6. Customizable AEB value (+-2.3EV, +-2.7EV, +-3.0EV, +-3.3EV, +-3.7EV, +-4.0EV, +-4.3EV, +-4.7EV, +-5.0EV)
7. Factory Menu
8. Focus Frame pattern
Canon EOS 400D hack.
Summary of new features:
1. Maximum ISO value (From 1600 to 3200)
2. Customizable ISO value (ISO 16, 32, 40, 50, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200)
3. Spot Metering
4. Auto ISO function in A-DEP, M, AV, TV, P mode
5. Customizable Shutter Speed
6. Customizable AEB value (+-2.3EV, +-2.7EV, +-3.0EV, +-3.3EV, +-3.7EV, +-4.0EV, +-4.3EV, +-4.7EV, +-5.0EV)
7. Factory Menu
8. Focus Frame pattern
excuse me sir,
If No mount any lens in 400D, it is "F00" in screen. And it can't chang the "F00" value by "AV" model at that time.
Is it impossible to add a funtion: when no lens mounted, the 400D can chang the "F00" such as a len mounted?
......
what is that I means is that:
when mounted a OLD lens which use Manual-focus only, It can not speak a Warning sound form the 400D when on foucs.
if a crack can Cheat the 400D did not distinguish whether the lens mounted or not, or mounted forever, the 400D would auto AF Confirm when use Manual-focus on foucs by old lens without a Electronic-Transfer-Ring.
......
If that a software way to Hack Canon EOS 400D to confirm focus with all lenses, permanently?
HELLO.
New forum member here, and lover of this XTi patch.
It's been working great, giving me the expanded iso I was hoping for.
A couple questions though.... I hope someone can help.
I learned that I can not delete the AUTOEXEC.BIN from my card ever because then the patch does not work. Correct?
Well now, after I shoot some pics and take them off of my card, I can't seem to clear the storage space after removing them.
The files don't appear to be on the CF anymore, but I have limited frames left, as if the card is still full.
If I format, well, then I lose the AUTOEXEC.BIN, correct?
How can I clear space on my card and keep the .bin file in place?
This is probably really simple, and I am just overlooking it.
Canon EOS 400D hack.
Can you give some example which canon lens that we can mount?
what is that I means is that:
when mounted a OLD lens which use Manual-focus only, It can not speak a Warning sound form the 400D when on foucs.
I know, but the bootloader is not even on the CF card, but on the camera. I want to flash the bootloader back to original state.
the change and continue running even looking for a file on the CF card.
Flash again with the Canon original Firmware.
Others have reported that does not restore the boot flag.
This really don't change bootflag, tryed it last night and camera stil reads fw from card when powered on.
Unlock Guide:
...
6. download cardtricks 1.45 : http://chdk.setepontos.com/index.php/topic,4214.0.html (http://chdk.setepontos.com/index.php/topic,4214.0.html) (first download link). Run it to self extract the archive. Run the binary extracted, choose CF drive, tick "cf boot sector" and then click "make bootable."
dev=/dev/sdb1
echo EOS_DEVELOP | dd of="$dev" bs=1 seek=43 count=11
echo BOOTDISK | dd of="$dev" bs=1 seek=64 count=8
4,5,6. Auto ISO function in A-DEP, M, AV, TV, P mode / Customizable Shutter Speed and AEB value
+-flags--+-offset-+-length-+--name--------------------+
0x127ca8: 0x0008 0x000220 0x01b040 BIND_RESOURCE
0x127cd0: 0x0003 0x01b260 0x35c9a0 MAIN_FIRMWARE
...
python ofir_tool.py -v -x 2 ../firmware/400d_111.fir
Fir_tool 0.6 for 5D/30D/400D (11Nov2010)
fileLen = 0x4ae26a
---.fir header---
0x000: modelId = 0x80000236, (400D / Rebel XTi, VxWorks)
0x010: version = 1.1.1
---ciphered part (xor)---
xor_decoding [0x20-0x4ae26a]... OK (0236_111_firmware.bin)
0x020: checksum = 0xe355c059
0x024: updater offset = 0x30
0x028: firmware pack offset = 0x127c90
0x02c: = 0x0
0x030: ---updater---
0x127c90: ---firmware---
0x127c90: (+0x000) firmware checksum = 0xea5228c2
0x127c94: number of files in the pack = 13
0x127c98: offset to the file table = 0x18 (from 0x127c90)
0x127c9c: header size = 0x220 (from 0x127c90). end of header = 0x127eb0
0x127ca0: size of file table = 0x208
0x127ca4: size after table = 0x3863ba
0x127c88: (+0x018) files table
+-flags-+-offset-+-length-+--name--------------------+
0x127ca8: 0x01 0x0008 0x000220 0x01b040 BIND_RESOURCE
0x127cd0: 0x02 0x0003 0x01b260 0x35c9a0 MAIN_FIRMWARE
0x127cf8: 0x03 0x0004 0x377c00 0x000004 ModelID
0x127d20: 0x04 0x0004 0x377c04 0x000005 FirmwareVersion
0x127d48: 0x05 0x0004 0x377c09 0x00000a ICUVersion
0x127d70: 0x06 0x0004 0x377c13 0x0001f8 FileSizeTable
0x127d98: 0x07 0x0004 0x377e0b 0x001b69 LensNameTbl
0x127dc0: 0x08 0x0004 0x379974 0x000094 LensPOTbl
0x127de8: 0x09 0x0004 0x379a08 0x000f2c AdjWbFix
0x127e10: 0x0a 0x0004 0x37a934 0x00469a CrwParam
0x127e38: 0x0b 0x0004 0x37efce 0x00722c FlavorLutParam
0x127e60: 0x0c 0x0004 0x3861fa 0x000218 ColorAdjustDefaultAngel
0x127e88: 0x0d 0x000b 0x386412 0x0001c8 EEP
0x127eb0: (+0x220) end of table, first file
writing 0236_111_02.bin [0x1b260-0x377c00]. size=0x35c9a0/3525024
@xtiuser,OK, found it, 1.1.1 firmware is loaded at 0xff810000.
and I updated my tool to extract a patch from the update, please find file attached
I fixed that bug. Links to files in my previous post have been updated. User Def. 3 doesn't have to be changed anymore.
Been over at the ExifTool forum for the past few days working on a fix for the swapped FocusDistanceUpper and FocusDistanceLower tags in the EXIF data caused by a bug in the programming in the EOS 400D / Digital Rebel XTi / Kiss Digital X. My username there (and most places on the web) is Philnick. I'd change it here to Philnick as well, but the board's software doesn't appear to allow changing one's username.
If Upper is less than Lower, Adobe's - and probably everyone else's - programs can't figure out the focus distance. Swapping them back makes Adobe's programs, at least, able to figure that out.
I attach a one-line batch file that tells ExifTool, which is a command-line utility, to look at those values in every file in the currrent folder and every folder under it, and if Upper is smaller than Lower, to swap their contents and rename the original as a safety copy, adding "_original" to the end of the extension (.CR2 will become .CR2_original on the safety backup). I came up with a three-pass routine that Phil Harvey, who wrote ExifTool and runs its discussion forum, boiled down to one very elegant step.
Since ExifTool makes a duplicate of all the files it fixes, you need to have as much free space on the drive as your photo files currently occupy. Once you've checked that the new versions work, you can use Windows Explorer to sort each folder by file type to group the backup files to make it easy to block and delete them to reclaim the space.
If you don't have quite that much free space available, you can work on one branch of your tree at a time, putting SwapFD.bat into the top of a branch and running it there. Once you've deleted the safety backups in one branch to reclaim the space, you can move on to another branch.
ExifTool, which has been called "The Pan Galactic Gargle Blaster" (google it) of metadata utilities, is freeware available here:
http://www.sno.phy.queensu.ca/~phil/exiftool/index.html (http://www.sno.phy.queensu.ca/~phil/exiftool/index.html)
These instructions are for Windows, but there's a Mac OS X version there also.
1) Create a folder called ExifTool in your Downloads folder (What? You don't have one? How do you ever find your downloads? Make one right now!)
2) Download the zip file into the ExifTool folder.
3) Unzip it and make a copy of the file named ExifTool (-k).exe.
4) Rename the copy simply ExifTool.exe.
5) Copy ExifTool.exe into your Windows directory.
6) Download the attached batch file, which is called SwapFD.bat, into the ExifTool folder.
7) Make a test copy of a small branch of your photo folder tree and put it outside your photo folder tree.
7) Copy SwapFD.bat into the topmost folder of that new branch.
8) In Windows Explorer, click (or double-click, depending on your settings) on the copy of SwapFD.bat in the top of that branch.
A command window will open up with the contents of SwapFD.bat displayed. Nothing will appear to happen for a little while, and then the command window will close. That means ExifTool has finished processing all of those files.
9) Have Bridge navigate to that new branch, and you'll see that your photos now show a Shooting Distance in the Metadata panel, information that will also be available inside Adobe Camera Raw and Photoshop to any processes that can use it.
10) If that was successful, you can delete the copied branch and copy SwapFD.bat into the top folder of your photo file tree.
11) Make sure that you have enough free space to let you temporarily double the size of the branch you're working on. If you're working on just a branch, put SwapFD.bat into the top of that branch and run it there. Once you've deleted the safety backups in one branch to reclaim the space, you can move on to another branch. Leave SwapFD in the branches you've fixed so you know which ones you've already fixed.
12) Start running SwapFD.bat on your whole photo file tree as you go to bed or go out for the day - it'll take a while.
13) Check that the updated files work properly in Bridge and Photoshop.
14) Delete the files tagged as originals.
15) Once you've fixed all your existing XTi / 400D files, you should create an "incoming" folder for new files and put SwapFD.bat there - and get rid of all other copies in your photo folder tree so you don't start it running by accident. Running it on a new photo shoot should be very quick by comparison to the overnight process for the archive. I just processed a batch of new photos in about a second apiece. Move the processed files out of there as soon as they're processed into a place where you can find them, so the runs you do on each new batch are painlessly fast.
Canon's Digital Photo Professional still won't be able to see the Subject Distance in its lens aberration panel, unfortunately - that I'm still working on.
In the meantime, there's PTLens, a relatively-inexpensive plugin for Photoshop that also does profile-based lens aberration correction (it costs around $25). Apparently that Photoshop CS 5 and Lightroom 3 have the same thing built-in.
canixusI think it's because your Custom Function 01 is set in its 4th setting. I will check if it is possible to fix that.
i cant seem to be able to save the Color temp value by pressing Set.
There are some benefices for ISO 16,32,40,50,80 when it can work fine: prevent using neutral gray filters for long exposure.On those low ISOs shutter speed and aperture combination is same as for ISO100. So it will not make exposure longer.
Yeap. Again the Custom Function 01 - 4th setting is the cause. ThankscanixusI think it's because your Custom Function 01 is set in its 4th setting. I will check if it is possible to fix that.
i cant seem to be able to save the Color temp value by pressing Set.
canixus you shouldn't be using the Custom Function 01 in its 4th setting - Cross Keys: AF frame select to work this function/hack
and to see it (flashing for a ms in place of the shutter speed when you change the ISO) you must be focusing/metering while looking in the viewfinder or it just changes it without displaying anything in the viewfinder
hope that helps
- maybe AE comp can also be omitted, as we have it available via buttons, so no need for duplicated functionality here, like for instance with Flash compensation, that is available via menu only
- show ISO in viewfinder resets to Off after turning the camera off; I think it could be set permanently to On and removed from Disp menu; anyway, it would be great if it could be made available in Av and P mode also ....
- if it's possible, make change of flash comp. and AEB comp with left/right only, without AV button to change sign; it's slightly uncomfortable this way
And another whish: after taking a shot, print + zoomin button can enlarge picture on the LCD, so you can check the focus. Unfortunatelly, with CHDK, this also changes ISO the same time. Is there a way to avoid this ? I'm frequently using this camera functionality to check the focus, so I have to correct ISO after that every time
Thanks
- if it's possible, make change of flash comp. and AEB comp with left/right only, without AV button to change sign; it's slightly uncomfortable this way
But, at the end I also noticed that it's not possible to set spot mettering with print button.I updated my last post with new files.
I think there is limitation for the 3 versions: can't choose under 1600iso with print button ! Possible to put and see 3200iso, with left/right buttons, but I discover lower iso in Exif !
I think there is limitation for the 3 versions: can't choose under 1600iso with print button ! Possible to put and see 3200iso, with left/right buttons, but I discover lower iso in Exif !Try this one:
ISO 100 R G B ----------------------------- 250 1 0 0 251 1 0 0 252 23 1 1 253 136 6 0 254 529 13 18 255 1973 70 82 256 5436 227 247 257 11967 671 796 258 22533 1759 1783 259 36875 3588 3678 260 55747 6058 6586 261 78400 9602 10310 262 101078 12720 12444 263 120245 16985 16542 264 115447 21134 24213 265 116272 25825 31338 266 130488 32559 39532 267 121353 38371 47997 268 109017 44420 56768 269 94341 52227 64020 270 77814 61037 67260 ISO 125 R G B ----------------------------- 250 32 1 0 251 0 0 0 252 142 3 2 253 545 8 21 254 0 0 0 255 1953 45 55 256 5430 172 221 257 12343 603 726 258 2 0 0 259 23429 1647 1837 260 39032 3324 4042 261 4 0 0 262 58358 6039 7405 263 80773 9812 11677 264 102978 13029 13791 265 3 1 1 266 121904 18057 18503 267 117834 23154 26855 268 6 1 2 269 118430 27954 34427 270 134565 35561 42972 ISO 160 R G B ----------------------------- 250 0 0 0 251 117 1 3 252 0 0 0 253 619 8 13 254 2119 46 62 255 0 0 0 256 5726 198 206 257 0 0 0 258 12821 643 730 259 24004 1606 1860 260 1 0 0 261 38904 3502 4052 262 3 0 0 263 57672 6479 7200 264 79866 10132 11480 265 1 0 1 266 102047 13440 13746 267 1 0 1 268 121572 18218 18040 269 119517 22902 26050 270 3 0 0 |
I think there is limitation for the 3 versions: can't choose under 1600iso with print button ! Possible to put and see 3200iso, with left/right buttons, but I discover lower iso in Exif !Try this one:
http://www.mediafire.com/?dnngy94dtgnjjp6 (http://www.mediafire.com/?dnngy94dtgnjjp6) autoexec_2010-11-30.rar
Yes, higher that 1600 ISO is only a software overexposure: we can obtain the same result (exposition of 3200 ISO) if applying +1 IL to 1600 ISO Raw file with software like Adobe Lightroom ! But I don't know with intermediate ISO between 100 and 1600 ISO.
Any comment about my analisys of non.standard ISO values in the previous post?
Please, I have two remarks:With AUTOEXEC.BIN from autoexec_2010-11-30.rar you should see K on the screen if white balance was set from info screen.
- How to know what White Balance is used because there is no synchronisation between WB in menu and WB chosen by buttons !?
- When I choose a sensitivity ISO intermediate more 200ISO and I touch the ISO button accidentally or deliberately I risk to reset the sensitivity to 100 ISO ! I think it will be better if it reset to the nearest ISO sensitivity !?http://www.mediafire.com/?fjaf266j7jao2l4 (http://www.mediafire.com/?fjaf266j7jao2l4) autoexec_2010-12-01.rar
Any comment about my analisys of non.standard ISO values in the previous post?Yes, higher that 1600 ISO is only a software overexposure: we can obtain the same result (exposition of 3200 ISO) if applying +1 IL to 1600 ISO Raw file with software like Adobe Lightroom ! But I don't know with intermediate ISO between 100 and 1600 ISO.
The real utility is for Jpeg files.
Please, I have two remarks:With AUTOEXEC.BIN from autoexec_2010-11-30.rar you should see K on the screen if white balance was set from info screen.
- How to know what White Balance is used because there is no synchronisation between WB in menu and WB chosen by buttons !?
I took some research using dcraw in "document mode" and small program I wrote a while ago which can make a sort of numerical histogram of the raw data. Unfortunatell, it turned out that real hardware ISO setting are only those that can be chosen from camera ISO menu - 100, 200, 400, 800, 1600. Other settings (125, 160, 250 ... 3200) are just software scaled, so they are of real use only for jpeg-s. Look for instance distribution of raw levels 250-270 for ISO 100, 125 and 160. Histogram of ISO 100 is continuous, while histogram of 125 and 160 have holes inside, that are evidence of software scaling
XTiUser, last version of autoexec.bin corrects 2 small issues regarding menu behaviour that canixus noted, it doesn't add new features
I was thinking about ISO and direct print button in the meantime - since it seems that this feature isn't useful to part of 400D owners, that are shooting raw, as it can be obtained in raw developer software, what about adding an option to Info menu to have this functionality enabled or disabled ? Those who don't need this functionality (like me) could disable it, so that ISO can't be accidentally changed by pressing the DP button.
Other option would be to have this functionality enabled only in camera ISO menu (it also works there now) - You press ISO button, select for instance ISO 400, press DP once, then exit menu with shutter half press and voila - ISO 500 set
Any comments about this ?
To Sergei: It will be wonderful if you can create a new screen containing added functions, by pressing Jump button at the place of the classic "Info screen" !?I don't know how to create a new screen. All what i was able to do, just to change existing line in info screen.
thank you all.
(2) Can I get a response to my idea about using the main dial to select focus patterns? I've posted that suggestion twice to dead silence in response. If you can't isolate and use the output of the main dial, just say so and I'll stop bugging you about it.I have no idea if it is possible.
About disabling DP for changing ISO, I just asked for opinion about adding an option into Info screen to have this functionality enabled or disabled (like flash on/off, AF assist beam on/off etc). I'm aware that some of you need it, but some of us don't. For instance, I sometimes intentionally underexpose a photo to avoid blowing of highlights, so picture on LCD is darker than final picture, after processing in PSRight now i have no place to store settings so they don't get cleared after power cycle.
Right now i have no place to store settings so they don't get cleared after power cycle.
Hate to post a dumb question like this, but what can I use on an XP machine to open an .rar file? WinZip just wants to add it to a new archive, rather than open it as an archive itself!
http://www.mediafire.com/?2nxtjmbhkjk4ldw (http://www.mediafire.com/?2nxtjmbhkjk4ldw) autoexec_2010-12-07.rarVery Good work Sergei ! Tested yesterday. Thank you.
I couldn't get the dial work with custom AF patterns, so i split pattern selection. Use left, right, up, bottom and DP (for center) to change pattern.
Added "DP for changing ISO" in info screen.I probably should name it as "Non-Standard ISO".
I was, however, surprised to find that the Set key had become a "Playback" buttonThe Set button should just bring you to main menu from custom AF menu. It was not used in AF selection. Unless you pressed it twice, then it will do what was set in Custom Function #1.
I don't think i can add anything more to the hack.
* Minimum shutter speed can be set from Tv or M modes. Shutter speed in those modes will be minimum set point for Av and P (after switch from M or Tv to Av or P).i observed that the shutter time from M and Tv have different values, they are probably stored in different registers. For example you can have the exposure time set to 1/200 for Tv and when you switch to M mode you will have something different.
AutoIso probably reacts on light changes too slow (have to pre-focus few times before it sets right speed). It gets current shutter speed value from LCD screen, which updates with delay and sometimes it will increase/decrease in steps. That's why AutoIso so slow. I can't find any better place to get current shutter speed from. Don't have enough knowledge in disassembly. If anybody know good resources about disassembly in arm feel free to send me a link. Thanks.I think you have tried to much to make a perfect autoiso for all modes. You said that the delay of exposure time on the LCD is the main impediment for making a fast (usable) AUTOISO.
I don't think i can add anything more to the hack.1) like i said, a simple autoiso only in M mode will be perfect.
i observed that the shutter time from M and Tv have different values, they are probably stored in different registers. For example you can have the exposure time set to 1/200 for Tv and when you switch to M mode you will have something different.AutoISO function uses shuter speed value which was displayed on lcd in Tv or M modes, not saved value, to set min. shuter speed.
so your affirmation can't be correct
So why you don't you try make the AUTOISO usable only with M mode ? The exposure time and apperture will be fixed then, you only need to calculate the ISO.I didn't find where to get measured light value from light meter to calculate ISO.
2) how about focus bracketing ?I don't think i can add focus bracketing.
I don't think i can add anything more to the hack.
Is this The-End ? ???
Perhaps this is the right moment for a little bit of feedback:
- Additional ISO values: I exclusively shot RAW, thus, this feature is not useful to me.
- Spot metering: a great feature, could not be happier with my camera now.
- Factory menu: just interesting.
- Focus frame pattern: I mostly use the central focus point, and just occasionally one of the others; I personally do not like having more than one focus point active.
- Extended Av compensation: as long as the meter on the viewfinder can only display +/-2EV, I cannot figure out how to benefit from this feature.
- Extended FLASH compensation: a great feature; with a fast lens and the flash set to -4EV to -6EV, I have just rediscovered the integrated flash.
- Extended AEB: I use three shots at 2EV when hand-holding the camera, and many more at 1EV when using a tripod. Having a wider separation is not that useful to me; now, having more than three shots would be great.
- Safety shift: another great feature.
- Shutter count: just interesting.
- ISO in viewfinder: very interesting, but perhaps needs a bit of polishing to become perfect.
- Color temperature: I shot RAW and do the white balance during post-processing, but this sounds great.
- Flash / AF assist beam: This can be set somewhere else, so I do not find them very interesting. And, speaking of such duplicated settings, mirror lock-up is way too hidden in the menus, and I use it quite frequently; having a faster access to that setting would be great.
- RAW at AUTO: I never shot AUTO.
- AUTO-ISO: I personally do not find this interesting at all.
As I said in a previous post: thank you very much for your efforts.
AutoISO function uses shuter speed value which was displayed on lcd in Tv or M modes, not saved value, to set min. shuter speed.I know that I can see different exposure time values for Tv & M mode on my LCD. I retested this 1 minute ago to be sure , i set 1/50 for Tv and 1/400 for M, and when i switch from M to Tv or from Tv to M , they remain 2 different values on my LCD.
I didn't find where to get measured light value from light meter to calculate ISO.very bad news then :(
Perhaps this is the right moment for a little bit of feedback:
- Additional ISO values: I exclusively shot RAW, thus, this feature is not useful to me.
- Spot metering: a great feature, could not be happier with my camera now.
- Factory menu: just interesting.
- Focus frame pattern: I mostly use the central focus point, and just occasionally one of the others; I personally do not like having more than one focus point active.
- Extended Av compensation: as long as the meter on the viewfinder can only display +/-2EV, I cannot figure out how to benefit from this feature.
- Extended FLASH compensation: a great feature; with a fast lens and the flash set to -4EV to -6EV, I have just rediscovered the integrated flash.
- Extended AEB: I use three shots at 2EV when hand-holding the camera, and many more at 1EV when using a tripod. Having a wider separation is not that useful to me; now, having more than three shots would be great.
- Safety shift: another great feature.
- Shutter count: just interesting.
- ISO in viewfinder: very interesting, but perhaps needs a bit of polishing to become perfect.
- Color temperature: I shot RAW and do the white balance during post-processing, but this sounds great.
- Flash / AF assist beam: This can be set somewhere else, so I do not find them very interesting. And, speaking of such duplicated settings, mirror lock-up is way too hidden in the menus, and I use it quite frequently; having a faster access to that setting would be great.
- RAW at AUTO: I never shot AUTO.
- AUTO-ISO: I personally do not find this interesting at all.
As I said in a previous post: thank you very much for your efforts.
As another RAW shooter, I have a slightly different take on this list, particularly the first item:
- I find the additional ISO values feature very useful because of its automatic adjustment of the playback screen's brightness to compensate for the Ev adjustment. Before I had this, I used to manually adjust the screen brightness when I used a -EV setting, so I could see approximately what I was getting. This reduces two steps - one of them buried down in the menu system and not calibrated - to one.
On my new G12, with its dedicated dial for Ev compensation and its Live View screen, I can interactively tweak the brightness of my images, which I found useful this fall in taking foliage shots. This might be an area to explore for the 400D hack, though it wouldn't be live view. At this point, we can use the small ISO increments the same way, though coupling the playback screen brightness to the Ev dial as well as to the ISO expansion would be more intuitive for brightness-tweaking.
- I agree about the value of spot metering - which I'll use when I have a severely backlit subject.
- I like the current implementation of the focus frame system, though I'm not sure how often I'll actually use it. It seems most useful to those shooting sports - I'm mainly a landscape shooter.
- Though I've been a photographer for half a century, I'm an available-light shooter. I've only used flash once in taking a picture, and that was as a "fill light" for a severely backlit subject. I'm actually unclear on what flash compensation does. If it allows you to throttle back the amount of flash to make its effect more subtle, that looks useful for taking event candids, not something I do very often.
- AEB looks interesting for High Dynamic Range use, if varies the shutter speed or ISO while leaving the aperture alone. I've gotten HDR effects by taking advantage of the wider dynamic range of a single RAW file in the first place, importing it at different brightness or exposure settings into different layers and merging the results.
- Safety shift - if it works by tweaking the ISO - looks like an "only when absolutely needed" AutoISO and as such valuable for dealing with unexpected changes.
- I try to set the right color temperature when shooting - I figure this keeps adjustments during post-processing within the useful range.
- RAW at AUTO seems useful if I have to hand the camera to a friend or family member who doesn't really know how to use it.
- AutoISO seems dangerous, so I'm happy simply enabling Safety Shift, if it works by tweaking the ISO when absolutely necessary.
I am also very grateful for the work Sergei has done to make my XTi feel new again.
Dangerous when we can't limit the max ISO. Automatic between 100 and 400 ISO will be a good start.all nikon camera have this setting on autoiso. the 60D is the first Canon camera where you can limit maxiso. 1D mark 4 or Canon 7d don't have this.
"Enabling Safety Shift, if it works by tweaking the ISO when absolutely necessary" is a very good solution. By lack of light, diaphragm and shutter speed stabilize on screen and facilitates the AutoISO calculation ?No, the Safety Shift of the Sergei version is Safety Shift mode 1 from Canon 1Dx or xxD cameras.
- Though I've been a photographer for half a century, I'm an available-light shooter. I've only used flash once in taking a picture, and that was as a "fill light" for a severely backlit subject. I'm actually unclear on what flash compensation does. If it allows you to throttle back the amount of flash to make its effect more subtle, that looks useful for taking event candids, not something I do very often.
- AEB looks interesting for High Dynamic Range use, if varies the shutter speed or ISO while leaving the aperture alone. I've gotten HDR effects by taking advantage of the wider dynamic range of a single RAW file in the first place, importing it at different brightness or exposure settings into different layers and merging the results.
- Safety shift - if it works by tweaking the ISO - looks like an "only when absolutely needed" AutoISO and as such valuable for dealing with unexpected changes.
I am also very grateful for the work Sergei has done to make my XTi feel new again.
Hello everyone.
First I would like to thank Sergei for his excellent firmware and the constant effort then I would like to report a small bug found on the latest version of firmware released (autoexec_2010-12-13a),I think that has not been previously reported :
When the 400d is in M or TV mode AND the flash is open and active, if I use the right/left arrows to change the iso the camera automatically sets the value of time on "bulb".
I hope I was clear, and I apologize for my very rusty English.
From Italy,
Riccardo.
edit:
In Tv mode, the camera sets " 30'' ", not "bulb".
http://www.mediafire.com/?7fwi0xjcss6lr0y (http://www.mediafire.com/?7fwi0xjcss6lr0y) autoexec.bin
http://www.mediafire.com/?1mcwc8akqeh7w21 (http://www.mediafire.com/?1mcwc8akqeh7w21) autoexec_2010-12-13b.rar
Only way i know how to display iso in info bar is to change actual shutter speed. With a flash opened shutter cannot be higher than flash sync speed, which is 1/200. This autoexec.bin will not set shutter to 30" or to bulb, but it will show 200 for ISO when flash is opened.
Hello everybody.
I am new here. Sergei you would be able to help because ISO does not in viewfinder. The firmware hack perfect! I do something badly. Excuse me everybody bad English knowledge.
Attila
Hello everybody.
I am new here. Sergei you would be able to help because ISO does not in viewfinder. The firmware hack perfect! I do something badly. Excuse me everybody bad English knowledge.
Attila
have you tried this version?
http://www.mediafire.com/?sd6z7kzi6p94vbq (http://www.mediafire.com/?sd6z7kzi6p94vbq)
Remember that it runs only with Tv or M. When you see in the viewfinder, see at the time shown inside: clicking on the arrows you will see time, ISO, time, ISO till you press the arrows.Hi All
@Sergei
I would like to propose another change:
if I use the flash compensation with values greater than +2 or -2, in the exif is not reported the exact value but is reported 0. You can correct this little problem or is it impossible?
Thanks again for your time.
Ok Sergei, "c" version is ok for DPP value "Flash Exposure Compensation". This version is very useful and stable.
You have to bring the eye to the viewfinder ...
:D
Thanks eduperez. Never thought about it.
http://www.mediafire.com/?ovib5gc33sc78zm (http://www.mediafire.com/?ovib5gc33sc78zm) autoexec_2010-12-13c.rar
http://www.mediafire.com/?sd6z7kzi6p94vbq (http://www.mediafire.com/?sd6z7kzi6p94vbq) autoexec.bin
@eduperez
I would know exactly how to use the internal flash compensation -4EV -6EV and get benefit. I don't like very well the effect of the internal flash so I would like to know where you prefer to use -4EV and more, maybe in the portrait? If yes how? Thanks in advance for your suggestions.
Thanks Eduperez for your reply, just some other questions:
didn't you satisfy the std negative compensation of -2EV?
at what distance did you put your subjects?
Thanks in advance for your answers.
Kekko 400D
Thanks Edu,
is there some shots with this method somewhere?
I think it is possible to add more options to XTI.It's my cup of tea. (https://chdk.setepontos.com/proxy.php?request=http%3A%2F%2Fwww.canonistas.com%2Fforos%2Fimages%2Fsmilies%2FComplice.gif&hash=4c80b3178507a47ae1570840830b8078)
Hi,
Apologies if this has been asked before but... is it possible that this port of CHDK will allow scripts (timelapse, motion detection) for the 400D eventually?
Cheers
repeater
It is possible but unlikely in near future...
Timelapse is easy to do , i can try to make it.
I have added an automatic intervalometer.
You must configure it in menu and set dp button as a shortcut for it.
After starting you can disable it using main modeswitching knob (just turn it to another position, you will hear confirmation beep).
http://panora.ma/dev/autoexec_2011-01-29_interval.zip (http://panora.ma/dev/autoexec_2011-01-29_interval.zip)
Anybody compiling this on a 64bit machine? I managed to create a build environment, but compilation always fails with a "relocation truncated to fit: R_ARM_PC24 against symbol..." error; I tried the "-mlong-calls" flag, as suggested somewhere else, to no avail. Other people with 64bit machines seems to have the same problem.I cannot answer you on 64 bit machines, but I can tell you how I did it without re-installing a different OS on hard drive.
Wave your hand three times over the IR sensor at the viewer and the shutter is released touch free. You could still handle the camera and leave the feature on.Nice idea, I'll try it on the 550D.
Anybody compiling this on a 64bit machine? I managed to create a build environment, but compilation always fails with a "relocation truncated to fit: R_ARM_PC24 against symbol..." error; I tried the "-mlong-calls" flag, as suggested somewhere else, to no avail. Other people with 64bit machines seems to have the same problem.
Well, the most obvoius place might be http://code.google.com/p/400d/ (http://code.google.com/p/400d/) or maybe github, maybe thaibv or sergei already have some sort of CVS - otherwise it would be possible to make it from scratch and import existing archives as commits (and i can do it).
I am not skilled as release manager, and my english is far from perfection, but I can try it.
Here comes "Update, which I have hoped for years". :xmas
Anybody compiling this on a 64bit machine? I managed to create a build environment, but compilation always fails with a "relocation truncated to fit: R_ARM_PC24 against symbol..." error; I tried the "-mlong-calls" flag, as suggested somewhere else, to no avail. Other people with 64bit machines seems to have the same problem.
same here, i've tried different tricks with no success...
keep us posted if you succeed ;)
I first tried to create 32bit versions of binutils / gcc, but failed... decided to take another path and installed a 32bit Linux inside a virtual machine (QEMU); now I have to create the build environment there.
Well, the most obvoius place might be http://code.google.com/p/400d/ (http://code.google.com/p/400d/) or maybe github, maybe thaibv or sergei already have some sort of CVS - otherwise it would be possible to make it from scratch and import existing archives as commits (and i can do it).That repo seems dead (no updates since Sep 2009!); perhaps the creator is among us and will respond to this post... otherwise I will email him in a couple of days. Then we can create another repo, at Google Code, or somewhere else.
I am not skilled as release manager, and my english is far from perfection, but I can try it.I not a native English speaker, either. Part of my daily job involves being an "internal" release manage; but I would like to be able to (at least) compile the source code, before I even consider myself for the position....
I first tried to create 32bit versions of binutils / gcc, but failed... decided to take another path and installed a 32bit Linux inside a virtual machine (QEMU); now I have to create the build environment there.
i think the problem is not in the bitness of host compiler, i've asked sergei and he sent me a windows and linux toolchains, but the linux one is missing some libs and is not able to compile. i havent tried the windows one, but i believe sergei is compiling on windows...
please share your experience when you compile it in the qemu...
however, extended AEB doesn't seem to work for me. All the frames are taken with the same setting(no change in exposure setting, same shutter speed). I tried 3 frames, 5 frames with 1EV and the results were the same. AEB(not extended AEB) was turned off and I shoot extended AEB using the DP button(also tried pressing timer button then DP button).Have you tried to clear all camera custom functions and settings, delete settigs file from CF card?
Is there any setting I need to change before using the extended AEB function?
Well, the most obvoius place might be http://code.google.com/p/400d/ (http://code.google.com/p/400d/) or maybe github, maybe thaibv or sergei already have some sort of CVS - otherwise it would be possible to make it from scratch and import existing archives as commits (and i can do it).I have no experience in CVS or anything like that, so it will be not much help from me.
I am not skilled as release manager, and my english is far from perfection, but I can try it.
i think the problem is not in the bitness of host compiler, i've asked sergei and he sent me a windows and linux toolchains, but the linux one is missing some libs and is not able to compile. i havent tried the windows one, but i believe sergei is compiling on windows...I use 32bit Ubuntu and 32bit Windows XP.
Well, the most obvoius place might be http://code.google.com/p/400d/ (http://code.google.com/p/400d/) or maybe github, maybe thaibv or sergei already have some sort of CVS - otherwise it would be possible to make it from scratch and import existing archives as commits (and i can do it).
I am not skilled as release manager, and my english is far from perfection, but I can try it.
i asked that question long time ago... but it seems there is no repository for the code...
and now after reading some stuff about sony's DMCA i think gitorious.com is better choice...
here are some quotes from psx-screne forums:
----------
In response to Sony's DMCA takedown notices against PS3 hacker github pages, drizztbsd has mirrored the removed pages.
Click HERE to view the mirrors at Gitorious.
----------
FYI, Gitorious is in Norway. Norway is not in the EU so the EUCD doesn't apply. Any know about the state of copyright circumvention law in Norway?
----------
here is the thread: http://psx-scene.com/forums/f6/ps3-hack-github-backups-now-online-79023/ (http://psx-scene.com/forums/f6/ps3-hack-github-backups-now-online-79023/)
I would not worry about copyright / DCMA issues: this project does not contain copyrighted code (AFAIK, at least), and definitively it is not a circumvention device. Neither CHDK nor Magic Lantern have been contacted by Canon (AFAIK, again). And finally, what interest may have Canon in a old camera?
However, we could have trademark issues; I would avoid any mention to "Canon", "EOS", "400D" or "XTi" in the project name, and be very careful on how we use those terms in the documentation. By the way, "400d" (as in the Google Code site) is probably not a very fortunate name. Other proposals? What about "400Pus"?
Interval is 1EV. I will add some stabilisation time (and settings)...
please share your experience when you compile it in the qemu...Yes, of course; expect a full guide.
su -c "yum -y update"
su -c "yum -y update"
su -c "yum -y install gcc mpfr-devel libmpc-devel"
su -c "mkdir /opt/arm-elf".
wget [url]ftp://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2[/url]
tar xvjf binutils-2.21.tar.bz2
mkdir binutils-2.21-arm-elf
cd binutils-2.21-arm-elf/
../binutils-2.21/configure --srcdir=../binutils-2.21/ --target=arm-elf --prefix=/opt/arm-elf/
make
su -c "make install"
wget [url]ftp://ftp.gnu.org/gnu/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2[/url]
tar -xvjf gcc-4.5.2.tar.bz2
MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES += normal interwork
mkdir gcc-4.5.2-arm-elf
cd gcc-4.5.2-arm-elf/
../gcc-4.5.2/configure --srcdir=../gcc-4.5.2 --target=arm-elf --enable-languages=c --enable-clocale=gnu --disable-libm --disable-libc --disable-threads --disable-nls --disable-libssp --disable-intl --with-dpu=arm9 --with-newlib --prefix=/opt/arm-elf/
su -c "make install"
export PATH=/opt/arm-elf/bin/:$PATH
unzip autoexec_2011-01-30.zip
cd autoexec_2011-01-30
make
As promised:
...
guys, please consider uploading the code to some repository, it seems at least 2 devs are working and we have different versions...
I have been browsing all 43 pages from this thread, looking for old source code, their authors, and the corresponding comments. Unfortunately, most versions from "thaibv" are unavailable; but I managed to download 25 versions from "Foldesa", "Sergei", and "vatoz". Now I must clean, sort, and format the 300-line text file...
guys, please consider uploading the code to some repository, it seems at least 2 devs are working and we have different versions...
Eduperez is working on that:I have been browsing all 43 pages from this thread, looking for old source code, their authors, and the corresponding comments. Unfortunately, most versions from "thaibv" are unavailable; but I managed to download 25 versions from "Foldesa", "Sergei", and "vatoz". Now I must clean, sort, and format the 300-line text file...
guys, please consider uploading the code to some repository, it seems at least 2 devs are working and we have different versions...
Eduperez is working on that:I have been browsing all 43 pages from this thread, looking for old source code, their authors, and the corresponding comments. Unfortunately, most versions from "thaibv" are unavailable; but I managed to download 25 versions from "Foldesa", "Sergei", and "vatoz". Now I must clean, sort, and format the 300-line text file...
I did not want to hurry up and make any mistake that we may regret (like leaving out an old version that cannot be added later). But I see we already have problems with parallel branches; I will have a repository up as soon as possible.
Here we go... "http://code.google.com/p/400plus/ (http://code.google.com/p/400plus/)".
- We needed ONE repository ASAP, and I decided to go ahead an choose the name, hosting, and repository myself. Please, consider this as a temporary solution, until a consensus is reached: we can always rename the project or move it somewhere else later. I will also be willing to transfer the ownership of the project, when required.
- I had to choose a license, and opted for GNUv2 (basically, that means that nobody can distribute an AUTOEXEC.BIN unless they also distribute the source code); but this is not my code, and its legitimate owners should speak and decide themselves.
- That repository contains all versions that I could find or where sent to me (thanks "vatoz" and "0xAF"!); I just did some minimal cleaning prior to the upload, so if there is something you miss there, it is probably lost.
- I still have lots of work pending: change the author, date, and message of each commit, tag the releases, upload the binaries, ...; but at least the source code is all, there and the "trunk" is completely functional.
- Anybody who wants commit access, please get a Google Account (https://www.google.com/accounts/NewAccount (https://www.google.com/accounts/NewAccount)) or a Gmail Account (https://www.google.com/accounts/NewAccount?service=mail (https://www.google.com/accounts/NewAccount?service=mail)) first; then send me a PM, and I will add you to the project.
- @all developers: Please, restrict your changes to the "trunk" for now; and do not commit AUTOEXEC.BIN files to the repository; there will be soon a proper place for them.
- @vatoz: I intentionally left your newest modification out; first because there is a conflict with Sergei's latest version, that you offered to solve, and second because of the bug you have detected.
brilliant work, thanks for your effort !My pleasure.
btw, we can use the wiki of the project to document the functionality in a more clear way...For now, I will limit myself to the source (repository, releases, ...); feel free to get an account and start working on that part, your efforts will surely be welcome.
For now, I will limit myself to the source (repository, releases, ...); feel free to get an account and start working on that part, your efforts will surely be welcome.
Perhaps he has a hidden feature to take a number of his latest photo's and encrypt them and even take their file name off his disk directory.
So they only can be restored when safe at home.
cd /mnt
mkdir gentoo32
cd /tmp
wget http://mirrors.kernel.org/gentoo/releases/x86/autobuilds/current-stage3/stage3-i686-20110201.tar.bz2
cd /mnt/gentoo32/
tar -xvjpf /tmp/stage3-i686-20110201.tar.bz2
cp -L /etc/resolv.conf /mnt/gentoo32/etc/
cp -L /etc/passwd /mnt/gentoo32/etc/
nano /mnt/gentoo32/etc/make.conf
mount -o bind /dev /mnt/gentoo32/dev
mount -o bind /dev/pts /mnt/gentoo32/dev/pts
mount -o bind /dev/shm /mnt/gentoo32/dev/shm
mount -o bind /proc /mnt/gentoo32/proc
mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb
mount -o bind /sys /mnt/gentoo32/sys
mkdir -p /mnt/gentoo32/usr/portage/
mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
mount -o bind /tmp /mnt/gentoo32/tmp
linux32 chroot /mnt/gentoo32 /bin/bash
Now i am in working 32bit chroot..source /etc/profile
env-update
also I recommend you to follow "Code Listing 3.7: creating a new file in /etc/init.d" from original instructions.cd /tmp
wget http://panora.ma/dev/summon-arm-toolchain
bash ./summon-arm-toolchain
PATH=$PATH:/arm-elf-toolchain/bin/
I have been able to prepare working arm-elf-toolchain in chroot under 64 bit gentoo.
Using documentation (http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2 (http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2) ) , latest stage3 instead of version mentioned in the guide...
Is there any where I can read the details for the functions listed in funclist?I think only way to get details is to disassemble original firmware and study the code.
What the output values mean and what values to input to do different things.
I have been able to prepare working arm-elf-toolchain in chroot under 64 bit gentoo.Very nice, much better than a VM... now, if I could find out how to make that on Fedora!
Using documentation (http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2 (http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2) ) , latest stage3 instead of version mentioned in the guide...
[...]
QuoteWave your hand three times over the IR sensor at the viewer and the shutter is released touch free. You could still handle the camera and leave the feature on.Nice idea, I'll try it on the 550D.
I cant get 32 bit vista to pnp the camera threw usb.
I get a dcp connection fail every time.
I am sure drivers are there cus it says so when i ty to put them in again.
I tried in playback mode and also with card unlocked and settings reset.
Does the bin put the camera in usb remote mode?
any thoughts?
(besides getting a real operating system)
I got so much installed and i am a software pack rat lol
Could the 400d have an option to dual boot?
So the second operating system have all the features that cant be put in the camera operating one that we are using now?
Linux and windows mobile should be able to run on an ARM CPU, right or am I missing an important detail?
Instead of controlling it with a desk top computer threw USB it might be interesting to use IR to connect to a palm sized computer like my ASUS MYPAL 632.
I bet astro photographers would like it a lot as it would be much more conducive to working in the field and in the dark.
A palm computer also fits in your camera bag.
From Wikipedia-
"ARM architecture based application processors implement an MMU defined by ARM's Virtual Memory System Architecture."
Added "IR Prox Release". Wave two times in front of IR sensor to take a picture.
http://www.mediafire.com/?r71kqcmh9qchf6d (http://www.mediafire.com/?r71kqcmh9qchf6d) autoexec.bin
http://www.mediafire.com/?2xjn2n0aawkj2g3 (http://www.mediafire.com/?2xjn2n0aawkj2g3) 400plus-20110209.zip
Added "IR Prox Release". Wave two times in front of IR sensor to take a picture.
No touching the camera. Also, you're not stuck turning the delay on and off.
I'm trying it out today. Didn't know sergei would code it that fast!
So what are you planning to do to the core? Optimization?
Would not want to over-commit, but I am planning a full rewrite.
* eduperez: better detection of double-event buttons, and some code clean-up.Hi eduperez! I don't know if you knew, that code was for auto-repeat key action while key held pressed.
switch (pMessage[1])
{ case BUTTON_UP:
case BUTTON_DOWN:
for (t=0;t<5; t++){ SleepTask(100); if (!double_key) break;}
if (double_key) goto repeat;break;
case BUTTON_RIGHT:
case BUTTON_LEFT:
switch(option_number)
{ case 1:
case 2:
case 3:
case 7:
for (;t<2; t++){ SleepTask(150); if (!double_key) break;}
if (double_key)SleepTask(150);
if (double_key) goto repeat;
}
}
Could a few extra shutter speeds be added around 1/30 sec so we can fine tune the look of moving objects?
When I want to get a pic that shows movement, I go to 1/30 sec, but most of the time I need to adjust the speed up and down a little to enhance or decrease the effect to get it just right.
* eduperez: better detection of double-event buttons, and some code clean-up.Hi eduperez! I don't know if you knew, that code was for auto-repeat key action while key held pressed.
Example: You need to increase AV compensation from 0 to 6. Just press and hold right button until av comp gets to 6.
You guys are doing so many amazing things. I am anxious to try installing this hack. My problem is that I don't know whether to use the old instructions and files, or wait until there is a more stable updated verions with new install instructions. Keep up the good work. And Thank you.
[...]Sorry for the misunderstanding: my reader is (still) not broken, but I am precisely trying to avoid breaking it (or the camera!).
Eduperez perhaps you could do something like that also by soldering a CF card to a ribbon cable then to the female CF connection on your old card reader.
I did a quick search and there are places to buy compact flash extender cables.
I didnt see the price but they should be cheap because there isn't much to them, so maybe it would be best just to order one from someone who likes to solder wires.
gphoto2 can't write files on the 550d either. But I was able to compile ptpcam with Mweerden's extensions under Windows, and call some functions from Python.If the camera's PTP does no support uploading of files (all I need is that), then I am lost: I have been browsing those links (thanks!), but adding support to the 400D myself looks like science fiction to me (or just plain fiction, to be more precise).
http://magiclantern.wikia.com/wiki/Remote_control_with_PTP_and_Python (http://magiclantern.wikia.com/wiki/Remote_control_with_PTP_and_Python)
http://www.mweerden.net/chdk_ptp.html (http://www.mweerden.net/chdk_ptp.html)
http://chdk.setepontos.com/index.php?topic=4338.0 (http://chdk.setepontos.com/index.php?topic=4338.0)
Now the big problem is to understand how to use all this stuff... if anyone can figure out, I'm interested too :)
Also, the 5D2 Magic Lantern has some PTP extensions, but I don't know how to use them yet. There are even some debug messages in the 550D ML related to PTP, so the hard work should have been done :)
Well, we just have to figure out how to send some data from a PC program (ptpcam?) to a function from the camera. Then you'll open a file from there and save that data to the card. Sounds simple, but needs a bit of http://esolangs.org/wiki/Brainfuck (http://esolangs.org/wiki/Brainfuck)The code from CHDK_PTP to write a file seems pretty straightforward... but I have no idea how to hook it to the firmware. I have been looking at the functions.txt file, but I am still clueless.
Well, we just have to figure out how to send some data from a PC program (ptpcam?) to a function from the camera. Then you'll open a file from there and save that data to the card. Sounds simple, but needs a bit of http://esolangs.org/wiki/Brainfuck (http://esolangs.org/wiki/Brainfuck)
The code from CHDK_PTP to write a file seems pretty straightforward... but I have no idea how to hook it to the firmware. I have been looking at the functions.txt file, but I am still clueless.
The code from CHDK_PTP to write a file seems pretty straightforward... but I have no idea how to hook it to the firmware. I have been looking at the functions.txt file, but I am still clueless.
chdk implementation looks really clear ;)
.. as long as you know where "add_ptp_handler" and the other functions are (if they are somewhere); or did I miss something?For the IXUS120-SD940 it was pretty painless - stubs_entry.S picked up the correct address. The only other thing needed was to make sure kbd.c was correct with :
#define USB_REG 2
#define USB_MASK (0x00080000);
.. as long as you know where "add_ptp_handler" and the other functions are (if they are somewhere); or did I miss something?For the IXUS120-SD940 it was pretty painless - stubs_entry.S picked up the correct address. The only other thing needed was to make sure kbd.c was correct with :Code: [Select]#define USB_REG 2
#define USB_MASK (0x00080000);
After that, its just worked as part of the standard build.
Would not want to sound obtuse, but there is no mention of the hook functions in our source code; I cannot see how could a compiler link to them.Sorry - didn't notice this is a DLSR. I don't know anything about the development environment for those - I think I read somewhere it was forked from the CHDK core some time ago, so I don't know how you would drag in all the PTP changes added to the main trunk in the last several months.
Would not want to sound obtuse, but there is no mention of the hook functions in our source code; I cannot see how could a compiler link to them.Sorry - didn't notice this is a DLSR. I don't know anything about the development environment for those - I think I read somewhere it was forked from the CHDK core some time ago, so I don't know how you would drag in all the PTP changes added to the main trunk in the last several months.
Yes, as long as you know where "add_ptp_handler" and the other functions are (if they are somewhere); or did I miss something?
Yes, as long as you know where "add_ptp_handler" and the other functions are (if they are somewhere); or did I miss something?
i'm not really sure if there is add_ptp_handler, but i guess if we can find at least one handler which is not so important, like for remote focus control or even less important, we can replace the handler ...
Again, I do not get it... suppose we get the camera to call our code, whenever the remote focus control is activated, suppose we can also activate that control from a computer. Now what? How do we send a file over that?
for( ; handler < _ptp_handlers_end ; handler++ )
{
ptp_register_handler(
handler->id,
handler->handler,
handler->priv
);
}
PTP_HANDLER( 0x9998, 0 )
{
// code here
}
static int ptp_handler_##ID( \
void * priv, \
struct ptp_context * context, \
uint32_t opcode, \
uint32_t session, \
uint32_t transaction, \
uint32_t param1, \
uint32_t param2, \
uint32_t param3, \
uint32_t param4, \
uint32_t param5 \
) \
PTP_HANDLER( 0x9998, 0 )
{
int step = (int) param1;
/* send some focus commands with that step size */
/* which sounds like a remote follow focus */
}
Progress: ptpcam CHDK extension overrides 0x9999. I was able to display a hello world message from "ptpcam --chdk" (after which PTP freezes).
typedef struct {
int code;
int sess_id;
int trans_id;
int num_param;
int param1;
int param2;
int param3;
int param4;
int param5;
} PTPContainer;
struct ptp_msg
{
uint32_t id;
uint32_t session;
uint32_t transaction;
uint32_t param_count;
uint32_t param[ 5 ];
} __PACKED__;
PTPContainer ptp;
memset(&ptp,0,sizeof(PTPContainer));
ptp.code = PTP_RC_OK;
ptp.sess_id = sess_id;
ptp.trans_id = trans_id;
ptp.num_param = 0;
...
data->send_resp( data->handle, &ptp );
struct ptp_msg msg = {
.id = PTP_RC_OK,
.session = session,
.transaction = transaction,
.param_count = 4,
.param = { 1, 2, 0xdeadbeef, 3 },
};
...
context->send(
context->handle,
&msg
);
Progress: ptpcam CHDK extension overrides 0x9999. I was able to display a hello world message from "ptpcam --chdk" (after which PTP freezes).
Some CHDK <--> ML equivalents regarding PTP:
[...]
I know this is way out there and not applicable in the near future but you have inspired an idea.
Have the camera receive data and programs by taking a picture of them.
One might find some future applications for this sort of transfer.
Like driving by a road sign and having your GPS updated.
Or perhaps something easier and more profitable at first, like maybe drive by a Mcdonalds sign on the highway take a pic and you get a free little game to play till you get there.
It could be hidden within a normal image away from human sight or could contain obvious visual icons for use in the program.
Any bodies up to a task like that?
Can you have it done by Friday noon?,lol
just kidding,
but sometime this might happen how long who knows?
I imagine there are thousands of other ways this could be applied that I haven't thought of yet.
What do you think?
Hey, wait! Are you talking about a 500D / 550D or a 400D?
Is possible programming to view in viewfinder or lcd hyperfocal and depth of field.It's probably possible but i don't know how to do it.
Is possible programming to view in viewfinder or lcd hyperfocal and depth of field?
It's probably possible but i don't know how to do it.
Experimental release!
http://www.mediafire.com/?b8th69v3u8q3bcu (http://www.mediafire.com/?b8th69v3u8q3bcu) 400plus-20110306.rar
New dialog menu for custom settings. Press menu, then print button to get in the menu.
Added Self Timer shutter release. Timer can be set from 2 to 30 seconds. Set "DP Button" to "Self Timer" and use print button to activate it from main screen.
Activation of Factory Menu has been changed: Menu, Print button twice, and menu again.Is possible programming to view in viewfinder or lcd hyperfocal and depth of field.It's probably possible but i don't know how to do it.
To eduperez:
I don't want to mess-up your project so i let you decide if you want to add new branch to repository or add code to your code.
Thanks.
@Sergei:
The new menu system is awesome, congratulations.
@eduperez: i have to say that after i looked at your code rewrite, i'm really impressed.
really good work !!! very well structured and if it is documented (atleast at the key points/routines) it will be very easy for new devs to come around...
compared to the old code it's like the haven vs. hell !!!
really good work man ! thanks !
Glad to know you like it... after all, that was the point of all that work. But let me remember that most of what I have done is just move the code around, the real heroes are the people who guessed how to make the camera work. Yes, the code was a mess; but it is the kind of mess one may expect from someone focused on investigating and experimenting.
I have almost recovered the extended AF pattern system (using a new and simpler method), adding the self timer to the new code will be a breeze, and finally will come the awesome (did I already say that?) menu system.
typedef struct { // [*] Used and tested, others unknown
int AEMode; // 0x0000 [*] [1]
int MeteringMode; // 0x0004 [*] [2]
int FlashExComp; // 0x0008 [*]
int DriveMode; // 0x000c [3]
int WB; // 0x0010 [*] [4]
int AF; // 0x0014
int AfPoint; // 0x0018
int TvVal; // 0x001c [*]
int AvVal; // 0x0020
int AvComp; // 0x0024 [*]
int ISO; // 0x0028 [*]
int RedEyeRed; // 0x002c
int AEB; // 0x0030 [*]
int WbBracketing; // 0x0034
int Beep; // 0x0038 [*]
int ColorTemp; // 0x003c [*]
int IsoExpand; // 0x0040
int AutoPowerOff; // 0x0044
int ViewType; // 0x0048
int ReviewTime; // 0x004c
int AutoRotate; // 0x0050
int LcdBrightness; // 0x0054
int DateTime; // 0x0058
int FileNumbering; // 0x005c
int Language; // 0x0060
int VideoSystem; // 0x0064
int Communication; // 0x0068
int Parameter; // 0x006c
int ColorSpace; // 0x0070
int QualityRaw; // 0x0074 [*]
int QualitySize; // 0x0078
int QualityFine; // 0x007c
int MenuPosCf; // 0x0080
int MenuPos; // 0x0084
int WBCompGM; // 0x0088
int WBCompAB; // 0x008c
int ShootWithoutCard; // 0x0090
int CfSetButton; // 0x0094
int CfNoiseReduction; // 0x0098
int CfFlashSyncTimeAv; // 0x009c
int CfShutterAeButton; // 0x00a0
int CfAfAssistBeam; // 0x00a4 [*]
int CfSettingSteps; // 0x00a8 [*]
int CfNotEmitFlash; // 0x00ac [*]
int CfExtendIso; // 0x00b0 [*]
int CfAebSeq; // 0x00b4
int CfSiIndicate; // 0x00b8
int CfMenuPos; // 0x00bc
int CfMLU; // 0x00c0
int CfAfpSelection; // 0x00c4
int CfFlashMetering; // 0x00c8
int CfFlashSyncRear; // 0x00cc
int CfSafetyShift; // 0x00d0 [*]
int CfLensButton; // 0x00d4
int CfOriginalEval; // 0x00d8
int BatteryLevel; // 0x00dc
int BatteryType; // 0x00e0
int PrintUserProperty; // 0x00e4
int PrinterProperty; // 0x00e8
int ClusterSize; // 0x00ec
int RemainCluster; // 0x00f0
int FileID; // 0x00f4
int LensMinAv; // 0x00f8
int LensMaxAv; // 0x00fc
int EfLens; // 0x0100
int AvailShot; // 0x0104
int QrevImgProp; // 0x0108
int PrinterConnectType; // 0x010c
int MWDatRed; // 0x0110
int MWDatGreen1; // 0x0114
int MWDatGreen2; // 0x0118
int MWDatBlue; // 0x011c
int VideoJackConnect; // 0x0120
int IncompImg; // 0x0124
int BusyFlag; // 0x0128
} type_CAMERA_MODE;
#define cameraMode (*(type_CAMERA_MODE*)0x16B60)
// [1] Values for AEMode
#define AE_MODE_P 0
#define AE_MODE_TV 1
#define AE_MODE_AV 2
#define AE_MODE_M 3
#define AE_MODE_ADEP 5
#define AE_MODE_AUTO 8
// [2] Values for MeteringMode
#define METERING_MODE_EVAL 0
#define METERING_MODE_SPOT 3
// [3] Values for DriveMode
#define DRIVE_MODE_SINGLE 0
#define DRIVE_MODE_BURST 1
// [4] Values for WB
#define WB_MODE_AUTO 0x00
#define WB_MODE_DAYLIGHT 0x01
#define WB_MODE_COUDY 0x02
#define WB_MODE_TUNGSTEN 0x03
#define WB_MODE_FLUORESCENT 0x04
#define WB_MODE_FLASH 0x05
#define WB_MODE_CUSTOM 0x06
#define WB_MODE_SHADE 0x07
#define WB_MODE_COLORTEMP 0x08
// Used flags
#define FLAG_MAIN_GUI (*(int*)(0x00001C88))
#define FLAG_CAMERA_BUSY (*(int*)(0x00001CA8))
#define FLAG_GUI_MODE (*(int*)(0x00001ECC))
#define FLAG_METMOD_DIALOG (*(int*)(0x000047EC))
#define FLAG_AFSLCT_DIALOG (*(int*)(0x00004804))
#define FLAG_FACTORY_DIALOG (*(int*)(0x000049F4))
#define FLAG_MENU_DIALOG (*(int*)(0x00004A2C))
#define FLAG_FACE_SENSOR (*(int*)(0x0000CD38))
#define FLAG_RELEASE_COUNT (*(int*)(0x0000EBFC))
// Documented flags
#define FLAG_DISPLAY_ON (*(int*)(0x00006D58))
// Values for FLAG_GUI_MODE
#define GUI_MODE_MAIN 0x00
#define GUI_MODE_REVIEW 0x01
#define GUI_MODE_MENU 0x02
#define GUI_MODE_INFO 0x04
#define GUI_MODE_ISO 0x09
#define GUI_MODE_WB 0x0A
#define GUI_MODE_AF 0x0B
#define GUI_MODE_DRIVE 0x0F
#define GUI_MODE_METER 0x0C
#define GUI_MODE_OFF 0x11
#define GUI_MODE_FLASHEV 0x1B
Hi
i've heard about chdk a long time ago, but only now i've discovered that it exists for my dear 400d :-)
you are doing a fantastic job!
I'd like to use a timmer to take pictures (in P Mode) every x seconds for y hours... is it possible with the "400plus-20110306" Bin? must i use scripts for this?
can you point me to the right direction?
many thanks!
Yes, it is possible: the "inteval" feature is just what you need.
Hi eduperez
thank you! i've found the documentation (sorry)... i see that i can set the interval up to 30 seconds.
if I want to do some timelapses with more than 30 seconds between shots, is it possible ?
Experimental release!
http://www.mediafire.com/?b8th69v3u8q3bcu (http://www.mediafire.com/?b8th69v3u8q3bcu) 400plus-20110306.rar
New dialog menu for custom settings. Press menu, then print button to get in the menu.
Added Self Timer shutter release. Timer can be set from 2 to 30 seconds. Set "DP Button" to "Self Timer" and use print button to activate it from main screen.
Activation of Factory Menu has been changed: Menu, Print button twice, and menu again.
Hi Sergei/Eduperez,
thanks for your job.
A question about intervalometer. I set Interval time at "2" sec and DP Button at "Self Timer" adn self Timer at "3 sec.".
I press print button and start the countdown 3 .. 2 .. 1 shot, ok, but how to have the successive shots? I understood that every 2 seconds I should get other successive shots or I didn't understand well?
Please let me know.
Thanks and regards.
Francesco
Great, thanks now it runs. Just a curiosity: how to stop the shutter?
Perfect, it runs.
But let me know: this is the version from Sergei, is there another one from you Eduperez or not yet?
Just a question about the new EAB feature and in particular I would like to ask you what do you mean exactly about M1 and M2 in the Extended AEB section.M1 and M2 is set-points for eaeb in manual mode. Let say M1 is set to 1/8 and M2 is set to 1/125.
Just a question about the new EAB feature and in particular I would like to ask you what do you mean exactly about M1 and M2 in the Extended AEB section.M1 and M2 is set-points for eaeb in manual mode. Let say M1 is set to 1/8 and M2 is set to 1/125.
When you start eaeb camera will take 5 shots (1EV between them). 1/8, 1/15, 1/30, 1/60, 1/125.
Just a question about the new EAB feature and in particular I would like to ask you what do you mean exactly about M1 and M2 in the Extended AEB section.M1 and M2 is set-points for eaeb in manual mode. Let say M1 is set to 1/8 and M2 is set to 1/125.
When you start eaeb camera will take 5 shots (1EV between them). 1/8, 1/15, 1/30, 1/60, 1/125.
Sorry Sergei - I am a little confused as well. Where do you go to set M1 & M2?
Where can I get the latest "official" release of this software and the instructions on how to install/use?http://code.google.com/p/400plus/wiki/FirmwareHackInstallation (http://code.google.com/p/400plus/wiki/FirmwareHackInstallation)
PTP works: http://groups.google.com/group/ml-devel/browse_thread/thread/3d9300000ac8f7e (http://groups.google.com/group/ml-devel/browse_thread/thread/3d9300000ac8f7e)
PTP works: http://groups.google.com/group/ml-devel/browse_thread/thread/3d9300000ac8f7e (http://groups.google.com/group/ml-devel/browse_thread/thread/3d9300000ac8f7e)
alex, thats great !
@eduperez, @sergei, do you think it will be possible to add a help button when you're over a submenu in the 400plus menu. or maybe help will show after some timeout when staying over the submenu (like in mobile phones)
There is also a User Guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
Hope you like.
Let's do a little bit of marketing: I installed and used the Sergei's version; which are the features that distinguish the Eduperez's version? Why somebody has to choice one instead of the one other?
is this possible on the d400?
This script attempts is meant to shoot time-lapse videos of sunsets: starting from full daylight and ending in full night, always adapting exposure for a correct shot!
http://chdk.wikia.com/wiki/UBASIC/Scripts:_Time_lapse_script_variable_shutter_speed (http://chdk.wikia.com/wiki/UBASIC/Scripts:_Time_lapse_script_variable_shutter_speed)
I show you the fantastic work of Jmtd, a member of www.canonistas.com (http://www.canonistas.com).
Download at this link: http://img692.imageshack.us/img692/3893/funcionalidades400d2011.jpg (http://img692.imageshack.us/img692/3893/funcionalidades400d2011.jpg)
Question: is it possible to have something like a focus trap, that shoots whenever the AF light lights up?what is the purpose of this ?
People on this German forum suggested taping a contact on the lens body, which will result in the camera shooting if the trigger is pushed halfway and the camera gets an "in-focus" signal: http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fwww.dslr-forum.de%2Fshowthread.php%3Ft%3D165289%26highlight%3Dfokusfalle%26page%3D4 (http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fwww.dslr-forum.de%2Fshowthread.php%3Ft%3D165289%26highlight%3Dfokusfalle%26page%3D4)
Also, is it possible to trigger the "aperture preview" by software? If yes, a function that triggers that button and holds it would be nice. The reason is that I have spacer rings for my 400d to use my standard lenses as macro lenses. This works quite well but I have to preselect the aperture via press and hold "aperture preview", unscrew the objective while holding the button, mount spacer rings, mount objective. It were better if the aperture preview could be locked so it gets more comfortable.
just wanna ask something..
how do i revert back this hack .
i try to format my CF but my 400d wouldnt start if the CF is empty.
sometimes i had OOF problem when taking a photo after upgrading to the latest version of this hack..
please advise..tq..
Question: is it possible to have something like a focus trap, that shoots whenever the AF light lights up?
People on this German forum suggested taping a contact on the lens body, which will result in the camera shooting if the trigger is pushed halfway and the camera gets an "in-focus" signal: http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fwww.dslr-forum.de%2Fshowthread.php%3Ft%3D165289%26highlight%3Dfokusfalle%26page%3D4 (http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fwww.dslr-forum.de%2Fshowthread.php%3Ft%3D165289%26highlight%3Dfokusfalle%26page%3D4)
Also, is it possible to trigger the "aperture preview" by software? If yes, a function that triggers that button and holds it would be nice. The reason is that I have spacer rings for my 400d to use my standard lenses as macro lenses. This works quite well but I have to preselect the aperture via press and hold "aperture preview", unscrew the objective while holding the button, mount spacer rings, mount objective. It were better if the aperture preview could be locked so it gets more comfortable.
just wanna ask something..
how do i revert back this hack .
i try to format my CF but my 400d wouldnt start if the CF is empty.
sometimes i had OOF problem when taking a photo after upgrading to the latest version of this hack..
please advise..tq..
Yes, you did.Thanks a lot, i missed the menu function ;)
Goto 400d-Menu, EAEB>Delay and press MENU to switch between different settings.
Working on a german manual, if anyone is interested.
Here we are again, now with a fancy new menu, copied from Sergei:
- Source at http://400plus.googlecode.com/files/400plus-20110318-2.src.zip (http://400plus.googlecode.com/files/400plus-20110318-2.src.zip).
- Binary at http://400plus.googlecode.com/files/400plus-20110318-2.bin.zip (http://400plus.googlecode.com/files/400plus-20110318-2.bin.zip).
- User Guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
I will be unreachable for some days... try not to break anything while I am out!
UPDATE: Fixed a bug (highlighted line does not match active line when returning to menu).
UPDATE: Fixed another bug (flash-related options act inverted).
4450: 239270 [FACE] Temperature:27 TempGain:0
[CmndMgr]WARNING: NotFind!!, GetPTPOperationFunction()
--- OperationCode = 0x9999 // AF: 0x9999 = CHDK
[FramCtrl]WARNING: Entry:DoDefaultUndefine()
4451: 247300 [PTPOPE]OperationCode:0x1002,P1:1,P2:0,P3:0 // AF: 0x1002 = OpenSession
4452: 247310 [PTPOPE]OperationCode:0x1001,P1:0,P2:0,P3:0 // AF: 0x1001 = GetDeviceInfo
4453: 247320 [PTP]USBConnectStatus:3
4454: 247320 [MC] T:0012, S:0002, 75
4455: 247320 [RIF]RIF_PtpConnectUILock:1
4456: 247330 [PTPOPE]OperationCode:0x9999,P1:0,P2:0,P3:0 // AF: 0x9999 = CHDK
4457: 247330 [MC] T:0004, S:0002, 76
4458: 247340 act:0141
4459: 247360 [MC] T:0001, S:0002, 77
4460: 247360 [MAIN] Temp. 235(EB)
Here we are again, now with a fancy new menu, copied from Sergei:
- Source at http://400plus.googlecode.com/files/400plus-20110318-2.src.zip (http://400plus.googlecode.com/files/400plus-20110318-2.src.zip).
- Binary at http://400plus.googlecode.com/files/400plus-20110318-2.bin.zip (http://400plus.googlecode.com/files/400plus-20110318-2.bin.zip).
- User Guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
I will be unreachable for some days... try not to break anything while I am out!
UPDATE: Fixed a bug (highlighted line does not match active line when returning to menu).
UPDATE: Fixed another bug (flash-related options act inverted).
With the permission of Sergei and eduperez.
I think that we should open a discussion on the order of menu options 400plus.
I have a particular version [DP Button] or [DP action] first.
Sorry for my bad English 8).
Thanks.
a question... it is possible to turn off screen during script executing? it would be great to preserve power consumption, e.g. using intervalometer
What i just realized: When using EAEB + Handwavescript it is not possible to shoot with the shutter button.
I'd love to have both options of firing at the same time.
Is this somehow possible?
Sorry, but I do not understand under which situations can this be useful, or what do you expect from the camera... can you elaborate on that a bit more, please?Well, mostly i shoot on a tripod -> handwave is fantastic
I am glad the forum is running again.
If I am reading right, you are trying to limit the hand wave feature by not allowing it to be left on anymore? Do you think you should where it has been so popular
Has there been any progress in making fine tuning of the shutter speeds available?
There is no reason a digital camera should have such limited options, its not like you have to add a new gear for each timing.
This would allow for much greater control of the look of motion in the photos.
Sorry, but I do not understand under which situations can this be useful, or what do you expect from the camera... can you elaborate on that a bit more, please?Well, mostly i shoot on a tripod -> handwave is fantastic
Sometimes i shoot 9 Frames in a row e.g. of my 18 month old daughter
(EAEB is somehow used to increase the propability of a perfect shot;
because of the agility of her it is not possible to use a tripod and i'm in the need of using the viewfinder to shoot.
In this case using the handwave isn't my preffered way of shooting.
Of course i could turn the script off for these shots,
but this means to change more settings and this is a little annoying in my opinion.
In short words:
I'd love that the cam fires when i press the button OR i wave.
How can an option be wrong?
Particularly when its popular.
And as for shutter speed i am talking when the photographer sets it, not when its calculated.
Most particularly in Tv mode.
Jumps from 1/20s , 1/25s, 1/30s, to 1/40s.
These jumps are much to large and come from a time where cameras had mechanical limits.
If one could have greater control of this scale, pictures of moving objects could be made more dramatic and time lapse will look better too.
When you talk of EV's its more related to film speed than shutter speed.
Accurate control length of time between the two shutters would be a great asset to getting the perfect shot in sports photography to.
How can an option be wrong?
Particularly when its popular.
No, I did not say the feature was wrong; I think the way it was implemented was wrong. Remember there is a Wave option in my version, and I have also offered a new option to make it run endlessly.
Perhaps your suggestion to have endless option will satisfy everyone.
One more thing: The wave option doesn't seems to work in [M]-BULB, which is normal I guess, but since you're familiar with the code, do you think it can be made working (though i'm not sure how one should stop the camera after it was started in bulb...) ? And do you believe it is possible to extend the max time of the camera from 30 sec to 60 (or 90) for example (this could eliminate the need of bulb, atleast for me) ?
I'm preparing for the spring's lightenings and this time I think I'm going to use the interval script, but i'll need more than 30 secs exposure.
I even have a dead battery which will become a nice plug to the camera for an external adapter.
We could try to use "out of range" values for the shutter speed, and see what happens, but I would not hold my breath. Other than that, I have no idea how to control the shutter; sorry.thanks for the hint, I could try it myself (unfortunately tomorow) and I'll post if it works.
I even have a dead battery which will become a nice plug to the camera for an external adapter.Looks like an interesting project, would love to hear about your results.
Hi guys.
Glad to know you liked the new version; and many thanks for the translations, I am sure they will be very useful.
Please let me remember you there is a page at http://code.google.com/p/400plus/issues/list (http://code.google.com/p/400plus/issues/list) where all your bug reports and feature requests are welcome. I will continue to use this thread for the announcements, and will obviously take note of any issued posted here, but having them all in a place would be very nice. Plus you will get an email as soon as yours gets fixed or done!
just uploaded the Italian (http://code.google.com/p/400plus/wiki/UserGuideItalian (http://code.google.com/p/400plus/wiki/UserGuideItalian)) and the German (http://code.google.com/p/400plus/wiki/UserGuideGerman (http://code.google.com/p/400plus/wiki/UserGuideGerman)) translations of the UserGuide (http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide)) to the Wiki of the project.
@ataru, @guffster: please check them.
@eduperez, @sergei:
guys may be it's a long shot but do you think it would be possible to add ISO bracketing ?
camera should make one shot, but save 3 or more files with different ISO value ?
AFAIK different ISO needs different currents on the sensor, which means that we will need access to internal routine for taking a shot, or perhaps direct access to the sensor. I'm not really sure we can handle this because we will need to implement our routine for making a shot - reading data from sensor, manipulate it (if it's needed) and save it to the CF.
I might be totally wrong here though.
AFAIK, hardware ISO is implemented as a linear amplifier, sitting in the pipeline between the photosites and the digital-to-analog converter; as such, it can only be used once, because the photosites cannot store their analog value for a second readout.
When you say guffster i suppose you meant Speedy?^^
I dont see where you set the time period for the interval.
If the Display off switch turns off the scripts, then you cant use the viewfinder while they run and its easy to mistakenly turn it off.
If three hand waves are used to take pics, like I said when I came up with the idea of using the IR proximetry switch, it wont spook you by going off by itself. ( not wearing a red shirt helps too, lol).
Needing to hit a button before using the hand wave takes away the ability to use camera when your hands are dirty. Feeding a baby and many other nature shots require getting dirty.
While the mirror is locked up, I wonder if it will allow motion detection or live preview?
Much more than acceptable, its excellent.
I still wonder if we can make a new kind of motion detection that depends on metering or autofocus?
@all,Have you tried my version? My wave script is checking for timed intervals and they are so short. No body would move their face like that quick in front of their camera.
I personally find it very annoying if the wave script is always on... The camera starts to shoot when I take a look through the view finder, sometimes even when I hold the camera close to my body it starts to shoot...
very annoying... I've started to use the wave option just after Eduardo implemented it in the new version.
When you say guffster i suppose you meant Speedy?^^
Have you tried my version? My wave script is checking for timed intervals and they are so short. No body would move their face like that quick in front of their camera.
Did anybody notice shorter battery life after wave script was added? Convenience vs. battery life. In this case one line menu is the way to go. It takes less CPU cycles to create it . :D
Fully updatetd german version of the userguide:
Ah, i se; of course i can:
Guys today we have the first automated build in the download section (http://code.google.com/p/400plus/downloads/list (http://code.google.com/p/400plus/downloads/list)).
From now on, everyday there will be new build of the current version of the code (uploaded around 04:25 GMT in the morning).
To clarify, these are now the new builds with the menu?
Or the old style in the info screen?
I think it would be a bit better in the wave option if it took pictures while something is in front of the sensor instead of when something moves away from it.
This way it will take the picture faster with just one motion instead of 2.
Also if you wanted a stranger to take a pic of you, you could set it and all they would have to do is look threw view finder and it will take a picture or a few pics if you set repeating.
They wouldn't even have to find the button. But you better warn them first in case it scares them.
Sound good?
Is it possible to change the shoot RAW while in auto modes to another button(maybe the WB button)
so that the DP button can still do the function you set it to while in the auto modes?
Instead of just having one of the functions available on the DP button could two more be put on the Jump and Erase button because they don't do anything when not in playback mode?Neither JUMP nor PLAY are detected by our hack; unless someone manages to change the core routines, I am afraid that those buttons are not available to us. However, I have plans to change the behavior of the DP button: please see issues 4, 5, and 6 at http://code.google.com/p/400plus/issues/list (http://code.google.com/p/400plus/issues/list).
Done, Done?
For the version updated weekly to the repository, the changeable colour temp in the 400plus menu has no effect on the final image.
I have selected white balance, then pushed the DP button to activate custom K white balance, but still no affect on the final image.
Sergei's menu version has immediate effect after changing the value in the menu without going to WB then pressing DP, yours doesn't eduperez, even with WB + DP button.
Maybe I'm doing something wrong?
All the images come out blue regardless of what Kelvin (colour temp) I set.
The shortcuts DP button works, but deactivating the shortcut menu, and setting it to my preference of ISO change only does not work as well.
The shortcuts menu still appears.
Did you set the white balance to custom color temperature? The color temperature in the 400plus menu only changes the value that will be used when the custom color temperature option is set: at the white balance dialog, press DP to activate the custom color temperature. You should hear a beep and a "K" should be displayed as the white balance on the camera's main screen.
This is a design decision, as the SET button in the menu saves and applies all the changes, not just the selected item; and this action should not change the white balance, because there isn't a white balance selection in the menu.
I guess you are using the nightly snapshot, as there is no shortcuts menu in the official release... The interaction between the shortcuts menu and the DP action settings has still not been worked on; please remember that nightly snapshots are "work in progress", thanks.
PS: Please, do not cross-post between the project home page and this forum; it forces me to answer the same questions twice.
I have selected white balance, then pushed the DP button to activate custom K white balance, but still no affect on the final image.
Sergei's menu version has immediate effect after changing the value in the menu without going to WB then pressing DP. Yours doesn't eduperez, even if the colour temp is set to K.
For the custom white balance, as I stated in my original post, I did go to the white balance dialog, and press the DP button. I heard a beep and it displays K.
I'm saying that even selecting the custom Kelvin temperature in the 400plus menu, the effect is not applied.
I've pressed the SET button to save and apply all settings in the menu with the WB set to K before hand, and tried it after as well.
The image does not change colour temp's.
I have the same problem :( When I try to set some colour temp (exactly like you described), I have no effect on image.
New version, introducing the shortcuts menu, and some other minor enhancements and fixes:Question regarding "The shortcuts menu": So I have ISO in camera set at 200 and want to roll the ISO value to an intermediate value of 320. Using the 400plus firmware hack, I press the (DP) Direct Print button and then press the UP (ISO) button two times to see the LCD display an ISO value of 320. That works, now what do I do to set the camera to stay at ISO 320? The Set button does not do it since it will start the Intervalometer script, and pressing the DP, menu, or shutter release does not set and retain the new ISO value either - instead these buttons revert the camera back to my original ISO value of 200. I must be missing a step somewhere... Can anyone help?
- A Word of Warning (that everybody should read) at http://code.google.com/p/400plus/wiki/AWordOfWarning (http://code.google.com/p/400plus/wiki/AWordOfWarning).
- Source at http://400plus.googlecode.com/files/400plus-20110328-0.src.zip (http://400plus.googlecode.com/files/400plus-20110328-0.src.zip).
- Binary at http://400plus.googlecode.com/files/400plus-20110328-0.bin.zip (http://400plus.googlecode.com/files/400plus-20110328-0.bin.zip).
- Updated user Guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
Question regarding "The shortcuts menu": So I have ISO in camera set at 200 and want to roll the ISO value to an intermediate value of 320. Using the 400plus firmware hack, I press the (DP) Direct Print button and then press the UP (ISO) button two times to see the LCD display an ISO value of 320. That works, now what do I do to set the camera to stay at ISO 320? The Set button does not do it since it will start the Intervalometer script, and pressing the DP, menu, or shutter release does not set and retain the new ISO value either - instead these buttons revert the camera back to my original ISO value of 200. I must be missing a step somewhere... Can anyone help?The intermediate ISO option, at the shortcuts menu, should work exactly as you expect: enter the shortcuts menu with the DP button, and press UP to set the desired ISO, then leave with the MENU button. However, there is a bug in the latest release, and the ISO displayed is wrong by one keypress (note that only the ISO displayed is wrong, the value is changed correctly).
Question regarding "The shortcuts menu": So I have ISO in camera set at 200 and want to roll the ISO value to an intermediate value of 320. Using the 400plus firmware hack, I press the (DP) Direct Print button and then press the UP (ISO) button two times to see the LCD display an ISO value of 320. That works, now what do I do to set the camera to stay at ISO 320? The Set button does not do it since it will start the Intervalometer script, and pressing the DP, menu, or shutter release does not set and retain the new ISO value either - instead these buttons revert the camera back to my original ISO value of 200. I must be missing a step somewhere... Can anyone help?The intermediate ISO option, at the shortcuts menu, should work exactly as you expect: enter the shortcuts menu with the DP button, and press UP to set the desired ISO, then leave with the MENU button. However, there is a bug in the latest release, and the ISO displayed is wrong by one keypress (note that only the ISO displayed is wrong, the value is changed correctly).
It has already been fixed in the repository, and pending of a new release. In the meantime, you can try the latest nightly build; thanks.
Tested and working correctly in r229. Nice touch by allowing the exit of shortcuts menu by using menu, shutter release, or DISP button press - all retaining and correctly displaying the chosen intermediate ISO value.Question regarding "The shortcuts menu": So I have ISO in camera set at 200 and want to roll the ISO value to an intermediate value of 320. Using the 400plus firmware hack, I press the (DP) Direct Print button and then press the UP (ISO) button two times to see the LCD display an ISO value of 320. That works, now what do I do to set the camera to stay at ISO 320? The Set button does not do it since it will start the Intervalometer script, and pressing the DP, menu, or shutter release does not set and retain the new ISO value either - instead these buttons revert the camera back to my original ISO value of 200. I must be missing a step somewhere... Can anyone help?The intermediate ISO option, at the shortcuts menu, should work exactly as you expect: enter the shortcuts menu with the DP button, and press UP to set the desired ISO, then leave with the MENU button. However, there is a bug in the latest release, and the ISO displayed is wrong by one keypress (note that only the ISO displayed is wrong, the value is changed correctly).
It has already been fixed in the repository, and pending of a new release. In the meantime, you can try the latest nightly build; thanks.
Excellent! Thank you.
FYI: It appears that when pressing (DP) Direct Print button to access the shortcuts menu, the LCD very very briefly shows the normal Menu screen you last accessed when using the Menu button first and then proceeds to show the shortcuts menu screen. Is this expected? Just thought I would pass this along to you for review. It does not hamper use or functionality at all.
Could you display the version number of the hack that's in use on the hack's menu screen? If that version number was also made part of the names of the zip file that we download and of the folder the zip file creates, it would make it simple to determine which version is in the camera.
Also, if there are features that aren't working properly in the nightly builds, how about making the version names reflect whether this is a nightly or a release version, like with an N or R prefix or suffix?
This would also indicate a need for parallel sets of documentation as well, so we could decide whether there's something in a nightly that we want badly enough that it makes up for some other feature that's not all there.
If anyone is up for the challenge: :o
A new feature request I might suggest would be the ability to add "Owner" and "Copyright" info into the EXIF data when images are taken. I am aware that this could prove to be quite the programming challenge...
If do-able, then possibly reading the data in from a CF card data text or xml file would be a solution for obtaining the data, since programming a data entry screen to input the "Owner" and "Copyright" info into a camera screen could be quite difficult or even impossible with the 400D O/S.
Sure would be nice wouldn't it? No more post-processing your raw images with other software tools to add this information later.
Hmm.. just found out a new night build..r232 what changes in the new version? ^^
Could you display the version number of the hack that's in use on the hack's menu screen? If that version number was also made part of the names of the zip file that we download and of the folder the zip file creates, it would make it simple to determine which version is in the camera.
Looks interesting, I'll think about it; but the zip file already creates a folder with the name of the release, doesn't it?Also, if there are features that aren't working properly in the nightly builds, how about making the version names reflect whether this is a nightly or a release version, like with an N or R prefix or suffix?
Releases are named "yyymmdd-v" (year, moth, day, and version); while nightly builds are always named "yyyymmdd-rxxx" (year, month, day, and revision number).This would also indicate a need for parallel sets of documentation as well, so we could decide whether there's something in a nightly that we want badly enough that it makes up for some other feature that's not all there.
Nightly builds are generated automatically, and not intended for general consumption.
The version in my camera is the most recent posted at the wiki, which is named 400plus-20110328-0.zip and the zip creates a folder with exactly that name (without the .zip), which does not indicate whether it's a release or a nightly, just that it's version 0 for that date. It's also three days old, so maybe the wiki's download section is only releases?If you go back to the download section, you will see files have comments like "Release 20110328-0.bin / Featured" or "400plus automated build - 20110329 - r223 / NightlyBuild"... seems pretty obvious to me which one is a release and which one is a nightly build. Again, releases are named "yyymmdd-v" (year, moth, day, and version); while nightly builds are always named "yyyymmdd-rxxx" (year, month, day, and revision number); see the difference?
In any case, having the hack's menu screen identify the version number would eliminate having to try to guess which version is being used.
The version in my camera is the most recent posted at the wiki, which is named 400plus-20110328-0.zip and the zip creates a folder with exactly that name (without the .zip), which does not indicate whether it's a release or a nightly, just that it's version 0 for that date. It's also three days old, so maybe the wiki's download section is only releases?If you go back to the download section, you will see files have comments like "Release 20110328-0.bin / Featured" or "400plus automated build - 20110329 - r223 / NightlyBuild"... seems pretty obvious to me which one is a release and which one is a nightly build. Again, releases are named "yyymmdd-v" (year, moth, day, and version); while nightly builds are always named "yyyymmdd-rxxx" (year, month, day, and revision number); see the difference?
In any case, having the hack's menu screen identify the version number would eliminate having to try to guess which version is being used.
I repost my question: respect the Sergei version of March 6th, need I update to this Eduperez version? Please let me know.
Thanks
And many compliments for your work.
Sure, on the Downloads tab, now that you've pointed me there. Neither the list of Featured releases on the left-hand side of the home page nor the downloaded zip file of the current Featured release gives any hint of that convention.
Looking at the Issues list, I'm pleased to see my suggestion that the menu display the version has been put into the hopper. Thanks!
Since the Featured (released) versions are only numbered 0, 1, 2 within a date, the date itself - not just the "0," "1," or "2" - should be shown on the menu screen for a Release, since there will be "0," "1," or "2" releases on different dates.
Alternatively, if dates are too long to use on the menu screen, a) there could be a separate numbered series for Featured versions or b) you could just tack a "V" in front of the number it had as a nightly version - to signify that it's the same code, just now officially released.
Hi there,
great hack!
I have a small issue though. I cannot connect my 400D via USB to my computer. After some searching I found that the camera wants to use DCP CONNECT which - regarding to some posts in other forums - is an indication that the camera is in service mode instead of user mode.
Is that caused by the hack? Is there a way around it - so that I can use EOS Utility and/or USB connection to download pics?
Am I doing something wrong?
Regards
Frank
And some very important information !!!!!!!!!!!
When trying to solve the problem with the DCP CONNECT issue I accidently invoked the entry Factory Menu/Sw Test - from the standard menu and ran into a test, where I saw a list of entries and every key I pressed made one of these entries green. Even power on/off didn't power off but lit an entry.
So I plugged out CF-Card and battery and plugged in again.
After some endless tries with unmodified CF-cards and removing and reinserting all batteries it now works again ... although I cannot give a recipe ...
My advice - keep off fingers from the Factory Menu (leave it by pressing Menu key ....)
Does anybody know a way/a code to leave that Sw-Test thing ...
Regards
Frank
Which version are you using? There are reports of similar issues, but they where fixed ages ago...
I tried the latest version, but could not reproduce it.
First of all: Thank you guys for your fine work.
Now to my bug(s): Menu is not complete. Also after full format & reinstall of hack & last version (and yes: blue light flashing) - still not working properly:
- Handwave: Cannot find options action/repeat/instant; just delay
Ext. AEB: cannot find frames/step/manual[]; just delay
Interval: no time/EAEB/shots; just delay
Timer: no action, just delay
Short cut menu via AV: Not able to change values again or choose another item/sub menu shortcuts. Have to shut camera down.
No extra shortcuts visible in menu.
Which version are you using? There are reports of similar issues, but they where fixed ages ago...I took the latest version - the one before you published a new one ...
I tried the latest version, but could not reproduce it.
Just tried the new one - same result. XP always wants me to install some DCP CONNECT stuff.
I also upgraded to the latest EOS Utility - still no change.
Tried different USB-ports - no effect other than asking to install DCP CONNECT .... hmm
I was reading a post on another message board in which some one else had the dcp failed to connect error when trying usb connection
and someone labeled "canon guru" replied to them...
"Send it into Canon, this is a service mode protocol used for adjustment. Only they have the software to reset it to normal communication."
I have also noticed that when I hit menu it goes there and always highlights factory menu even if I dont boot from card.
I have taken out both batteries hoping to reset it but nope.
Anyone know what to do?
ok i got the factory menu to clear after playing around with it.
Tried with a formatted CF Card - DCP CONNECT wanted.
But ... also tried it on a different computer - still DCP CONNECT wanted.
So to me this is a camera issue rather than a PC issue.
Don't get me wrong. I don't want to blame anybody - I just want to find a solution and maybe give some searchable knowledge if somebody else faces this problem.
BTW:
Do you know how to swich from user to service mode manually?
Something (maybe) important:
I have also found a file called MCTEST.BIN on my CF card which I did not create ...
Best regards
Hi,
after some searching I found this post ...I was reading a post on another message board in which some one else had the dcp failed to connect error when trying usb connection
and someone labeled "canon guru" replied to them...
"Send it into Canon, this is a service mode protocol used for adjustment. Only they have the software to reset it to normal communication."
I have also noticed that when I hit menu it goes there and always highlights factory menu even if I dont boot from card.
That is exactly what I am also experiencing ...I have taken out both batteries hoping to reset it but nope.
Tried that tooAnyone know what to do?
ok i got the factory menu to clear after playing around with it.
Do you know how you achieved this?
EnterFactoryMode();
SleepTask(25);
ExitFactoryMode();
But then, activating the FACTORY MENU from 400plus should revert back to the normal mode, I guess. I would try to install 400plus in an empty card (no MCTEST.BIN file, obviously) and activate the FACTORY MENU (just MENU + DP + DP). Then switch off, change to a fresh card, an try again with the computer.
just my two cents.
But then, activating the FACTORY MENU from 400plus should revert back to the normal mode, I guess. I would try to install 400plus in an empty card (no MCTEST.BIN file, obviously) and activate the FACTORY MENU (just MENU + DP + DP). Then switch off, change to a fresh card, an try again with the computer.
just my two cents.
I did, what you suggested - guess what: Problem solved. Camera is being detected again and no automatic entering/display of FACTORY MODE when switching the camera on and pressing MENU ...
For testing purposes (I know I am mad ;-) I invoked the FACTORY MODE again (MENU + DP + DP) and even started Sw-Test but after switching it on again FACTORY MODE was not displayed any longer .... so I guess it was some weird situation I was in
Anyhow, maybe this helps somebody being in the same situation.
I apreciate your help a lot. Thank you very much.
Regards
Back when I designed the shortcuts menu, I wanted to have a fast method to reach the scripts and some functions that are currently buried into the other menus. That is the reason the shortcuts menu is not actually a menu, but just a list of the actions assigned to each key; this way, I could quickly reach each action pressing only two buttons.I fight the impulse as well... I like your thinking on this and I would agree that making this a real menu instead of a shortcuts menu would make more sense. We just need some more steenkin' buttons on the camera that are available to be re-mapped if we want shortcuts!
However, it does not work as expected: each time I enter the shortcuts menu, I must fight the impulse to press the down button and navigate to the option I am looking for; sometimes, my mind is slower that my fingers, and I end activating whatever action is assigned to the down button.
So, long story short, unless I come up with a better solution, the shortcuts menu is going to be a real menu soon.
There are never too many options.
As everybody has different needs and preferences, the order of the shortcuts in the menu will be easy to rearrange.
As everybody has different needs and preferences, the order of the shortcuts in the menu will be easy to rearrange.
I still say keep the option to disable the shortcuts menu, to change the DP button to launch whatever it's set to in the 400plus menu.
I personally like it simple such as being able to change the DP button back to having what it was originally hacked for on the info screen, changing the ISO.
eduperez - The build is OK. The user was out of repair :(. I missed the 'Navigating the sub-menus'-section.
why would you need to change the iso besides the normal way ?
normally i shoot in 100, if i need to go up i go for 200 or 800. these are the three isos i ever used...
i still don't get why would one need 125 iso (for example) ... what will be different from the 100 iso ?
even more ... i dont see the point to have the nice DP button assigned to iso changing...
Software that is flexible, configurable, and extensible is the key answer here. The point is not whether one should shoot ISO 125 over ISO 100 but to have the ability to do so via easy-to-use and understandable software. There is no way each user will want or use every feature the way that another user would, or necessarily the way the developers have chosen to implement it. This is the true challenge for good software developers: to create outstanding useful software that appeals to the majority of its user base.
By making the software hack flexible and extensible (easy to build upon for future enhancements, fixes, etc.) and configurable (able to work one way for one user, and another way for someone else) - then each user will have the opportunity to make it work easily for them.
Those who develop, test, and document this software will have more work cut out for them, but in the end - all will have a more functional and proud-to-own-and-use product.
I for one believe this is the road we are currently headed down based on the forum topics that have recently been discussed here. It is fascinating to watch this software grow into a mature product and give life back to a very capable camera that many people gave up on years ago.
why would you need to change the iso besides the normal way ?
One scenario e.g.: I often shoot manual and I am using fixed time and f-stop (e.g. f 2.8 and t 1/125). Doing so, I am using ISO to regulate the exposure the way I want... Then I really like to have this fine ISO steps with just one push ;)
good point. but yet, isn't that possible in 100/200/400/800 steps ?.. of course it is. But it is still not the same:
.. of course it is. But it is still not the same:
* 100/200/400 etc. are full stops (1/1) and I will need to push 3 buttons (ISO, arrow down [wb] and set)
* 200/250/320 are 1/3 stops and I will need to push only 1 button [DP] :-)
Software that is flexible, configurable, and extensible is the key answer here. The point is not whether one should shoot ISO 125 over ISO 100 but to have the ability to do so via easy-to-use and understandable software. There is no way each user will want or use every feature the way that another user would, or necessarily the way the developers have chosen to implement it. This is the true challenge for good software developers: to create outstanding useful software that appeals to the majority of its user base.
By making the software hack flexible and extensible (easy to build upon for future enhancements, fixes, etc.) and configurable (able to work one way for one user, and another way for someone else) - then each user will have the opportunity to make it work easily for them.
Those who develop, test, and document this software will have more work cut out for them, but in the end - all will have a more functional and proud-to-own-and-use product.
I for one believe this is the road we are currently headed down based on the forum topics that have recently been discussed here. It is fascinating to watch this software grow into a mature product and give life back to a very capable camera that many people gave up on years ago.
I totally agree. But since I've seen 2 posts asking for getting DP to set iso, I was wondering who actually is using this ?
why would you need to change the iso besides the normal way ?
normally i shoot in 100, if i need to go up i go for 200 or 800. these are the three isos i ever used...
i still don't get why would one need 125 iso (for example) ... what will be different from the 100 iso ?
even more ... i dont see the point to have the nice DP button assigned to iso changing...
I see the idea, I guess I got confused, because I was thinking that ppl are using this function only between 100-200 ISO values, because I mostly use 100,200 and 400. But you are right, it has a good use when you need ISO between 400-800 or 800-1600
Though I don't think ISO 1600 is usable, neither 3200 because of the noise. Perhaps only in rare cases like JoeNeptune mentioned. Anyways let's leave this off-topic alone.
Thanks for clarification.
(nice photos there, congrats.)
I am use last build, and i can't use AV key for change Shortcut. Help me, plaese.
And sorry for may bad English.
do we still support the auto iso ???
the wiki pages didn't mention about this feature anymore.
If that's the missing in the wiki then how to activate it ??? (is it still shoot w/o card ??)
New version with lots of changes; some are mine, some are from 0xAF, as we have been working in tandem to bring out this release:Sweet! Nice job. Thanks for all of the hard work you guys put into this release.
- The shortcuts menu acts now like a real menu, only that it can be reordered.
- Optionally, the shortcuts menu can be disabled, and then the DP button will change to an intermediate ISO.
- Sub-menus at the settings menu are now navigated using the front wheel.
- Displayed release count and 400plus version at the INFO menu.
- Added new developers menu to enter / leave the factory mode or activate the debug mode (use with care, or even better, do not use at all).
- And lots of other minor improvements and bugfixes.
As always, the links are:
- A Word of Warning (that everybody should read) at http://code.google.com/p/400plus/wiki/AWordOfWarning (http://code.google.com/p/400plus/wiki/AWordOfWarning).
- Source at http://400plus.googlecode.com/files/400plus-20110412-0.src.zip (http://400plus.googlecode.com/files/400plus-20110412-0.src.zip).
- Binary at http://400plus.googlecode.com/files/400plus-20110412-0.bin.zip (http://400plus.googlecode.com/files/400plus-20110412-0.bin.zip).
- Updated user guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
- There are also Spanish (http://code.google.com/p/400plus/wiki/UserGuideSpanish), Italian (http://code.google.com/p/400plus/wiki/UserGuideItalian), and German (http://code.google.com/p/400plus/wiki/UserGuideGerman) translations (still not updated to the latest version, however).
We hope you enjoy.
idea: could 400plus manage daylight saving time or just remind to adjust time settings?
Just loaded and experimented with Tuesday's (2011-04-14) release. Outstanding!
Quite a jump upwards from the release two weeks ago. I agree with the idea of making the hack itself user-configurable. I've already rearranged the Shortcuts menu to read:
ISO
Hand waving
Self timer
Mirror lock
Flash 2curt
Intervalometer
Extended AEB
I did this mainly to push the last two down to the next screen, since I kept setting them off unintentionally by exiting that screen with the SET button while one of them was highlighted!
400plus is rapidly becoming the WordPerfect of hacks - and that's coming from someone who's been using WP since the early 1980s because it's the "have it your way" word processor.
Thanks for implementing my idea to make the Extended Info screen display the hack's release date - that's a lot easier than taking the card out of the camera and putting it into a card reader to figure out what I'm running. BTW - the documentation had me searching for an INFO button to get to that screen, until I decided to try the DISP button.
I may make an "XTi+" sticker to rebadge my camera - I don't want to leave the Rebel Alliance!
PS I apologize for using so much bold in my last post a few pages back, but I couldn't figure out the BBS code to distinguish between your and my comments, and that was a quick and dirty shortcut - or should I say a kludge.
Oooh! What a great name for a Klingon! New Voyages, are you listening?
How about Tetris with photo thumbnails?
Or some other game to pass the time with?
It would be a bonus if it involved the pics on card so you might have a bit of review while you play.
Sometimes you have to wait for a picture to happen.
This could help you stay still enough wild life might get closer.
Could a NDS Nintendo simulator be ported?
That would be the ticket!
Almost unlimited number of game ROMS you could chose from just by adding them to your memory card!
Also i am wondering, can the histogram data be used in the programs?
"Optionally, the shortcuts menu can be disabled, and then the DP button will change to an intermediate ISO"
Very good idea !! :D
Good idea!? After the mobs threatened to burn me down like a witch, what else could I do?
idea: could 400plus manage daylight saving time or just remind to adjust time settings?
Looks like a very interesting idea, I always forget to change the clock in the camera myself... will think about this, thanks for the tip.
it could be useful to put some expressions and a list to choose fromidea: could 400plus manage daylight saving time or just remind to adjust time settings?
Looks like a very interesting idea, I always forget to change the clock in the camera myself... will think about this, thanks for the tip.
switching to/from DST depends on the country you live... in USA they change on exact date (if im not mistaken) in the most european countries we change on the last sunday of mart
some african countries change on different criteria, and in Russian Federation and others they removed DST (i believe)...
so to know when to change or inform, we should know what country and what criteria they have.
Hmmm... from the looks of some of the latest code being worked on, it appears we might soon have one of my most wanted features for the 400D: multiple custom camera settings - each accessible from a menu to save / restore by using the CF card. How cool is that!!!!!!
This should prove to be one of the more popular features this software provides. Awesome - and thanks in advance!
Hmmm... from the looks of some of the latest code being worked on, it appears we might soon have one of my most wanted features for the 400D: multiple custom camera settings - each accessible from a menu to save / restore by using the CF card. How cool is that!!!!!!
This should prove to be one of the more popular features this software provides. Awesome - and thanks in advance!
Then perhaps you may want to give a try to the latest nightly build, and press DP at the settings menu, then at the shortcuts menu... but remember this is still work in progress.
@eduperez - I PM'ed you as well. Let me know if you got it (my internet is a bit sketchy at the moment).
oxAF, Heavy?
Wouldn't it really save you weight from other things you otherwise would carry?
Or if you mean memory I hardly think a few Kb on a multi- Gb Memory card is very significant and might mean one less picture out of several thousand.
Also It might not take as great of an effort as you think to achieve where there is already an open source NES emulator available called "SharpNES".
I read one guy ported it to his phone in a few hours.
So what about the Stones Tongue?
I bet it will make it a hit with the ladies!
Lots of pretty girls thanking you for making them with their camera so sexy, unique and stylish.
You are doing a grat job!
For me, it would be a very usefull feature, if the mirror would stay locked up during EAEB. Do you think, a cobination of EAEB und MLU would be possible?
Thanks, sjm
550D code for this: https://bitbucket.org/hudson/magic-lantern/src/tip/shoot.cthanks alex !
(look for bulb_take_pic or bulb timer).
Questions to users regarding Custom Presets:
Since the XTI/400D does not have custom preset AE positions on the mode dial (like C1, C2, C3 on the Canon 7D), it can be confusing when using the 400plus Custom Presets to load a preset that may use an AE mode of Tv when the mode dial is still currently set to Av, M, P, or another mode. The Custom Preset feature does work however by overriding what the mode dial setting is currently set to which is GREAT but still a bit confusing.
I'm getting to my questions now... The mode dial has an A-DEP (Automatic Depth-of-Field mode) position which is probably not often used by many photographers (my opinion). Would it make better sense to only allow the Custom Presets to be loaded when the mode dial is set to the A-DEP position? Maybe this would be a bit less confusing for the reasons stated above?
At this time I am not even sure if the devs working on the 400plus source can even support this feature but if so, it seems to make more sense to me to do it this way.
Please chime in with your opinions...
Hi,
great work and improvements so far.
Is it possible to implement cycling menus that wrap around when you reach the top/bottom of the list. So pressing the down arrow when at the bottom will select the topmost entry and vice versa?
Just a little suggestion to improve usability / handling.
Cheers
Another option that crossed my mind was to allow the user to select only those presets whose saved AE mode match the current AE mode selected in the main dial, but that can be quite frustrating. Or open a dialog after loading a preset, prompting the user to change the main dial to the AE mode saved in that preset.
Hi,
great work and improvements so far.
Is it possible to implement cycling menus that wrap around when you reach the top/bottom of the list. So pressing the down arrow when at the bottom will select the topmost entry and vice versa?
Just a little suggestion to improve usability / handling.
Cheers
Another option that crossed my mind was to allow the user to select only those presets whose saved AE mode match the current AE mode selected in the main dial, but that can be quite frustrating. Or open a dialog after loading a preset, prompting the user to change the main dial to the AE mode saved in that preset.
I was going to propose that too... this is the best solution in my opinion.
We can have separate presets for each AE mode. It wont be so confusing when we make the names for the presets.
About the A-DEP mode, it's useless really, I think we can make it work too... when the camera starts we can detect the AE mode (A-DEP) and load the last used preset. This should fix the problem with restarting the camera, but we still need to detect auto power-off though. If i'm lucky I could catch some events about the power-off, this could help with autoloading the preset.
With AE you mean the Auto Exposure measurement pattern, or else what presets are you talking about?We are refering to the "Auto Exposure modes": P, Tv, Av, M, A-DEP, ...
Now, this would certainly be a nice feature and solve both issues! I am having a tough time trying to wrap my head around what you would code to restore to the camera upon powering back on in A-DEP mode though.
Would you restore the last Preset if one had been chosen prior to power-off? This would work fine if no settings had been changed by the user after the Preset had been loaded. I think this feature will take some serious thought prior to implementing - it's a great idea though if you can pull it off! Especially being able to "listen" or "auto-detect" a pre- "power down" event or something in order to save a flag or semaphore or value indicating that a Preset was currently loaded and which Preset it was.
What if: When the camera powers on in A-DEP mode (only) and it was determined from the last power-off cycle that a Preset was loaded that a dialog is displayed indicating to the user to "Reload last Preset, or use standard A-DEP settings?" or something similar?
I just implemented what I explained above, it will be available in the next nightly build; let's see if it works.
I did the following test first (no hack involved here):
Set the camera to M mode, aperture to 1/1.8 and speed to 1/60; moved to Av and set aperture to 2.2; changed to Tv and set speed to 1/400. Now I can jump around these modes, and the camera will recall the correct aperture and speed that I had set for each mode. I also saved these settings as three presets.
Then I made a small modification to our code, so the when a preset is loaded from the card, only the AE value is read and applied, no other parameter from the preset is used. Now I set the camera to A-DEP mode and read those presets; guess what happens? When I change the AE mode, the camera also recalls the other parameters!
This means we could do the following:
- Presets can only be read while in A-DEP mode.
- When a preset is read, we write to the card the AE mode corresponding to such preset.
- When the camera boots, we check the current AE mode: if we are in A-DEP, we load and apply the last AE mode set by a preset; the camera will then recall the other parameters.
I did the following test first (no hack involved here):
Set the camera to M mode, aperture to 1/1.8 and speed to 1/60; moved to Av and set aperture to 2.2; changed to Tv and set speed to 1/400. Now I can jump around these modes, and the camera will recall the correct aperture and speed that I had set for each mode. I also saved these settings as three presets.
Then I made a small modification to our code, so the when a preset is loaded from the card, only the AE value is read and applied, no other parameter from the preset is used. Now I set the camera to A-DEP mode and read those presets; guess what happens? When I change the AE mode, the camera also recalls the other parameters!
This means we could do the following:
- Presets can only be read while in A-DEP mode.
- When a preset is read, we write to the card the AE mode corresponding to such preset.
- When the camera boots, we check the current AE mode: if we are in A-DEP, we load and apply the last AE mode set by a preset; the camera will then recall the other parameters.
I believe the nightly build is working as you suspected it would. Nice.
I believe the nightly build is working as you suspected it would. Nice.
Nice find - this certainly makes coding a bit easier I would assume. :D
Now for more implementation of Presets and A-DEP:
I did notice a possible issue and rightly so - Let's say you load Preset 5, and then watch your excellent work by setting the mode dial to A-DEP, let the camera auto power off, then half-press the shutter release button to bring it back alive and see all of your Preset 5 settings come back to life. All is working and good at this point.
Now move the mode dial to Av (or any other setting), possibly change ISO from 100 to 200, set metering to Evaluative, and snap a few more shots. Now move the mode dial back to A-DEP and take note that the camera AE mode is now the original A-DEP, take a shot or two to see how A-DEP works. Now let the camera auto power off, half-press the shutter release button to come back alive - we are back at Preset #5 again...
Need to work through the logical design of how this should really work, now that we have learned that the restoring of settings by the camera is now the easy part... 8)
Yes, I am afraid that we are going to have inconsistencies like these popping out forever... but nice catch anyhow! Two proposals come to my mind:
- Completely sacrifice the A-DEP mode; as soon as the camera enters A-DEP, we recall the last preset used.
- If the user leaves A-DEP, delete the info we stored previously, so it does not get reloaded later.
Both options have their drawbacks, however...
Seems to me that if you are able to "detect" a mode dial change by the user, and also (in future code) you are able to "detect" the current camera mode dial AE setting then you are mostly there.
Then by making the A-DEP feature optional by a menu choice such as "Use A-DEP for Presets: Yes/No" to either allow our "Mars" users :) to use original A-DEP (the "No" setting); or use A-DEP for Presets (the "Yes" setting) and follow the steps you have indicated in your last 2 posts then we have a pretty solid foundation to build upon.
It was a bit harder than what I expected, but I think I have it now; A-DEP now means "presets":
- Presets can only be read at A-DEP (this is just to remind users to put the dial there).
- Whenever the camera enters into A-DEP (or boots with the main dial in A-DEP) the last preset (if found) is recalled.
- This behaviour cannot, at this moment, be configured out.
Of course, all this will be available in the next nightly build.
A bit more playing and testing and I was able to get the camera in a state where the mode dial was set to A-DEP and pressing the DIRECT PRINT button at the Shortcuts menu would not show the Load presets menu... (no blue light or anything - it was like the DIRECT PRINT button had become inactive).
Have not been able to reproduce this again yet but will try more. I remember I had loaded a preset, then changed a few settings, saved a preset, turned the mode dial to a different AE setting, returned the mode dial back to A-DEP setting and let the camera sit for quite a while (10 minutes or more), before half-pressing the shutter to bring it back alive - then somehow I experienced the inability to see the Load preset menu any more from A-DEP. I also noted that the order of my Shortcuts menu was no longer saved to the custom order I had previously saved it to - it had returned back to the default order.
Not trying to purposely break anything here, just testing and enjoying the new features and noted these conditions and wanted to report back my findings...
I have just remembered that presets store all settings, and that includes the order of the shortcuts menu; this is "by design", because which shortcuts are more useful may depend on the situation. You probably saved a presets before reordering the shortcuts, and a presets recovered later that (non)order.
I think we need an option to decide which settings are included in the presets.
It would be nice to have a wiki doc out in the repository (once Preset code is complete) that shows all of the settings that are saved / restored for a Preset (not the actual values, just what settings are used with Presets). I have looked over the code and see most of them. I might add an Issue as an enhancement to also load/store the camera "Auto power off" value. I didn't see that one in code. Do you have access to this setting?
Still trying to determine exact steps of how I got the no-show of the Load preset menu while in A-DEP mode. I'll keep testing as I have time.
We know how to save them (we are already saving them to the card, actually), but still have to figure out how to apply them (almost trivial, probably); but I do not think all of these should be used: does it make sense to change the language with a preset, for example?.
The presets are amazing.
I can't think of any kind of photographer not finding them useful.
Is there any reason to limit them to a quantity of only 5?
Do you think it would be useful to have them be easily shared, edited and/or imported?
I would bet the amount data in one preset file is so small it might fit just within then length of the file name.
Could preset files be made in ASCII format?
To let a reader know what each value is representing maybe a little bit of text could be added.
That way you could associate Notepad with them and edit them quickly on the computer.
It would be even faster for computer users if it was all put in just one easily editable ASCII file.
Couls someone post some example of preset? Just for my better understanding.
Yes, of course:
Hope this helps.
ok guys,
Please let the braves of you take the nightly build 20110505, revision should be >= 477
( i'll force the nightly build so it will be available for downloading right after i go to bed ;) )
and test the menus... please fill an issue for any problems you find in menu navigation or let us know here.
i said only the braves of you, right ?!
most of you should stay on the normal scheduled releases and wait for the next release.
I noticed in the new version #477 that you get the option to have the screen dim when script is activated.
Do you think it should it get bright again after after script is over?
I double checked what I did with my camera and I think it stayed dim afterwards just because I powered it off in mid script execution.
So no real problem.
Until now you're only flooding us in the forum and in the issue list.
Please read more, talk less !
Test more, report and suggest real things !
This is f*cking annoying...
Hi,
first of all thanks and thanks again for your job, I'm appeciating very much. I'd like to ask a simple thing that I cannot understand: is it possible to assign a name to a preset? If yes, how? Thanks in advance for your suppport.
Ciao
Francesco
I would like to learn more details about hooking firmware functions.
I am not sure I would be good at learning a new programing syntax after a 30 years with just knowing one.
But hooking functions sounds like fun, please pardon the pun, and how many parameters could simple functions like auto play have?
Any tips on this?
Any pointers to more reading material on this subject would be great.
Hello everybody! Long time reader, first time poster here. Let me start off by saying how much I appreciate the work you do.
I also realize that it probably isn't the best start to barge in with feature suggestions, but there are two that really stand out since I've been using 400plus. I, however, have no idea how hard they are to implement, so feel free to shoot them down immediately.
The first would be to make 400plus format-resistant. I don't know where and when, but back when I started using my 400D, I received the hint to "never erase, always format". Possibly to prevent corruption, it may simply be superstition, too. In any case, I somehow became used to format the card to empty it, and of course 400plus won't survive a format. I honestly don't have a good idea how to prevent this, storing 400plus files temporarily and write them back after a format is probably very hard to implement. Maybe it would be easier to do an "are you sure, this will delete 400plus" check with the format option? I don't know ...
The second one is a bit of a pet peeve of mine. When using the 2nd curtain flash, the 400D would still fire a flash first to measure lighting. Which, with my favorite lens, is completely pointless (manual lens in manual mode). It's even counterproductive because my picture subjects assume it was the main flash and break pose. Would it be possible to turn off this first "guide" flash?
The first would be to make 400plus format-resistant. I don't know where and when, but back when I started using my 400D, I received the hint to "never erase, always format". Possibly to prevent corruption, it may simply be superstition, too. In any case, I somehow became used to format the card to empty it, and of course 400plus won't survive a format. I honestly don't have a good idea how to prevent this, storing 400plus files temporarily and write them back after a format is probably very hard to implement. Maybe it would be easier to do an "are you sure, this will delete 400plus" check with the format option? I don't know ...
This one looks interesting, but I see some roadblocks in our way: intercept the camera's formatting routines, store the files somewhere, recondition the FAT, ...; not easy!
Feature request...
Hi guys. How about adding the ability to set the exposure time from within the interval menu? At the moment, it is only possible to do exposures of up to 30 seconds as the next option is `bulb`. I would like to be able to set this so you could take a specific number of photos with anything up to 5 minute exposure times.
An example of when you may want to do this would be shooting star trails. To do this would would take a load of 5 minute exposures and then `stack` them in photoshop...
Anyone think this is possible?
Thanks for all the hard work so far!
Feature request...
Hi guys. How about adding the ability to set the exposure time from within the interval menu? At the moment, it is only possible to do exposures of up to 30 seconds as the next option is `bulb`. I would like to be able to set this so you could take a specific number of photos with anything up to 5 minute exposure times.
An example of when you may want to do this would be shooting star trails. To do this would would take a load of 5 minute exposures and then `stack` them in photoshop...
Anyone think this is possible?
Thanks for all the hard work so far!
Hello all,
I just wondered if anyone had any luck with this? It would be a really useful function for me but if it is too much work or too difficult then no worries...
many thanks for all the work so far!
Cheers
repeater
The second one is a bit of a pet peeve of mine. When using the 2nd curtain flash, the 400D would still fire a flash first to measure lighting. Which, with my favorite lens, is completely pointless (manual lens in manual mode). It's even counterproductive because my picture subjects assume it was the main flash and break pose. Would it be possible to turn off this first "guide" flash?
[...]
If you don't want the preflash, just USE the MANUAL power option on your flash... It's NOT THAT HARD.
[...]
The built-in flash does not have a MANUAL option, AFAIK.
However, if the person I quoted was referring to the built in flash, then don't set your shutter speed too low to have the preflash seperated from the main flash for a good amount of time.Too simple. 2nd curtain flash, and please do correct me if I'm wrong, only makes sense if I intend to draw in at least some ambient light before the scene is illuminated by the flash. Setting the shutter speed short enough to make those two flashes indistinguishable defies the purpose of the 2nd curtain flash, I could as well use the front curtain flash then.
Simple.
Disabling the preflash is COMPLETELY unnecessary, absurd, and not to mention the most POINTLESS thing ever.I try not to take this personally, but it would actually be nice that, especially in a forum that dabbles in VERY specific tweaks of a camera's function, you could at least ASSUME there is a specific reason for people to ask about specific things. You are acting as if I actually insulted you by daring to ask about disabling the ETTL preflash. Especially since, in my scenario, the preflash becomes pointless:
The preflash is NEEDED to measure the power for the main flash that illuminates the image when you are using ETTL mode.For ETTL to work, the 400D needs to know the lens aperture (technically speaking, it shouldn't, but for some reason only Canon knows, it does). If it cannot read the aperture from the lens, the internal flash will always fire full power, regardless of preflash results. Which is fine, I know the flash's guide number and calculate ISO and aperture after roughly estimating the shot. That's what people used to do before TTL, by the way.
About the formating of the card, the only reason to format the CF i could think of is to make defragmentation.I agree. Again, I just got used to formatting the card instead of erasing all, but I don't see where there would be a big difference in everyday usage. Formatting once every while should be just fine. It would just be good to avoid the accidental formatting of the card without a laptop in reach to reapply the 400plus firmware. It would already help a lot to make the formatting option harder to use.
Time for a new release, thanks to the efforts (in no particular order) of 0xAF, Sergei, The Queen of England, and myself:
- Multi-language support (only English and German right now).
- Presets have been improved, there are more options related to them, and now they can be renamed and reordered.
- Some enhancements for the scripts: disable MLU and auto power-off or dim LCD down during the execution of a script, and EAEB exposures up to 16 minutes.
- Other minor additions and fixes.
As always, the links are:
- A Word of Warning (that everybody should read) at http://code.google.com/p/400plus/wiki/AWordOfWarning (http://code.google.com/p/400plus/wiki/AWordOfWarning).
- Source at http://400plus.googlecode.com/files/400plus-20110517-0.src.zip (http://400plus.googlecode.com/files/400plus-20110517-0.src.zip).
- Binary at http://400plus.googlecode.com/files/400plus-20110517-0.bin.zip (http://400plus.googlecode.com/files/400plus-20110517-0.bin.zip).
- Updated user guide at http://code.google.com/p/400plus/wiki/UserGuide (http://code.google.com/p/400plus/wiki/UserGuide).
- There are also Spanish (http://code.google.com/p/400plus/wiki/UserGuideSpanish), Italian (http://code.google.com/p/400plus/wiki/UserGuideItalian), and German (http://code.google.com/p/400plus/wiki/UserGuideGerman) translations (still not updated to the latest version, however).
We hope you enjoy.
Which is why you should just spend $200 on a Canon flash that does manual mode metai.I do own a 430EX II, and know about its pros and cons. One con is that I don't want to take it around everywhere because it effectively doubles the space my camera and lens take in my bag.
it's not hard to use ISO3200 to SHORTEN your shutter speed, gaining the amount of light that it would take for a lower iso and longer shutter speed. (...) It ALSO helps if your aperture is as max as it will go.No. High ISO and large aperture over a short exposure do not equal longer exposure.
Because simply saying the preflash is pointless in 2nd curtain is retarded. Period.Nowhere did I say in general it was pointless, that is only what you are taking from what I can only assume is a very shallow scanning of my text.
Hi Edu and thanks again for your job. Can you explain better how to rename a preset?
Thanks a lot.
Bye
Kekko
I do own a 430EX II, and know about its pros and cons. One con is that I don't want to take it around everywhere because it effectively doubles the space my camera and lens take in my bag.The 430EX II is SMALL enough as it is already. I own the 580EX II, and I find it very compact. I've rented the 430, and I was surprised it was that much smaller.
No. High ISO and large aperture over a short exposure do not equal longer exposure.Um, yes it does. ISO3200 + F/2.8 vs ISO1600 + F/4.
Nowhere did I say in general it was pointless, that is only what you are taking from what I can only assume is a very shallow scanning of my text.Well in no where was I indicating that I knew nothing about photography.
Seriously, after three posts in here I am already thoroughly annoyed by your debating style. You are constantly putting words in my mouth I did not say, while at the same time lecturing me on photography basics as if you were the only one who could possibly know them. Or worse, as if you were the only one who is doing it right and everyone else is, quote, "retarded" not to go about photography the way you do. I said it before, and I'll say it again: Please at least try to ASSUME people know what they are talking about. That would be rather nice, thank you.Well I'm not the one who assumes that the other one is also a photography n00b with the basics.
Maybe you should get a bigger camera bag.See where we've arrived here?
(...)
ISO3200 + F/2.8 vs ISO1600 + F/4.
(...)
I'm saying it's the most pointless thing to even ASK, as if you actually knew flash photography itself
(...)
Well I'm not the one who assumes that the other one is also a photography n00b with the basics.
I work with flash photography on a daily basis. Off camera flash photography as well, as WELL as flash photography in the complete dark.I accept that, why wouldn't I. But please, for a moment, consider if everyone who doesn't go about photography the way you are really is a daft idiot who doesn't even deserve to be taken seriously in the first place.
And now you, sizzlincok. Shut the f-k up, will ya?
First of all: Thank you for making my camera much more versatile. :D
Is the hack causing battery drainage?? The last 2-3 weeks or so I have experienced that after using my camera, on-off-on-off, photographing a 100 or so pictures, inbetween changing lenses (blue and red lamps blinking everytime), moving memory card in and out (lamps blinking everytime), goes to bed - after setting camera to 'OFF'. Next morning - camera, i.e. battery - is dead. :'( Full recharge needed.
I do use a battery grip - and I thought this might be part of the problem, leaving the grip 'on'; but no, with control 'off', battery runs out of power. It could be old batteries, but no, my newer ones (recharged around 50 times) also drains out overnight.
This is a new situation. not quite sure when I first got suspicious - 3 or 4 main versions ('featured') ago? After setting and recalling presets was introduced?
Is this a bug - hack working night shift - or is it my camera-battery-combo?? I can't tell for sure. But it's annoying. Anybody experiencing the same???
I wonder if any one else thinks it would be useful to have a setting where the camera takes a second picture every time in full auto?(perhaps without the flash if off)here is my opinion on full auto mode:
You would have a back up for any mistakes.
One could experiment and have a safety at the same time.actually that's the main advantage of DSLR (and digital cameras at all)... you can experiment and see results... delete and experiment again...
I think it also might be good for comparison while experimenting and for mixing in photoshop.you wont have second exposure usable for merging with the first photo...
I know the full auto mode isn't great because I get a much better histogram without trying too hard in manual modes but full auto as a second exposure could still be a bonus often in tougher shots.
I think a system that in every picture the settings are wrote, read and set with would be very user friendly and allow for a very fast tune of your camera to its environment.i still cannot get your point ? how would we have the photo (with the settings) before we actually take the photo ?
Perhaps he is talking about using already-taken photos as "presets", something I have actually seen in P&S cameras several years ago. Wouldn't really make much sense, especially with a full-fledged preset system already in place.I think a system that in every picture the settings are wrote, read and set with would be very user friendly and allow for a very fast tune of your camera to its environment.i still cannot get your point ? how would we have the photo (with the settings) before we actually take the photo ?
It is possible to put the camera in a state where it doesn't shutdown completely.
On 550D, this happens when:
- you block the gui_main_task (i.e. a custom handler for some event doesn't return)
- you use pointers in a wrong way (e.g. forget to malloc them)
- you try to open a non-existent file from the startup function on FAT32 cards (was an issue in early 2010 builds)
On 5D2, AJ stops all Magic Lantern tasks when he intercepts the shutdown effect. On 550D, calling msleep periodically does the job well :)
It is possible to put the camera in a state where it doesn't shutdown completely.
On 550D, this happens when:
- you block the gui_main_task (i.e. a custom handler for some event doesn't return)
- you use pointers in a wrong way (e.g. forget to malloc them)
- you try to open a non-existent file from the startup function on FAT32 cards (was an issue in early 2010 builds)
On 5D2, AJ stops all Magic Lantern tasks when he intercepts the shutdown effect. On 550D, calling msleep periodically does the job well :)
Does this mean we can have alarms wake the cam up to do a task?not precisely... if we want to do such thing, we need to block the shutdown and keep the camera online all the time... but if we want to do this, then why would we shutdown it ?
Pedroluis-the off switch of the grip is for the grip buttons only, not for the power. atleast mine.
I should first note that i dont even have a battery grip but, if your camera drains the grip battery over night with the grip in off position I would think there is a small trickle of a short in the grip. It maybe some dirt in it.
AF-i think i got it now... (like metai suggested), but this means we should find a way to parse the exif data of the already taken photo, which i have no idea how to do...
I will try to answer your last question first with an quick example.
You are with your camera in a new place, say your office.
You take a few pictures and find the best settings, iso, white balance, and everything else.
After you are done tuning it to perfection you will have a photo of office with all the best settings contained in it.
If you keep that photo on your card when ever you enter the office to take more shots, just click the office picture you made before and you are ready with no rethinking required.
This could be done for all the different situations one may find themselves in repeatedly.
-the new photoshop will auto align the pictures if there is any movement in the split second between them ,so no problem.i'm aware of that, but still not the best way to get HDRs...
-different ISO's would mean one photo would have less noise and this would be a bonus to work with.yes, but it would be the first(yours) photo, not the full-auto photo... so still pointless...
-different apertures would give more control of the depth of field in the mix of pictures and the ability to remove the distortions some apertures have.i'm not sure how is this done, i never thought of mixing different aperture photos...
Also I would like you to please consider that when photographing wild life, children and other chaotic subjects you don't always have the chance to delete and try again and it could be very valuable to be free to try what ever you like to get an amazing shot and still be sure that you are getting the basic image to start with.ok, but keep in mind that the second photo will be taken few seconds after the first one, so it's still not the same... actually it will be like holding your shutter button in continuous shooting... which you can do ATM.
it wont be HDR... you can setup your camera on tripod and take a photo in semi-auto mode (Av,Tv) with custom settings, then take it with full-auto... try to merge them and see what will happen ... i would like to see the results...
Its HDR made with a faster and easier and more diverse type computer aided of EAEB.
We would be truly working with the computer instead of it just doing what its told.i would actually prefer to work with the camera on-site, instead of trying to fix my mistakes in photoshop...
Before thinking of this, I had much the same thoughts of auto mode as you, but as a second complementary exposure it will be very useful.it wont be usable frame for merging it with the first one... atleast in my opinion...
For people who want to uninstall the hack:
eventproc_DisableBootDisk(); // this function disables bootdisk and the hack!
from what i see it changes an address in the rom: 0xF8000004... i guess it is the flag for the bootloader.
so the hack should be enabled with testfir.bin after it was been disabled with eventproc_DisableBootDisk()...
still i believe it's not good idea to change rom addresses unless the user want's to disable the hack once and for all...
we can make our init routine to check if there is a flag "DontStartHack", or we can make it check for existence of a file named "nohack" , or whatever... and then we can skip our initializations and jump directly to the original FW...
Feature request...
Hi guys. How about adding the ability to set the exposure time from within the interval menu? At the moment, it is only possible to do exposures of up to 30 seconds as the next option is `bulb`. I would like to be able to set this so you could take a specific number of photos with anything up to 5 minute exposure times.
An example of when you may want to do this would be shooting star trails. To do this would would take a load of 5 minute exposures and then `stack` them in photoshop...
Anyone think this is possible?
Thanks for all the hard work so far!
Hello all,
I just wondered if anyone had any luck with this? It would be a really useful function for me but if it is too much work or too difficult then no worries...
many thanks for all the work so far!
Cheers
repeater
This has already been done; just wait for the next release, or try the latest nightly build (if you feel brave enough).
Hi all,
I am a little confused by this as I cant seem to get it to work. If I wanted to set the camera to take 20 shots using the intervalometer, with each shot being 5 minutes long, how would I do it? I have tried enabling the EAEB option in the intervalomenter option but it still just brackets the shots by stops.
Can anyone explain, step-by-step, the procedure? Sorry for being an idiot - I would love to get this working though!
What you need is intervalometer + longer exposures, no bracketing involved, no?
from what I understand, with magic_off, magic lantern still loads, but no tasks are started. why not implement something similar to this? this way it's a temporary off.
from what I understand, with magic_off, magic lantern still loads, but no tasks are started. why not implement something similar to this? this way it's a temporary off.
All current functionalities of 400plus are designed around a proxy, that intercepts messages as they travel around the camera; if we just let the messages pass untouched, and do nothing else, the camera should behave exactly as before the hack. We would still be doing all the initialization at the booting process, but I do not see how to avoid that (unless we do call eventproc_DisableBootDisk, obviously).
It would be temporary, but the user would need to have access to a computer with a card reader in order to enable the hack back again.
btw the testfir.bin seems to be compiled with gcc 4.1.0, i presume it was generated by a hacker...
the original firmware is compiled with different compiler ... if someone have some info on testfir.bin would be nice...
I have looked for a long time on info (particularly source) for testfir.bin and have come up with nothing. It would be nice to know exactly what steps this small firmware does to enable the bootloader to boot from a CF card so that the reverse steps could one day be performed to put the camera back as it was before ever flashing testfir.bin.
There have been forum posts (here and elsewhere) and talk on other sites of just re-flashing original Canon firmware and the actions of testfir.bin would go away. Not true for any of the 400D bodies that I have - I have tried this many times. I have never found a way to do it. Others say just format your card to remove AUTOEXEC.BIN and 400plus will not load, well that of course works but is not the same thing.
If use of "eventproc_DisableBootDisk" from 400plus could be determined to put the camera back into the state as if testfir.bin had never been flashed then that would be an excellent addition to 400plus just for the sole purpose of putting the bootloader back to its factory mode. It could even be a menu option in the Developer menu.
I think testfir.bin does same thing what "eventproc_EnableBootDisk" and "eventproc_DisableBootDisk" do - modifying boot flag. There is no source code for testfir.bin, but here is code for bootflg2 which been used in 350d to modify boot flag:
http://chdk.setepontos.com/index.php?topic=4202.msg57328#msg57328 (http://chdk.setepontos.com/index.php?topic=4202.msg57328#msg57328)
If you want to try "eventproc_DisableBootDisk" here is autoexec.bin with "Uninstall The Hack" option in settings menu.
http://www.mediafire.com/?r16185xl6mgkktw (http://www.mediafire.com/?r16185xl6mgkktw)
Press menu, dp to go in settings menu.
Press left button to go on last page. Then set, right to change "no" to "yes" and set to save it. After you reboot camera you will see it starts almost immediately, no more looking for autoexec file. I have tested it on my camera but there is always a risk. Make shure battery is not dead before trying to remove the hack.
What you need is intervalometer + longer exposures, no bracketing involved, no?
Yes - that is exactly what I would like. Thanks for your help!
Bug or Feature? 8)
Since the current 400plus menu system briefly displays the original menu first and then displays the "400plus Settings menu" immediately afterwards, there is now potentially a second way to get to the "400plus Settings menu": Try this test (using the svn-0567 nightly build):
- Make sure Shortcuts settings is set to Yes
- Power-on Camera
- Very quickly press the DP (DIRECT PRINT) button two times
If your two (2) DP button presses were fast enough, then you have now arrived at the "400plus Settings menu"! This works just like pressing the MENU button first and then pressing the DP button to enter to the "400plus Settings menu". And it makes sense why.
If you had just pressed the DP button only once then you would arrive at the "Shortcuts menu".
If you had pressed the DP button once, then paused slightly and pressed the DP button a second time you would be at the "Load presets menu" (if mode dial is set to A-DEP and the "Use A-DEP Setting is: Yes).
What you need is intervalometer + longer exposures, no bracketing involved, no?
Yes - that is exactly what I would like. Thanks for your help!
Now that I think about this... if you set the camera on BULB mode, and configure the same value for both "Manual [" and "Manual ]" (*), then you get an one-exposure EAEB, which can be used from the intervalometer to achieve exactly what you want.
(*) These should probably be renamed to "Bulb min" and "Bulb max" now.
The Question: If I wanted to set the camera to take 20 shots using the intervalometer, with each shot being 5 minutes long, how would I do it?
What you need is intervalometer + longer exposures, no bracketing involved, no?
Yes - that is exactly what I would like. Thanks for your help!
Now that I think about this... if you set the camera on BULB mode, and configure the same value for both "Manual [" and "Manual ]" (*), then you get an one-exposure EAEB, which can be used from the intervalometer to achieve exactly what you want.
(*) These should probably be renamed to "Bulb min" and "Bulb max" now.QuoteThe Question: If I wanted to set the camera to take 20 shots using the intervalometer, with each shot being 5 minutes long, how would I do it?
If I am following this correctly, then this would give @repeater "almost" exactly the solution desired. The choice of "5" minutes is not possible with current 400plus, it would need to be 1,2,4,8 or 16 minutes right?
This would be the setup:
- Shortcuts menu: Yes
- Ext. AEB> Delay: No or 2s
- Ext. AEB> Frames: 1
- Ext. AEB> Step (EV): Off
- Ext. AEB> Manual [: 4'
- Ext. AEB> Manual ]: 4'
- Interval> Delay: No or 2s
- Interval> Time (s): 0 - 250
- Interval> EAEB: Yes
- Interval> Shots: 20
This would be the workflow:
- Set Camera Mode Dial to "M" for Manual.
- Adjust main dial all the way to left to "BULB" setting.
- Make any other settings/changes desired for your shot(s).
- Press DP (DIRECT PRINT) to enter Shortcuts menu.
- Press DOWN (WB) to highlight Intervalometer script.
- Press SET to launch highlighted Intervalometer script.
- wait...
The outcome would produce 20 shots with54 minute exposures.
Bug or Feature? 8)
Since the current 400plus menu system briefly displays the original menu first and then displays the "400plus Settings menu" immediately afterwards, there is now potentially a second way to get to the "400plus Settings menu": Try this test (using the svn-0567 nightly build):
Bug or Feature? 8)
Since the current 400plus menu system briefly displays the original menu first and then displays the "400plus Settings menu" immediately afterwards, there is now potentially a second way to get to the "400plus Settings menu": Try this test (using the svn-0567 nightly build):
i'm aware of this bug... the new menu system is under way.
Sergei already found how to create the dialogs w/o calling the original menu of the camera.
Is there a trick to getting preset names to save? I can rename them fine, the name displays after I click the bottom bar, I can reenter the preset screen and see it. However after I power cycle the camera, the preset reverts to the default name. This is also the same case with reordering the presets. They only retain their position until the power is cycled.
I'm using the 20110517 version.
What you need is intervalometer + longer exposures, no bracketing involved, no?
Yes - that is exactly what I would like. Thanks for your help!
Now that I think about this... if you set the camera on BULB mode, and configure the same value for both "Manual [" and "Manual ]" (*), then you get an one-exposure EAEB, which can be used from the intervalometer to achieve exactly what you want.
(*) These should probably be renamed to "Bulb min" and "Bulb max" now.QuoteThe Question: If I wanted to set the camera to take 20 shots using the intervalometer, with each shot being 5 minutes long, how would I do it?
If I am following this correctly, then this would give @repeater "almost" exactly the solution desired. The choice of "5" minutes is not possible with current 400plus, it would need to be 1,2,4,8 or 16 minutes right?
This would be the setup:
- Shortcuts menu: Yes
- Ext. AEB> Delay: No or 2s
- Ext. AEB> Frames: 1
- Ext. AEB> Step (EV): Off
- Ext. AEB> Manual [: 4'
- Ext. AEB> Manual ]: 4'
- Interval> Delay: No or 2s
- Interval> Time (s): 0 - 250
- Interval> EAEB: Yes
- Interval> Shots: 20
This would be the workflow:
- Set Camera Mode Dial to "M" for Manual.
- Adjust main dial all the way to left to "BULB" setting.
- Make any other settings/changes desired for your shot(s).
- Press DP (DIRECT PRINT) to enter Shortcuts menu.
- Press DOWN (WB) to highlight Intervalometer script.
- Press SET to launch highlighted Intervalometer script.
- wait...
The outcome would produce 20 shots with54 minute exposures.
5 minutes was a random number I picked. 4 would work equally as well. I will try this tomorrow and post back (I am knackered now - time for bed!)
Thanks all.
All I need now is some good clear nights to shoot some star trails - can you make this happen as well?
All I need now is some good clear nights to shoot some star trails - can you make this happen as well?
Call Chuck Norris.
... no wait, he will call you !
Yo, excellent work leading up to nightly build r583!
It is looking very good and nicely polished. I am still seeing situations where occasionally the "Load presets" menu will not show up when pressing DP from the Shortcuts menu with mode dial set to A-DEP but I can't quite nail it down yet as to the exact procedure for when it happens. I'll chime in with more detail later on.
Thanks, and keep up the excellent work!
Guffster
Does anyone have any experience using 400S on a CF card greater than 8GB? I've been using it with no problems on a Sandisk Ultra 8GB, and I'm looking to move up to 16GB. Just wondering if anyone has hand any issues with larger capacity cards.
This url describes well the various sizes of cards that many Canon cameras may use.Does anyone have any experience using 400S on a CF card greater than 8GB? I've been using it with no problems on a Sandisk Ultra 8GB, and I'm looking to move up to 16GB. Just wondering if anyone has hand any issues with larger capacity cards.Shouldn't be a problem for you. A quick Google search for "16gb CF card Canon 400D" turns up quite a few hits with people having success with cards even up to 64gb. You should know however that on the LCD of the camera, the value for the number of pictures remaining may not have enough digits in it to be accurate, so it will be off, but the CF card should work just fine.
hello,
I'm new here. My english is not very good, because school is long ago ;-)
first, thank you for this great work!
now I have a question.
maybe there is a bug.
in the 400+ menu is since a few issues/releases the problem that if I want to change the settings in handwave and turn the wheel there is no change of the settings or only to the end of the possibilities an then the menu freezes... it is possible to get out of the menu with the shutter button. but then the menu is not working again. with the dp button. you have to turn off the cam an on again. sometimes put the batteries out and in again.
in the timer settings the cam freezes immediately when turning the wheel. the on off switch do not work then. I have to open and restore the batteries ...
has this problem one of you too?
Greetings Luk
To change the parameters in the 400+ menu in handwaving you have to use the wheel. there isn't a way to change the secondary settings i think. and this is only in handwaving and the timersetting.
and yes i have a batterygrip top. turning on this wheel is the same result.
the other menupoints does work normally.
Shouldn't be a problem for you. A quick Google search for "16gb CF card Canon 400D" turns up quite a few hits with people having success with cards even up to 64gb. You should know however that on the LCD of the camera, the value for the number of pictures remaining may not have enough digits in it to be accurate, so it will be off, but the CF card should work just fine.
Does anyone have any experience using 400S on a CF card greater than 8GB? I've been using it with no problems on a Sandisk Ultra 8GB, and I'm looking to move up to 16GB. Just wondering if anyone has hand any issues with larger capacity cards.I'm using a Transcend 16GB card without problems. Works like a charm.
the wheel is working normally in the other cam functions.
there are the problems in the 400+ menu I have. when I want to change the settings in the handwave script.
and timer script...
in the other scripts the settings turn round and begins new when turning the wheel.
only in handwave and timer freezing the menu or the cam complete
Is renaming/reordering of presets still in a state of flux? As of r586 I still can't rename the presets. I can't get to the renaming menu. I also can't get a reordered preset to appear in the same location after cycling the camera.
I don't see issues for these currently. Should I add them?
Is renaming/reordering of presets still in a state of flux? As of r586 I still can't rename the presets. I can't get to the renaming menu. I also can't get a reordered preset to appear in the same location after cycling the camera.
I don't see issues for these currently. Should I add them?
the wheel is working normally in the other cam functions.
there are the problems in the 400+ menu I have. when I want to change the settings in the handwave script.
and timer script...
in the other scripts the settings turn round and begins new when turning the wheel.
only in handwave and timer freezing the menu or the cam complete
Sorry, but I cannot reproduce this; I have been abusing the wheel for a couple of minutes, and the camera behaved properly.
the wheel is working normally in the other cam functions.
there are the problems in the 400+ menu I have. when I want to change the settings in the handwave script.
and timer script...
in the other scripts the settings turn round and begins new when turning the wheel.
only in handwave and timer freezing the menu or the cam complete
Sorry, but I cannot reproduce this; I have been abusing the wheel for a couple of minutes, and the camera behaved properly.
Main dial (wheel) is working just fine for me as well using latest nightly build of r586. I have never had any hardware issues with the main dial (wheel), and I have tested this on 3 different 400D camera bodies.
... Can you post a paragraph or 2 of your workflow for how you are trying to perform the rename and ordering of menus so that I can try to reproduce your issues? Thanks.
now I set the language in english there is not the problem.
it seems the have to do with the language
is there a possibility to fix it?
thank you!
Brandroid,... Can you post a paragraph or 2 of your workflow for how you are trying to perform the rename and ordering of menus so that I can try to reproduce your issues? Thanks.
Sure thing Guffster:
Trying to reposition a preset:
Turn on the camera, hit Menu, hit DPx2, press Play at the Save Presets screen, move the now selected preset to another position, press Play to drop the preset. At this time the card is accessed for a brief moment. Half-press the shutter button to get back to the shooting mode. Cycle the camera's power and enter the Save Preset screen or Load Preset screen and the preset order is back to the default.
When I try to rename the presets I use the same workflow up to the Play button. After selecting the preset with the Play button, I press Set to edit the name. Instead of entering the character selection menu, the preset is either saved or loaded (depending on whether I'm in the Load or Save Preset menu). I never see the character selection menu.
... Probably should create a new issue at the site below to officially record it (if you have not already done so) ...
I am currently reworking most of the menus' internals, please wait until I have finished that.
now I set the language in english there is not the problem.
it seems the have to do with the language
is there a possibility to fix it?
thank you!
now I set the language in english there is not the problem.
it seems the have to do with the language
is there a possibility to fix it?
thank you!
Definitively, this looks like the bug is in the German translation or the multi-language support; now that we found it, I think it will be easy to squash. Thanks!
now I set the language in english there is not the problem.
it seems the have to do with the language
is there a possibility to fix it?
thank you!
Definitively, this looks like the bug is in the German translation or the multi-language support; now that we found it, I think it will be easy to squash. Thanks!
Confirmed: the German translation contains texts far too long; now it is just a question of cutting them down, but I do not speak German...
... Probably should create a new issue at the site below to officially record it (if you have not already done so) ...
Thanks for confirming that Guffster (and setting me straight on the Jump button: it used to be the Set button). Looks like Eduardo is aware of the problem and wants me to hold off on submitting the issue:I am currently reworking most of the menus' internals, please wait until I have finished that.
As expected, this issue has miraculously fixed itself while I was working on something else; please check next nightly build.
thank you for trying to fix it.
the problem is still alive :-(
in english language the menu is working, german not...
thank you for trying to fix it.
the problem is still alive :-(
in english language the menu is working, german not...
I found more strings that were too long and "fixed" them myself (home I have not converted some innocent word into an insult or something like that).
with this nightlybuild version the cam freezes in handwave script settings too. it is not possible to change the secondmenu with the wheel...
ist there a possibility to fix the problem?
or does it work, if it is not possible, to use the script settings in english and the normal menu in german? of course it would be more nice, when the complete menu can show in german....
thank you, have a nice weekend!
The latest release is working pretty solidly for me. Thanks for all the hard work on this; it has really breathed new life into my 400D!
Is there any status update on issue #12 Mirror lock-up during scripts? I'd love to be able to have access to lock-up for doing star trails.
In 550D/500D/60D, MLU is a custom function, which is available as a property with some kind of bit fields.
With call("Release") twice.
Can you point me to the code where you set CFn's?
void SW1(int v, int wait)
{
prop_request_change(PROP_REMOTE_SW1, &v, 2);
msleep(wait);
}
void SW2(int v, int wait)
{
prop_request_change(PROP_REMOTE_SW2, &v, 2);
msleep(wait);
}
static void
bulb_take_pic(int duration)
{
[...]
SW1(1,100);
SW2(1,100);
// sleep
SW2(0,100);
SW1(0,100);
}
With call("Release") twice.I am going bang my head if that works for us...
from what i know about the FW, almost everything which needs to take a photo, simulates a shutter button press with something similar to press_button(shutter_btn);... so this should work (like alex described), i'm 99% sure (haven't tested it though)
i guess setting the MLU to ON and then calling shutter btn will rise up the mirror in first call, then in the second call photo will be taken.
it can be implemented in shutter_release();
we can check if settings.mlu==1 then set the MLU to ON and call eventproc_release() (which actually calls button_press(shutter)), then wait for 2 seconds (for example) for the camera to rest, then call the release() again...
Edu:
we should meet on chat to discuss what should i merge to the trunk ?
about the MLU was just a suggestion. we can discuss it on the chat... im sure there are better ways to do it.
btw i've put an option in the settings menu to enable the IR Remote Control in any drive mode of the camera (actually always enabled).
i guess this will be well accepted to the trunk (it's a short modification).
p.s. i've been busy lately, and ill be busy for next few months, so my work on the project will slow down.
but i have to say that i haven't lost my interest in this project, so i wont leave it any soon (at least until i have that camera). even with small additions, i hope it will be still of benefit to all.
ok, italian translation of the guide is now updated.
How can I help in converting software to italian?
How come the option for RAW in Auto mode was removed?
I found that quite a nifty option.
Hi all i'm new here and i'm posting here just to confirm that all worked good with the italian localization, but as already posted in the google.code page (when I submitted the patch) there are some minor corrections that I'm thinking about to optimize it.
First of all Illimitato is too long. I yet don't know if we can use ?
Also for me there are no problem with RAW mode in automatique with Av button.
Yes, "Illimitato" is one character too long, and it goes out of the screen; I did not catch dat when I did the tests, sorry. Will be fixed in next version, thanks for pointing it out.
Pressing the Av button while shooting from any basic zone (Full Auto, Portrait, Landscape, Close-up, Sports, Night Portrait, Flash Off) should toggle image quality between JPG / RAW. Is this not working for you? Which version of 400plus are you using?
Hello, i'm french,
My english is not perfect, and i have tested to edit "languages.c" for added French Language.
I dont no if is the good action for this.
Someone just help me ?
I'd realy like helped for this project :)
Thanks
Hi,
great work and improvements so far.
Is it possible to implement cycling menus that wrap around when you reach the top/bottom of the list. So pressing the down arrow when at the bottom will select the topmost entry and vice versa?
Just a little suggestion to improve usability / handling.
Cheers
Looks interesting, I'll note it down; thanks.
Index: menu_shortcuts.c
===================================================================
--- menu_shortcuts.c (revision 686)
+++ menu_shortcuts.c (working copy)
@@ -21,6 +21,7 @@
void menu_shortcuts_script_self_timer (type_MENUITEM *item);
void menu_shortcuts_apply_iso (type_MENUITEM *item);
+void menu_shortcuts_apply_color_temp (type_MENUITEM *item);
void menu_shortcuts_apply_cf_emit_aux (type_MENUITEM *item);
void menu_shortcuts_apply_cf_mirror_up_lock (type_MENUITEM *item);
void menu_shortcuts_apply_cf_flash_sync_rear (type_MENUITEM *item);
@@ -28,14 +29,15 @@
void menu_shortcuts_script (type_TASK script);
type_MENUITEM menu_shortcut_items[] = {
- MENUITEM_ISO (LP_WORD(L_ISO), &sc_cameraMode.iso, menu_shortcuts_apply_iso),
- MENUITEM_LAUNCH (LP_WORD(L_EXTENDED_AEB), menu_shortcuts_script_extended_aeb),
- MENUITEM_LAUNCH (LP_WORD(L_INTERVALOMETER), menu_shortcuts_script_interval),
- MENUITEM_LAUNCH (LP_WORD(L_HAND_WAVING), menu_shortcuts_script_wave),
- MENUITEM_LAUNCH (LP_WORD(L_SELF_TIMER), menu_shortcuts_script_self_timer),
- MENUITEM_AFFLASH(LP_WORD(L_AF_FLASH), &sc_cameraMode.cf_emit_aux, menu_shortcuts_apply_cf_emit_aux),
- MENUITEM_BOOLEAN(LP_WORD(L_MIRROR_LOCKUP), &sc_cameraMode.cf_mirror_up_lock, menu_shortcuts_apply_cf_mirror_up_lock),
- MENUITEM_BOOLEAN(LP_WORD(L_FLASH_2ND_CURT),&sc_cameraMode.cf_flash_sync_rear, menu_shortcuts_apply_cf_flash_sync_rear)
+ MENUITEM_ISO (LP_WORD(L_ISO), &sc_cameraMode.iso, menu_shortcuts_apply_iso),
+ MENUITEM_CLRTEMP (LP_WORD(L_COLOR_TEMP_K), &sc_cameraMode.color_temp, menu_shortcuts_apply_color_temp),
+ MENUITEM_LAUNCH (LP_WORD(L_EXTENDED_AEB), menu_shortcuts_script_extended_aeb),
+ MENUITEM_LAUNCH (LP_WORD(L_INTERVALOMETER), menu_shortcuts_script_interval),
+ MENUITEM_LAUNCH (LP_WORD(L_HAND_WAVING), menu_shortcuts_script_wave),
+ MENUITEM_LAUNCH (LP_WORD(L_SELF_TIMER), menu_shortcuts_script_self_timer),
+ MENUITEM_AFFLASH (LP_WORD(L_AF_FLASH), &sc_cameraMode.cf_emit_aux, menu_shortcuts_apply_cf_emit_aux),
+ MENUITEM_BOOLEAN (LP_WORD(L_MIRROR_LOCKUP), &sc_cameraMode.cf_mirror_up_lock, menu_shortcuts_apply_cf_mirror_up_lock),
+ MENUITEM_BOOLEAN (LP_WORD(L_FLASH_2ND_CURT),&sc_cameraMode.cf_flash_sync_rear, menu_shortcuts_apply_cf_flash_sync_rear)
};
type_MENU menu_shortcuts = {
@@ -76,6 +78,11 @@
send_to_intercom(IC_SET_ISO, 2, *item->parm.menuitem_iso.value);
}
+void menu_shortcuts_apply_color_temp(type_MENUITEM *item) {
+ send_to_intercom(IC_SET_WB, 1, WB_MODE_COLORTEMP);
+ send_to_intercom(IC_SET_COLOR_TEMP, 2, *item->parm.menuitem_int.value);
+}
+
void menu_shortcuts_apply_cf_emit_aux(type_MENUITEM *item) {
send_to_intercom(IC_SET_CF_EMIT_AUX, 1, *item->parm.menuitem_enum.value);
}
...
LOCALIZATION HINT: WORD LENGHT
...
EDIT: Localized also the FirmwareHackInstallation page
A couple of question is there an easy way to detect that i'm manual mode? Also i tried to turn on debugging but i don't think i'm doing it right doesn't seem to work. Reason i ask is i'd like to figure a way to toggle between picture modes (ie raw -> raw/jpeg -> jpeg Fine -> etc..) when in manual mode using the av button.
@0xAF Tried to get it to go into debug so i could log whats going on but no matter the options i toggle before or after setting it to yes and choosing any of the three file modes i get nothing. Everytime i restart it gets set back to no. Also deleted all the settings and preset files created just to make sure and same difference.
Can I ask if this things can be considered/realizable, or leave just an opinion even from other user not only from the developer?
From Magic Lantern:
Trap Focus: With three options (Hold / Always / Off ). If enable when in MF holding halfshutter or always (for a no LiveView motion detection) camera will take a pic when something came in focus (detected by focus confirmation);
Stack Focus: a script to take some picture with different focus length for macro. Number of pics and focus step length size in settings menu, Stack focus enabled from the shortcuts menu ;
In Camera User Guide: like in the last ML;
Autogenerated enfuse scripts: for HDR and focus stacking
Other suggestion:
Wrap around menu: like in the canon's one (that's a must have i think);
Add a 400plus folder on the card with all the file we need like presets, user guide and so on;
Flash button switch: Use the Flash button to switch it off and on when flash is raised. If flash is closed pressing flash button works as usual and raises the flash (maybe it enable it if is forced off in 400plus) if pressed again it forces flash off when raised, another press will set flash back on. If that can work with also a flash on the hotshoe it will be perfect for my needs.
Yes, my intention was to make a HELP button over every item in our menus. Other way would be like in the older cell phones, when you are over some item in the menu for few seconds, a HELP OSD (OnScreen Display) would pop-up.In Camera User Guide: like in the last ML;
0xAF had intentions to do something about this.
Edu, are you sure the camera deletes what's not DCF ? I've got the impression that it stays there.Add a 400plus folder on the card with all the file we need like presets, user guide and so on;
In my "to do" list too... directories' names follow a standard (DCF (http://en.wikipedia.org/wiki/Design_rule_for_Camera_File_system)), and the camera deletes anything in the card out of that standard; but I think we can work it out.
I cannot be 100% sure ATM, but I think we already got the FLASH button on MainCtrl. Would check it soon.Flash button switch: Use the Flash button to switch it off and on when flash is raised. If flash is closed pressing flash button works as usual and raises the flash (maybe it enable it if is forced off in 400plus) if pressed again it forces flash off when raised, another press will set flash back on. If that can work with also a flash on the hotshoe it will be perfect for my needs.
We already have a "flash on/off" shortcut with some of these functionalities, we could assign that to a button (if we find one still not assigned); the rest looks quite complex, and uses some camera functions that we still do not know how to control.
Edu, are you sure the camera deletes what's not DCF ? I've got the impression that it stays there.Add a 400plus folder on the card with all the file we need like presets, user guide and so on;
In my "to do" list too... directories' names follow a standard (DCF (http://en.wikipedia.org/wiki/Design_rule_for_Camera_File_system)), and the camera deletes anything in the card out of that standard; but I think we can work it out.
Other way would be like in the older cell phones, when you are over some item in the menu for few seconds, a HELP OSD (OnScreen Display) would pop-up.I like it a lot that way and if this can be activated or not in settings it will be similar to the canon's one on the 600D.
About intervallometer, I'm using it a lot to make timelapse of events and I think my cameras (400D and 600D) are missing a Time Lapse Calculator.
So for now there is a way to put some picture on the camera (with help and reminders) that can be shown when in play mode or only pic taken by the camera can be shown in play mode?
So for now there is a way to put some picture on the camera (with help and reminders) that can be shown when in play mode or only pic taken by the camera can be shown in play mode?
Hello guys!
I have used chdk for long time but a very early version.
Now I have found a very very much capabilites added but I don't manage to understand and use all of them.
Please tell me where I found CHDK instructions for Canon 400D DSLR(not for Powershot's).
Thanks in advance!
Now I don't see about autoISO. Is that option removed from 400plus? Why?
btw, does anyone have broken 400d, but still powering up, just broken sensor or display or anything else which makes it garbage, but still powering up ? i want to make some hardware experiments, but do not want to brick my camera...Hi was looking too for a not working 400d camera but I only found one with the main board brokenand so it's noot booting up
Oh hai.
I've been using various versions of CHDK on my 400d with success, although the lastest variants do not do ISO 3200 they do 3000.
So I am using the 7-19-11 release which seems to be a good all-around release, but if I could have a 7-19 that did ISO 16, 32, 50 etc. that would be perfect. Right now I just swap between the original Sep. 13th 2009 release and the 7-19 depending on what I need it to do. The original was great, but no in-camera color temp function
Good work guys, this thing feels like a whole new camera now
For the cons I do not like the green colors of the display, I prefer the red and gray theme closest to the current canon.
with eoscard the same. not bootable. i make it with eoscard and with cardtricks 1.45
but my card is not bootable.
I run EOScard as admin .
i load cygwin for windows
this is the code for cygwin? H is the cf card .
dev=/dev/H:\
echo EOS_DEVELOP | dd of="$dev" bs=1 seek=43 count=11 press enter
echo BOOTDISK | dd of="$dev" bs=1 seek=64 count=8 press enter
Check this link: http://www.cygwin.com/cygwin-ug-net/using-specialnames.html (http://www.cygwin.com/cygwin-ug-net/using-specialnames.html)
I didn't try, but if you put the wrong one, it won't be funny at all...
0xAF: Thx ;)
I tested the latest version with the added feature autoISO.
The autoISO to run correctly in the way "AV" and "P".
As against other modes of AutoISO does not seem to work.
is this normal?
In any case, I'm glad to see new shows autoISO function p
I think I found a little bug that came up after removing ISO 3200, when in the shortcut menu to change iso we keep pressed the right arrow it goes to 1600 not to 3000 don't matter if we are on 1800 for example.Not a bug, but a feature: holding the LEFT/RIGHT buttons jumps only across base ISOs (100, 200, 400, ...); as the highest base value is 1600, moving up to 3000 requires to release the button and then increase the ISO in small steps. If you still consider this unacceptable, please reopen the issue and I'll convert it to a feature request; thanks.
edit: posted the issue on the code page here (http://code.google.com/p/400plus/issues/detail?id=120)
Thanks, I'll update the code as soon as possible.I'll wait this first ini file to add last translation and a little clean up of the current one tu align better the > for the italian one.
I was bored today and so I did the modifications to the actual language file, feel free to put those in the future ini file, I'll test them as soon as they will be in the nightly build to be sure i didn't any errors.
Right now, only the menu line. AutoISO was an experiment, I wasn't event sure how will it work out, and left out all these details; but I have been doing more experiments this weekend, and so far it seems to be working properly. So I plan to work on it some more, before the next release.For the auto iso is there a way to see it active on the screen or there is just the menu line?
EDIT: I've tested the last rev (735) and AutoISO is working good in P and Av.Glad to know; thanks.
I know it's not still finished and so please consider this (posted also in the code page):I still have to work on that; thanks for the suggestion.
I have auto iso set to use 100 as min and 400 as max to cover what i consider the acceptable ISO of this camera (before noise level is too much for my preferences).
But there are situations where i need to use a higher ISO and with AutoISO active I can't do it easily because if i use the canon menu to set it to, for example, 1600 the AutoISO function reset it to 400. For now I need to go in the 400plus menu and disable AutoISO and then set the ISO needed.
I think a solution would be to make AutoISO active only when we have ISO set to one of the value in the range covered by our AutoISO settings, this will allow user to override AutoISO settings with ISO value not used in the AutoISO settings.
it is true that when ISO in textbook is changed the AUTO ISO deactivates. It is then necessary to reactivate him from the menu of regulating.
Would it be possible to show the AUTO ISO in the quick menu with choice speeded up or to deactivate?
in the menu of regulating of the AUTO ISO it is possible to add following options:
AUTO ISO> free> not
AUTO ISO> free> 1 Shoot
the first option would have the effect of locking the AUTO ISO preventing any manual modification of ISO.
The second function would have the effect of allowing the manual modification of ISO for a shot, then parametre ISO would go past again in auto ISO mode.
Thanks
AutoISO is intended to be AUTO, and the camera will always select the lowest possible ISO that the situation permits; I do not understand the need to set an ISO in AUTO mode.
AutoISO can now be (de)activate from the ISO menu (UP button): press DP and AutoISO is activated; select a value (press SET) and AutoISO is deactivated. To select a manual ISO value, you are going to enter the ISO menu anyway; and two keystrokes to go back to AutoISO does not seem a lot to me.
Hi guys,Thanks :)
First I'd like to thank all of you for the efforts on this model. I'm actually still enjoying my EOS 400D because all the enhancements made by so many of you.
I'm from Brazil and I like to contribute by adding the Portuguese language on the Rebel XTi.
Let me know, how I can help.
Why won't auto iso max go over 1600? I like the new gradual iso stepping.
very happy to see AUTOISO function back.
I remember this thread was made by someone who wanted this future on his 400D. this seems to be the third serious try to make Autoiso. I tested the older version before (made by sergei), but it had problems. not working corectly (sometime the iso do not change) and it was to slow.
this third try seems the best. it's working fast, and it works correctly, so a BIG CONGRATULATION to eduperez for that. however a simple like this Autoiso is no better then a camera in Auto mode.
I WILL GIVE YOU SOME HINTS IN IMPLEMENTING A GOOD AUTOISO
You need to have some control over it to make it helpful for advanced users:
1) the possibility to set a maximum ISO for autoiso (like Nikon dslr have, and Canon 60D have)
2) the possibility to use only full stops ISO for autoiso.
the problem with xD, xxD, xxxD Canon cameras is that intermediary ISO is not by made hardware amplification. So Read Noise (Blackframe Noise) is bigger on ISO125 compared to ISO200. On ISO 160 Read Noise is smaller then on ISO100 but you lose dynamic range. So from my point of view is not a good idea to use intermediary ISO
see this http://forums.dpreview.com/forums/read.asp?forum=1019&message=19721647 (http://forums.dpreview.com/forums/read.asp?forum=1019&message=19721647)
Also on the 1Dx series is not a good idea to use intermediary ISO. Even they make those using hardware amplification, they use a second amplifier to make those iso. So on intermediary ISO's you have primary + secondary amplifier noise.
see this http://www.openphotographyforums.com/forums/showthread.php?t=4771 (http://www.openphotographyforums.com/forums/showthread.php?t=4771)
Only Nikon use hardware amplification on the intermediary ISO, and they use a single amplifier. So there you have no bad points on using them.
Also to make the Autoiso usable in different modes you have to put some limits in exposure parameters:
1) in Av mode you must be able to set a maximum exposure time (like Nikon have, or Canon 1DmIII, 1DmIV).
It is a bad idea to use a fixed exposure time as the limit to change iso (like Canon 40D, 50D have), because different focal lengths require different exposure time for obtaining unmoved images. Even linking the maximum exposure time to focal lengt of the lens (like 5DmII,7D,60D have) not think is a good idea, because for example maybe you want to shot a moving object in fast change lightning . So is a better idea to set this maximum exposure time manually.
2) in Tv mode you must be able to set a maximum aperture opening (like Canon 1DmIII, 1DmIV have)
For example you may not want to let camera chose F2.8 or F4 when shooting on macrophotography
3) in M mode you must be able to set exposure compensation (like Nikon have)
Letting the camera chose all exposure parameters is not a god idea because it can overexpose or underexpose.
Having exposure compensation (EC) in manual mode when AutoISO is active makes sense. Normaly, this isn't required because the user has full control of shutter speed and aperture, and ISO is fixed. However, AutoISO compensates to provide a "correct" exposure (per the camera meter) and thus EC is required when the meter is fooled by lighting conditions. The issue of course, is that both EC (in P, AV, or TV) and aperture control (in manual mode) use the same button.
This is already planned (the algorithm for this is quite simple), but as you mentioned, the problem is in the buttons; we will probably have to use LEFT/RIGHT while at the viewfinder for this.
Hi everyone! I can help translate the file "languages.ini" in Russian, should it? and how to do this?
Translated by Google Translator
This is already planned (the algorithm for this is quite simple), but as you mentioned, the problem is in the buttons; we will probably have to use LEFT/RIGHT while at the viewfinder for this.
This problem make me think to a feature that I was thinking about.
Scrollwheel function switchable in M mode with Av button.
Camera starts with Scrollwhell set to change times,
pressing Av once makes Scrollwheel change Aperture,
pressing Av for a second time makes scrollwhell change Exposure compensation,
pressing again Av for a third times goes back to the default (Scrollwhell changes times)
and if possible we need to think to a way to show in what mode we are,
maybe just underline the value that will be changed by the scrollwheel.
Perhaps you should check AutoISO on 400plus again, as most of those features are already implemented (in fact, all but the last one).hmm, the r761 seems to use only full stops iso.
hmm, the r761 seems to use only full stops iso.
but i gave no idea how to set a Maximum ISO for autoiso or the slowest exposure time for using in Av mode. it there a menu build for that ?
or do you set the exposure time in the M or P mode and then you switch back to Av ? (like in sergei version)
Hello everyoneHi,
I can help translate to russian and ukrainian too.
Hello everyoneHi,
I can help translate to russian and ukrainian too.
that's good. read the guide posted by 0xAF and post a patch when ready in the code pages.
Also canon's not supported languages are in development from what I can see from the repo...
And you can translate also the User Guide or the install guide too if you want.
Yes, check in the settings menu, use scrollwhell to scroll thru all the options AutoISO offers, arrows to change them.seems i have search in the Shortcuts Menu (Print button) not in the Settings Menu (Menu+Print buttons), that's why I didn't find Autoiso settings first time. thanks
Hello everyoneHi,
I can help translate to russian and ukrainian too.
that's good. read the guide posted by 0xAF and post a patch when ready in the code pages.
Also canon's not supported languages are in development from what I can see from the repo...
And you can translate also the User Guide or the install guide too if you want.
In what code to write down a file: koi - 8r, win - 1251, UTF ?
int msg[] = {0x9381e3, 0x9382e3, 0xab81e3, 0xa181e3, 0xaf81e3, 0}; // konnichiwa
bfnt_puts_utf8(msg, 250, 20, COLOR_BLACK, COLOR_WHITE);
Hello everyoneHi,
I can help translate to russian and ukrainian too.
that's good. read the guide posted by 0xAF and post a patch when ready in the code pages.
Also canon's not supported languages are in development from what I can see from the repo...
And you can translate also the User Guide or the install guide too if you want.
In what code to write down a file: koi - 8r, win - 1251, UTF ?
This is already planned (the algorithm for this is quite simple), but as you mentioned, the problem is in the buttons; we will probably have to use LEFT/RIGHT while at the viewfinder for this.
This problem make me think to a feature that I was thinking about.
Scrollwheel function switchable in M mode with Av button.
Camera starts with Scrollwhell set to change times,
pressing Av once makes Scrollwheel change Aperture,
pressing Av for a second time makes scrollwhell change Exposure compensation,
pressing again Av for a third times goes back to the default (Scrollwhell changes times)
and if possible we need to think to a way to show in what mode we are,
maybe just underline the value that will be changed by the scrollwheel.
An interesting idea, and would only need to work this way when AutoISO is active. I much prefer changing EC via the scroll wheel than by buttons, if possible. Highlighting the value that will be changed would be good (similar to the highlighting you see in the EC scale when adjusting EC).
from the normal settings menu of the camera ... you have to put languages.ini file together with the autoexec.bin to the CF card to have additional languages on the hack.
take the last nightly build.
Thanks.
One more quastion. If i need add more string for translation, where i am write him ? Sorry for my bad english.
First of all, thanks for the answer.
I am trying describe:
I have languages.ini - i put this file on my flash, a switch 2 the Russian lng, but i see some non-translated string.
I am try add this string in 2 languages.ini with translation (for example AUTO ISO = My Russian text), write this new languages.ini to the flash, but i cant see translation in my camera.
Pls, says where is my errors. Thanks one more, and sorry for my bad English.
A couple of comments on r796 - "AutoISO explained" that should be documented, based on my observations.
1) You must set Max AV at most just above the maximum aperture of the lens that you're using. For example, if your lens is F4.0-F5.6, Max AV number should be set no lower than 4.5. Otherwise, AutoISO will not function in TV mode.
2) If safety shift is enabled, to maintain correct exposure in AV mode, the shutter speed could drop below Min TV if Max ISO is exceeded.
Neato... AutoISO goes to 3000 in manual mode... Max ISO is still stuck at 1600 in the settings menu and only goes to 1600 in TV/P/AV. I shoot manual lots of the time so hopefully its not a bug and stays.
very happy to see AUTOISO function back.
I remember this thread was made by someone who wanted this future on his 400D. this seems to be the third serious try to make Autoiso. I tested the older version before (made by sergei), but it had problems. not working corectly (sometime the iso do not change) and it was to slow.
this third try seems the best. it's working fast, and it works correctly, so a BIG CONGRATULATION to eduperez for that. however a simple like this Autoiso is no better then a camera in Auto mode.
I WILL GIVE YOU SOME HINTS IN IMPLEMENTING A GOOD AUTOISO
You need to have some control over it to make it helpful for advanced users:
1) the possibility to set a maximum ISO for autoiso (like Nikon dslr have, and Canon 60D have)
2) the possibility to use only full stops ISO for autoiso.
the problem with xD, xxD, xxxD Canon cameras is that intermediary ISO is not by made hardware amplification. So Read Noise (Blackframe Noise) is bigger on ISO125 compared to ISO200. On ISO 160 Read Noise is smaller then on ISO100 but you lose dynamic range. So from my point of view is not a good idea to use intermediary ISO
see this http://forums.dpreview.com/forums/read.asp?forum=1019&message=19721647 (http://forums.dpreview.com/forums/read.asp?forum=1019&message=19721647)
Also on the 1Dx series is not a good idea to use intermediary ISO. Even they make those using hardware amplification, they use a second amplifier to make those iso. So on intermediary ISO's you have primary + secondary amplifier noise.
see this http://www.openphotographyforums.com/forums/showthread.php?t=4771 (http://www.openphotographyforums.com/forums/showthread.php?t=4771)
Only Nikon use hardware amplification on the intermediary ISO, and they use a single amplifier. So there you have no bad points on using them.
Also to make the Autoiso usable in different modes you have to put some limits in exposure parameters:
1) in Av mode you must be able to set a maximum exposure time (like Nikon have, or Canon 1DmIII, 1DmIV).
It is a bad idea to use a fixed exposure time as the limit to change iso (like Canon 40D, 50D have), because different focal lengths require different exposure time for obtaining unmoved images. Even linking the maximum exposure time to focal lengt of the lens (like 5DmII,7D,60D have) not think is a good idea, because for example maybe you want to shot a moving object in fast change lightning . So is a better idea to set this maximum exposure time manually.
2) in Tv mode you must be able to set a maximum aperture opening (like Canon 1DmIII, 1DmIV have)
For example you may not want to let camera chose F2.8 or F4 when shooting on macrophotography
3) in M mode you must be able to set exposure compensation (like Nikon have)
Letting the camera chose all exposure parameters is not a god idea because it can overexpose or underexpose.
Hello, I am working on an ISO noise reduction plugin for gimp with the 400d in mind as that is what I have. I would like to first characterise the noise across the CCD. To do this ideally what I want to do is:
1. lock the mirror up
2. take a bunch of photos (10 ish) for the ISO and time I've set.
3. put the mirror back down.
It is essential that the camera doesn't move for my image processing needs hence the mirror operation. What would be the best way of doing this?
On another note I am interested in contributing to the code base as I am a professional C/C++ coder for embedded systems and love the work you guys are doing. Am just setting up a build machine this week.
Thanks for any input
Ok, thanks for the reply. Could someone either point me to a resource or explain to me how the hack works. I understand that the hack sits on the CF and doesn't modify the firmware but I don't know what it contains or how it works. I'm pretty good at reverse engineering so I'll start work on the mirror control by decrypting the canon firmware and decompiling it the best I can.
Does anyone know the extent to which the symbol table is populated in the canon firmware? thanks
Ok, thanks for the reply. Could someone either point me to a resource or explain to me how the hack works. I understand that the hack sits on the CF and doesn't modify the firmware but I don't know what it contains or how it works. I'm pretty good at reverse engineering so I'll start work on the mirror control by decrypting the canon firmware and decompiling it the best I can.
Does anyone know the extent to which the symbol table is populated in the canon firmware? thanks
I'm now on the hunt for tools. Anyone got anything useful please let me know as would it would get me up to speed much quicker. Also any scripts etc would be useful.
Cheers
I'm now on the hunt for tools. Anyone got anything useful please let me know as would it would get me up to speed much quicker. Also any scripts etc would be useful.
Cheers
Hi all, I was not able to log in after the forum update, but solved now.
Welcome to andrew_sj.
Edu, are you sure that the italian translation is not updated? I think it is, but I had back the camera just today so didn't tested yet the last nightly build to check (note to me: the user guide is not yet full translated).
Yes that could be a good way. But is there a way to add the diff also to the translated file, so to have in the italian preview for example the same line added to the english one? that way it can be easier to follow the updates in the guides to translate.
Actually I'm opening 3 tabs from the repo, one with the diff from the different version of the english file to see what was added, one with the english file in edit mode to copy the new lines, and another with the italian in edit mode to paste the lines and translate them.
I'm not an expert on using diff so this is the only way I know to do this.
Probably there is a command line method to do all this in a quicker way.
http://magiclantern.wikia.com/wiki/Unified/UserGuide#iso (http://magiclantern.wikia.com/wiki/Unified/UserGuide#iso)
http://code.google.com/p/400plus/wiki/UserGuide#The_missing_ISO-3200 (http://code.google.com/p/400plus/wiki/UserGuide#The_missing_ISO-3200)
FYI, in Canon dSLRs, ISO is in 1/8 EV increments. Do your research before sharing your disrespect.
we can't see more than a 1/3 step difference by eyes... except for timelapse, where 1/8 EV difference between frames is very noticeable.
When I was in my photography class they taught me that we can't see more than a 1/3 step difference by eyes
The new "jump" button for it's own intermediate ISO's seem very slow and sluggish. Pressing it isn't as responsive as the old DP button just jumping from ISO 1600, 2000, 2500, 3000.
Also why remove the option to disable the shortcut menu?
You should also put the disable flash option in the shortcut menu as well.
... except for timelapse, where 1/8 EV difference between frames is very noticeable.yep, probably because we are seeing it quickly like edu sad with going back and forth, the difference became visible.
You can also use auto ISO, works pretty well. I vote for more features. The rules of photography are meant to be broken. If you don't even KNOW the reason, why care?
400D is now better than more expensive cameras. Very usable for pro work, only issue is noise. It used to be a fairly mediocre crippled camera. Only T2i/T3i has some advantage because of video modes with magic lantern. GH1 was also garbage and now look...
svn diff command can show all the differences on all files (or a specific file) between two given revisions...I think I understood a little, what i need is the last english revision translated and then i'll diff it with the last english revision posted so to know what was added/changed. this is "simple" what i need now is to merge that diff with the translated guide so to have a file with a mix of old translation and new untranslated line already in place. Maybe I can use merge or awk?
you can remember the revision you had translated... then when edu finalize the new version of the guide, you can see the whole diff between the one you've translated and the new one...
not sure if i explained good enough...
I think I understood a little, what i need is the last english revision translated and then i'll diff it with the last english revision posted so to know what was added/changed. this is "simple" what i need now is to merge that diff with the translated guide so to have a file with a mix of old translation and new untranslated line already in place. Maybe I can use merge or awk?
I'm agree, 400D is a beast with this software but the noise at high ISOs have made me buy a 600D.
I think I understood a little, what i need is the last english revision translated and then i'll diff it with the last english revision posted so to know what was added/changed. this is "simple" what i need now is to merge that diff with the translated guide so to have a file with a mix of old translation and new untranslated line already in place. Maybe I can use merge or awk?
anyone got any information about the hardware? i.e. memory mapping of hardware, how any of it works, etc..? thanksHi Andrew, I'm not sure if this can help you, but our camera is very similar to the DryOS ones, so ML page on Memory Map should be somehow useful. http://magiclantern.wikia.com/wiki/Memory_map (http://magiclantern.wikia.com/wiki/Memory_map)
Hi to All! I have a problem with IR remote control feature. This stuff doesn't work on my 400D.
After my camera is on I go to MENU > PRINT BUTTON > IR Remote enable option set to ON. Than I try to release button on my IR control and nothing happens. Than I try to set my camera to Self Timer /Remote control mode again nothing happens. Than I set my camera back to normal (MENU > PRINT BUTTON > IR Remote enable = No) and still it doesn't work.
Please help me to solve this problem. Maybe I do something wrong.
PS
I used 400plus automated build - 20110916 - r847
Thank you.
Maybe it's something wrong with settings, or with firmware?Or may be the IR sensor?
...when I turn on my camera and before first beep I can take pictures using IR remote control...What you mean before the first beep ? When the first beep happens anyway ?
Or may be the IR sensor?I don't think so, because it always work instantly after I turn on my camera.
What you mean before the first beep ? When the first beep happens anyway ?1. I turn my camera with the switch (green led turn on instantly)
1. I turn my camera with the switch (green led turn on instantly)
2. Red led (CF indicator) blink
3. Blue led start to beam
4. Red led (CF indicator) blink a couple times more and than it stops blinking. With this blinking or instant after that I hear beep sound. This is the first beep in my case.
So just before this beep I can shoot using IR remote control. It can take 2 or 3 photos that way.
And no matters I'm using CHDK or not. And no matters did I enable that option (IR Remote - on/off) in CHDK or not. But I always have to set camera in Self Timer / Remote control mode.
Thank you
the CHDK guys gets angry when you call some DSLR hack CHDK.Sorry about that ::)
If you have the problem also without the card in the camera, it's not 400plus related.Yes, I think the same
Try to reset camera settings from canon menu and do all your test without card to be sure that you are using only the canon firmware.I did it and still have the same problem.
artDeQo,
can you check if FactoryMode is enabled? If it is, disable it.
Perhaps we should disable that menu.
Yes, my thoughts exactly... I would make it available only through a compile-time variable, so only those that compile their own versions (I think that is a good definition of a developer) can access it.Thumbs Up.
Someone (JmTD at Canonistas) sent me an update to the Spanish translation, so I have just released 20110904-1 at http://code.google.com/p/400plus/downloads/list. (http://code.google.com/p/400plus/downloads/list.) He also made a nice manual, and gave me permission to share it here; it is in Spanish, but the first page contains some very nice graphics: http://dl.dropbox.com/u/14091554/400plus/GuiaUsuario400plus.doc (http://dl.dropbox.com/u/14091554/400plus/GuiaUsuario400plus.doc.)
Hey, how about this for a new feature... remove certain things from exif data when camera takes a pic. I don't want my body serial in all of my photos and scrubbing it manually can easily be forgotten. Or maybe copyright line added by default to all pics, etc. Maybe even exif editor if someone is adventurous.
I hope its not reinventing the wheel as you can easily edit data in other programs, apparently not lightroom.
I hope its not reinventing the wheel as you can easily edit data in other programs, apparently not lightroom.
Like the new menu system. I thought things were screwed up when I initially tested it and then I saw you could move between screens with the wheel. It rocks.
Also: Why do bulb max and bulb min appear switched?
is it only me, or the forum seems to be missing last posts after the last downtime ?
it's becoming frequent for this forum to be down ...
yes, it is. It's the last day of posts, and I will try to get them back.
As for the forum hiccups, the last host was really bad and hopefully this new one will be enough for the forum to hang on.
All,
I got a bug when i try using Auto ISO (configured Min:100 Max:1600 Tv:1/50 Av:3.2) on M (Manual) mode
sometimes the ISO is forced to max 1600 and the image become overexposed but when i try second shot it back to normal (not overexposed)
Any idea what's wrong?
Thx
In M mode, AutoISO does not honor Min / Max limits: it will always use the full range, as needed; but this is not the cause of the problem. Probably, what is happening here is that AutoISO does not have enough time to react, and the first shot is taken with whatever ISO was set before; by the time you take the second shot, AutoISO has already acted and set a proper ISO. Does this explanation match your experience?
I have some ideas on making AutoISO faster, but still haven't found the time to test them... and they may work or not. In the meantime, the only solution that comes to my mind is to make a little pause between the half-press and the full-press when taking a photograph (thus giving AutoISO time to work). Could you please try this?
That is how it works for me. I try to half press a few times to get the lowest ISO. It would be nice if you could set the autoISO to work the way it works in M for P mode.
Maybe set lowest shutter for P mode and things like that too. I don't want to use shutters under 1/30 as the photos come out blurry but I like P mode for the convenience.
Yeah, after I try to figure out the problem is sometimes Auto ISO react slower than light changing, half shutter to other object fix it, by the way is there any way to limit Auto ISO mode on M? since sometimes I might prefer underexposed than noised :)
PS: funny things also happen.. I do not know what I have done, but once in "M" mode and I press half shutter, and move around the object, the shutter speed is automatically changed!(in M mode.. wow) i'll update when i already can pointed the exact bug condition
one more thing, on AV mode + Auto ISO, when I press AE lock button, the shutter speed is locked too?
If you want to underexposed your pictures, why don't you just play with the exposure compensation?You're right, I forgot that there's such a way :)
I should: AutoISO only changes ISO values, not shutter speeds; if the camera does not change shutter speeds, neither do we.Ah.. I see..
Sorry, I am not sure I fully understand what you are trying to say here.
And what do you expect the camera to do, if the scene requires a greater exposure, and the lens is already wide open? Just underexpose the picture? Raise the ISO value, perhaps?
Scripts broken in build 941. Handwave pops up the menu and dims the screen. Sensor stops working.
Hello all.
Since than I have the hack and if I use EOS UTILITY, I can't dowload the pictures.
I really need to use Eos UTILITY, to see my picture in live.
I need a solution...
Thank you.
whoa the trunk is at 1.0
Scripts broken in build 941. Handwave pops up the menu and dims the screen. Sensor stops working.
Quick exposure in M mode sounds great. Could use the AE lock button for it. Would end having to scroll through all the shutter speeds/apertures after previously shooting in a bright/dark place.
Also, hitting play twice after running handwave is a decent work-around to still use it.
just to let you know:
acseven was so kind to update the first posts of this thread.
now we have some up-to-date info in the beginning of the thread.
p.s.
thanks to SoNic for reminding us.
this is the moment to thank Edu for his brilliant work on soon-to-come next release.
he did very good job lately, not so visible by the user, but believe me he did great stuff under the hood.
I have to trouble you:I do not know how to use the "languages.ini", even though I have a Simplified Chinese translation.
Offtopic: you may want to apply patch 0003 from this message:
http://groups.google.com/group/ml-devel/browse_thread/thread/2fd0bb4dd410a7fc (http://groups.google.com/group/ml-devel/browse_thread/thread/2fd0bb4dd410a7fc)
Thank eduperez timely response
I have to admit, I am not computer professionals, are not familiar with "NOTEPAD + +", just "languages.ini" some of the terminology used in the translation software translated into simplified Chinese, it now appears this is not enough, although I would like to contribute their power
Hello eduperez
I use the "MS-Window's Notepad" direct change "languages.ini".
How can I Email to you? Personally by the judge whether it is useful to you
Hello eduperez
I use the "MS-Window's Notepad" direct change "languages.ini".
How can I Email to you? Personally by the judge whether it is useful to you
Briliant piece of work ! But... Where are the AF-Pattern point selection gone ? It no longer works with me (ZOOM IN button twice)...
Ooops. sorry It works, but slightly differently from the build I ran before. I mostly works in Av with AI Servo and got used to have the selected AP points highlighted in the viewfinder after Zoom In button pressed twice, making it easy to toogle while focusing. Apparently this is no longer the case, I need to look at the LCD instead.
7D better in IQ ? Not necessarily, depends on the lense (and the PP software) IMHO.
Just installed, it's not very easy to use but it is rich of features. Great job guys.
Just installed, it's not very easy to use but it is rich of features. Great job guys.
What was the last version (prior to 2011.11.11) that you used? This version was all about usability, there are absolutely no new features (or even improvements); I'll hate to have spent all this time to make it worse, but at least I'll like to know what is on the other side of the comparison. Thanks.
Hi Eduperez and first of all thanks a lot for all you have done for us.
My previous version was that of July, not very old.
I think that the new one is not worse than previous but, at the end, it's not simple to be used mainly because some features is directly activable by few steps (spot measure, high ISO) just clicking on the arrow and then on DP button, while other need to pass by the new menu.
I often used the self shot and I admit to have understood howto activate not fastly.
BTW this version is very useful and I only need to study more it.
Ciao
Francesco
@0xAF
thank you very much for your Answer.
Unfortunately I am not at home during the week, so I can test it next weekend.
But I tried all things you suggest and it does not help.
The last test was:
- formatting the CF card in the camera
- installing the 1.1.1 canon firmware again
- removing both batteries
- resetting the camera to factory default
- reinstalling the hack from the zip archive I've downloaded
From my point of view there was something stored in the flash-memory outside the firmware area and I need to reset these Values.
Are there any settings, especially regarding the menu system, stored in the cameras flash memory?
Because the hack itself works, only trying to access the menu crashes the camera.
Again, thank you very much for your help.
sigii
@Ciccio: Just in case you are not aware of this...@eduperez
Or camera has a button cell battery, used to hold the memory for some settings and the internal watch. I would try to remove both batteries, wait some minutes, and then plug them in again. This should clear all settings to factory defaults.
I did not understand,Whether to use "SET" button, or other, led to the use of "Presets-! LOAD" can not be activated?
Hey, got one problem with autoISO. When I switch between lenses with different aperture capabilities i.e deal with a 4-5.6 lens then a 4 and a 2.8, autoiso defaults to ISO 100 in av. When I set it up again and configure the correct limit it begins to work.
If I don't look I'll get dark dark shots. How do I stop this? On the 4-5.6 lens if I zoom in all the way autoiso stops working. If I set it to absolute limit then lower apertures are not used (i think). Can it not only detect but also set limit at power on? Might screw up people who set it to like F/8 though.
Ideas?
I think I'm mixing up TV and AV. I was in between a 2 part gig so I wrote without thinking. I was using shutter priority and instead of taking shots at 1600 iso, it was taking them at 100. So you would get a black photo. Right before it was using 1600... as soon as I zoomed the lens in to 5.6 it screwed up. When I used a different lens that was F2.8-4.0 I had the same problem. Changing minAV one step higher than lens minimum seemed to solve the problem. Also the problem showed up between lens changes when new minimum was too low. I need to find a way to reproduce this issue reliably.
As for flash, it seemed to not account for it at all. I was shooting 1/90 and f8 in close quarters. This is the point of flash... so I don't have to shoot at 1/30 + wide open + 1600/3000. The subjects came out flash "painted" and I had to turn the exposure down anyway.
Ok... I just picked up the camera and tested flash in M mode. Iso stays the same whether you use flash or not. In P mode at first it jumps to ISO 1600 when you raise flash... then after a couple of half presses it drops the ISO below what it was when flash was closed.
In TV mode, autoiso closes up the aperture but ISO stays the same.
In AV mode it randomly tries a couple of things when you raise flash but it does appear to lower the ISO with a few tries.
Problem is that I don't see the ISO in the viewfinder so I'll only see that it screwed up after I look down :(
P.P.S Jump button needs a setting to jump through all ISOs not just intermediate in that range. Otherwise it is 2+ button presses to change iso. I'm glad this feature is back in some form though. :lol
and thus AutoISO will never kick in if you select a "Max Av" value out of range for your lens
AutoISO needs to drop ISO quicker. Seems very quick to raise but no so quick to lower.
Quoteand thus AutoISO will never kick in if you select a "Max Av" value out of range for your lens
So since f was 5.6 and maxAV was 4 it defaults to ISO 100 because ISO is never raised from minISO? I don't think it lets you set lower maxAV already, it just doesn't account for zoom or lens changes. I guess I should have kept it on like 400/800 or something when using the flash.
Yes, last nightly build is like 1kb, not likely to work.
Regular canon menu Beep -> On
Anyone?
So, you're saying it will be possible in the future?
Thanks to eduardo, we have Release 20111111-3, kudos for the great work !!!
Hello,
I've just downloaded the latest build (20111111-3) and while the blue light flashes on boot (I think I am getting two flashes if that means anything, one short and one slightly longer), the hack does not appear to be active (pressing DP or DISP in the menu does not reveal the usual hack menus). I've tried 20111111-2 but that didn't work either. Dropping back to 20110904-1 works and previous to that I was using one from June I seem to recall. Does anyone know why it isn't working? If there's anything I can do to assist please let me know.
Thanks for all your hard work :)
Alec
Please, have a look to the user guide: all the menus (there are several menus now) are where the shortcuts used to be; just press DP from the MAIN screen (not the MENU) to get to them.Thank you very much, I can't actually believe I missed that! I was sure I'd re-read the instructions but somehow I clearly missed that bit. You're spot on, it works a treat. Now to re-read the rest of the user guide!
Ok, so let's suppose that this is related to the FACTORY MENU, just suppose it; to activate that menu, or current code does:Code: [Select]EnterFactoryMode();
SleepTask(25);
ExitFactoryMode();
This is: we go into FACTORY MODE (whatever that is) and then exit back. This means there is a FACTORY MODE, which we do not normally "see" as it is deactivated immediately. Perhaps your camera got somehow stuck into FACTORY MODE, and that is why it is acting that way.
But then, activating the FACTORY MENU from 400plus should revert back to the normal mode, I guess. I would try to install 400plus in an empty card (no MCTEST.BIN file, obviously) and activate the FACTORY MENU (just MENU + DP + DP). Then switch off, change to a fresh card, an try again with the computer.
just my two cents.
[...]
Hey eduperez
Well, I've got the same problem as described by Knatterman above. I reinstalled the 400plus hack again, but factory menu is present from the beginning, so going into the menu and pressing DP DP does nothing.
Did I misunderstand something there? I can't make the factory menu go away and I can't connect my camera to my pc anymore, help please?
I've got a problem with my 400D.
My 400D was working fine with 400plus firmware. Everything was fine. But it suddenly broke.
The camera hangs (sometimes with white screen with dots, sometimes with black) when I press Print from "Home" screen, but AutoISO, Spot focus still works, when I press Print in standart ISO and focus selection screens. The camera blinks blue light on startup and then blue light fires until camera fully start.
Reinstalling of 1.1.1 firmware, testfir.fir, formating CF... nothing helps :(
Any ideas? :'(
First thing I would try is to delete the "languages.ini" file from the card, set the camera to "English", and see what happens.Set to English, deleted languages.ini. The same thing :(
Set to English, deleted languages.ini. The same thing :(
Could something corrupt in the camera? Something went wrong with VxWorks?
I tried two different CFs.
And the main thing - it worked about two weeks when I just installed 400plus.
Please, go to the camera's menu, change to another page within that menu, and then try again.nothing new :( still hangs with err99 in viewfinder.
nothing new :( still hangs with err99 in viewfinder.
Documentation says "If the blue LED of your camera briefly lights up when the camera is turned on, the hack has been successfully loaded." But in my case when the camera is turning on the LED lights up briefly and then light up again and light down only after camera starts and fully ready to works. May be this sign could help?
I understood it would display a blank screen, not an error message; has this changed recently? or is it just something intermittent?After initial installation 400plus was working fine for about two weeks and just once stoped working. Screen is not just blank - it can be black, or white, white with dots, or black with orange noise pattern - not stable. Error message ("Err99") is in viewfinder window, not at screen.
After initial installation 400plus was working fine for about two weeks and just once stoped working. Screen is not just blank - it can be black, or white, white with dots, or black with orange noise pattern - not stable. Error message ("Err99") is in viewfinder window, not at screen.Interesting, i've never seen an Err99 in the ViewFinder, where is it written exactly ?
Interesting, i've never seen an Err99 in the ViewFinder, where is it written exactly ?I tried both scenarios.
see what happens in this scenarios:
1. Try operating the camera w/o entering the Hack menus... make some photos, do some stuff in the menus... see if it is working correctly.
2. Try detaching the lens, external flash and whatever is attached to the body (if there is anything else). Then try the hack again.
Have you tried to reset to factory defaults the camera ?I can't get logs with this autoexec with the same SETTINGS file.
Edit:
attached AUTOEXEC.BIN with massive debug enabled.
I can't get logs with this autoexec with the same SETTINGS file.
Update: hehe! 400plus-201111111-3 now working too! I just tried old version and now it's all ok.
May be some settings in the camera was broken? But I tried reinstalling firmware, 400plus, formating CF, reset setting to default... Magic.
Good to know it's ok now, though it is essential to know what was the problem. Please if you ever have a clue what was it, share with us. ;)I would like to know it too, but I don't know how to find it..
(I would bet on the camera settings and the factory defaults fixed it, since I don't know which setting is it)
Good to know it's ok now, though it is essential to know what was the problem. Please if you ever have a clue what was it, share with us. ;)I would like to know it too, but I don't know how to find it..
(I would bet on the camera settings and the factory defaults fixed it, since I don't know which setting is it)
I tried 400plus after cleaning settings and it didn't worked. May be old version of 400plus could reset some settings?
I'll keep watching at camera's behavior...
if my memory serves me correctly, this is the second time something similar happens: user is suddenly unable to open menus, no matter what he tries, until he install a nightly nuild, and then everything goes back to normal... I'll give an arm and a leg to know why!Actually everything goes back for me after install of an old version - I could use menu in old version (there is only one menu), so I'm not sure what was the solution - nightly build or old version. I just installed nightly build to test and it worked, so I tried release build and it worked too.
您好,感谢您!Hi, Please translate your messages in English.
期待中文菜单。
另外想问下 BIN SRC 这两个文件里的文件是什么?
谢谢 :)
start reading at page one of this thread ;-), then you will know nearly all about it... :-)
and here http://code.google.com/p/400plus/ (http://code.google.com/p/400plus/)
Is it possible to make adjustments to metering to compensate for different focusing screens like in more expensive cameras?
I think 5d/1d have a custom function. I got a split prism focusing screen and when its dark outside spot/partial can be off. I know it won't work when the prisms are blacked out.
Hi all! Tell a modified firmware allows you to shoot more than 30 seconds, or need to use the remote ...
Hi all! Tell a modified firmware allows you to shoot more than 30 seconds, or need to use the remote ...
Look into the EAEB script: configure both "Bulb min" and "Bulb max" to the desired exposure time, and set the camera to BULB mode.
Hi all! Tell a modified firmware allows you to shoot more than 30 seconds, or need to use the remote ...
Look into the EAEB script: configure both "Bulb min" and "Bulb max" to the desired exposure time, and set the camera to BULB mode.
And how to incorporate these "scripts" or you can create yourself a preset?
I found this menu EAEB script, change the value Bulb min and Bulb max, pressed the shutter button, but nothing happened, only the darkened screen and has flashing blue button and everything, nothing happens (((
And why in the "Scripts" there are exclamation marks?
Sorry for my english, translated by Google Translator
Hi,everyone!
Will languages.ini copyed the CF card, how to switch between different languages in the camera
Hi,everyone!
Will languages.ini copyed the CF card, how to switch between different languages in the camera
Using the standard camera menus: 400plus will try to use the same language that you select for the camera.
[...]
Set the language of the camera, the menu is not translated, just press the print button when the screen flashed.Either French, German or other languages.
There is no way to upload my camera language settings page photos.
I think it is the "language.ini language name, produced inconsistent with the language name in the camera menu.
For example, my camera language settings page, the "German" corresponds to "Deutsch", "French" corresponds to "Francais," Simplified Chinese "corresponds to" 简体中文"
Looks like you've found a bug here: we use the "name" of the selected language to find a match in LANGUAGES.INI; but that name may be translated to the language previously configured in the camera. As the names in that file are in English, it only works if we try to move from English to another language; but fails if we move from non-English to another language.
I'll have a look at it as soon as possible; in the meantime, could you please try to configure the camera to English, then to French / German? Many thanks!
hi, I am looking for a hack that change aperture with scroll in m mode, then av button with scroll to change expose speed. For underwater, expose speed can keep 1/100, but change aperture frequency. thanks
Looks like you've found a bug here: we use the "name" of the selected language to find a match in LANGUAGES.INI; but that name may be translated to the language previously configured in the camera. As the names in that file are in English, it only works if we try to move from English to another language; but fails if we move from non-English to another language.
I'll have a look at it as soon as possible; in the meantime, could you please try to configure the camera to English, then to French / German? Many thanks!
I was thinking the same, though i do not have the camera near me to test this.
But then, IIRC, when the camera starts, it was using the correctly selected language.
What would that mean ? The camera starts in english (i think not).
I will check this tonight too... and if we need we can set the language IDs instead of language NAMEs in the language.ini file.
I have playing with this for a while, and couldn't get the camera to fail: I changed languages from English to Spanish, then to German, and from there to French; and 400plus always displayed the menus in the correct language....
I have playing with this for a while, and couldn't get the camera to fail: I changed languages from English to Spanish, then to German, and from there to French; and 400plus always displayed the menus in the correct language....
May be the reporter did something wrong (or edited the file with wrong tools) ?
Ordinary, can you please try to reproduce ?
I have playing with this for a while, and couldn't get the camera to fail: I changed languages from English to Spanish, then to German, and from there to French; and 400plus always displayed the menus in the correct language....
Have you changed something in languages.ini ?
If so, please attach the languages.ini file you're using, so we can try it too.
It could be a problem with UTF8 languages only, as the latin languages seems to work ok.
...
It could be a problem with UTF8 languages only, as the latin languages seems to work ok.
...
It could be a problem with UTF8 languages only, as the latin languages seems to work ok.
Have been identified UTF8 language problem?
Ideas to solve it?
I really need.
Ok, let's go step by step...
Download the latest release, copy both files (AUTOEXEC.BIN and LANGUAGES.INI) to an empty card, put the card in the camera, and test that you can select French or Spanish and it works. ...
Two possibilities come to my mind now. One is that there is some byte, in the UTF8 code for Chinese, that 400plus misinterprets and breaks. Another is that we are hitting an internal limit (we allow a max. of 64 bytes per string, and in UTF8 each character is 3 bytes long, so a 22-character string could be too long for us).
Two possibilities come to my mind now. One is that there is some byte, in the UTF8 code for Chinese, that 400plus misinterprets and breaks. Another is that we are hitting an internal limit (we allow a max. of 64 bytes per string, and in UTF8 each character is 3 bytes long, so a 22-character string could be too long for us).
I agree on the first, there could be some byte in the UTF8 set which is interpret as EOF in vxworks (like there was such in DOS)...
But the second part - UTF8 char takes 2 bytes (not 3) so we have 32 chars for word.
We definitely should have a look at the file.
Documents have been sent to your mailbox"[email protected]"
Subject: Add Simplified Chinese "languages.ini (version 20111111-4)
Hello, everyone.
Just want to share my latest code:
http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip (http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip)
Additional functionalities, which this AUTOEXEC.BIN provide, are listed in Readme.txt file.
Mainly new things are: "preset white balance" - camera can save up to 5 custom wb measurements, and EAEB script now can be started with shutter release button.
Please note this bin doesn't have all the features of 400plus firmware.
Hello, everyone.
Just want to share my latest code:
http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip (http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip)
Additional functionalities, which this AUTOEXEC.BIN provide, are listed in Readme.txt file.
Mainly new things are: "preset white balance" - camera can save up to 5 custom wb measurements, and EAEB script now can be started with shutter release button.
Please note this bin doesn't have all the features of 400plus firmware.
Hello, everyone.
Just want to share my latest code:
[...]
Hello, everyone.
Just want to share my latest code:
http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip (http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip)
Additional functionalities, which this AUTOEXEC.BIN provide, are listed in Readme.txt file.
Mainly new things are: "preset white balance" - camera can save up to 5 custom wb measurements, and EAEB script now can be started with shutter release button.
Please note this bin doesn't have all the features of 400plus firmware.
GUI_BUTTON_ZOOM_IN_PRESS = 0x819,
GUI_BUTTON_ZOOM_IN_RELEASE = 0x81A, // DISP_RELEASED // idle handler shows them w/o a reason, could be disp_release
GUI_BUTTON_ZOOM_OUT_PRESS = 0x81B,
GUI_BUTTON_ZOOM_OUT_RELEASE = 0x81C, // DISP_RELEASED // idle handler shows them w/o a reason, could be disp_release
as the comments show and if i remember correctly - 0x81A and 0x81C can be seen without a obvious reason in the log file... we need to understand what they mean, besides the names we gave them.1. Latest nightly build and I don't see the DOF calculator on the scripts page. I scroll and it just goes back to the beginning.DOF calculator was added in release r1194; you'll need nightly preview 400plus-20120408-r1199.zip or later.
2. Long exposure calculator doesn't let me change any of the settings. I tried the wheel and left/right, I have a feeling I'm doing something wrong.Not all fields in the long exposure calculator can be edited; please have a look to the user guide preview: http://code.google.com/p/400plus/wiki/UserGuidePreview#Long_Exposure_Calculator (http://code.google.com/p/400plus/wiki/UserGuidePreview#Long_Exposure_Calculator).
I checked out spot metering and it doesn't follow the AF points, just stays in the center. Seems like you can file selective spot metering along with multi spot metering. If that gets solved I think moving the spot will be trivial to implement. I got a 45deg screen and it works much better than the 180.400plus just activates spot metering, then it works as designed by Canon; if the camera does not make it follow the AF points, then we will probably not be able to make it work that way.
The menus in 400plus are just way too crowded and there's just too much going on for me.We're already aware of that; perhaps you would like to add your voice here: http://code.google.com/p/400plus/issues/detail?id=202 (http://code.google.com/p/400plus/issues/detail?id=202).
The quick shutter was great. Wish it was the * button instead of set as that button is useless and set is a little hard to reach.The * button is used to control the AF, if you set C.Fn-4 to anything other than the default "AF/AE lock".
as for the 0x819 and 0x81B - they seems to work as expected.
the Star Button should be 0x81B.
just one thing i found long time ago, the GUI_MODE (GUIMode) matters... if you are in the "wrong" GUIMode, the codes are different... for now we are using GUIMode == 0xFF, and these codes should work.
What I like to find, what enables or disables buttons for current GUIMode. Or at least what sends them to IntercomHandler.
We must talking about different IntercomHandlers. I always thought IntercomHandler (0xFFA5D3E0) sends codes and data to MC. I could be wrong. Thanks for the info. I will check it sometimes later today.
Looks like SendToIntercom sends messages to outside unit (maybe MCU) and IntercomHandler receives messages from that unit.
I see you got "jump" and "trash" buttons in MC_T_Button function. Can you still use those buttons when cammera in OLC mode?
Looks like SendToIntercom sends messages to outside unit (maybe MPU) and IntercomHandler receives messages from that unit.
I see you got "jump" and "trash" buttons in MC_T_Button function. Can you still use those buttons when cammera in OLC mode?
welcome. is it possible to do more than 250 pictures in the Time-lapse I tried several memory cards of 1GB and 4GB but still remained a number of photos the same.
Hello everyone,
Sorry to be the needy person, but I've been attempting to set up the cross-compiler for a long time on my Fedora16 system and have had no luck. I'm currently running the 200110615-4 (June 15, 2011) build of 400plus, and was wondering if someone could help me by extending the high ISO to 6400 and the corresponding 1/3rd stops between 3200 and 6400.
Here is a link to the source code build 20110615-4 download:
http://code.google.com/p/400plus/downloads/detail?name=400plus-20110615-4.src.zip&can=1&q= (http://code.google.com/p/400plus/downloads/detail?name=400plus-20110615-4.src.zip&can=1&q=)
Any help would be greatly appreciated.
Thanks,
- Scott S.
Thanks for the quick response. You are probably much more knowledgeable about the subject then I am.
I thought I had seen something from back in 2009 on this thread where someone had gotten the ISO up to 4000, or 5000. I was wondering if that was could be achieved, but it sounds like it is not. So does the camera start under-exposing once you get past 3000, because I've never noticed a problem when shooting at 3200? (Ex: ISO 6400 would be around 1 stop under-exposed)
Interesting that the camera works by 1/8th stops internally. I never knew that.
How interesting. Well I guess that answers my question pretty well, and explains why it won't work. I wonder if there is some way to get around the broken image problem at ISOs higher than 3000. Some sort of other patch maybe? Probably not though. Thanks for all your help.
How interesting. Well I guess that answers my question pretty well, and explains why it won't work. I wonder if there is some way to get around the broken image problem at ISOs higher than 3000. Some sort of other patch maybe? Probably not though. Thanks for all your help.
In 400plus we have to "enable" intermediate ISOs, as a previous step; just asking the camera to use them does not seem to be enough. That first action is still a mystery to me (somebody else found it before I joined the project), so perhaps there is a method to enable higher ISOs, that we must use before going higher than 3000... who knows.
Bear in mind that we are just asking the camera to use one ISO or another, we are not doing any of the work ourselves; patching the internal processing algorithms is way out of scope for me.
Just thought I would try to stir up some discussion in an otherwise quiet forum.
What is your favorite feature in 400plus and why?
[...]
Just thought I would try to stir up some discussion in an otherwise quiet forum.When we can use Scene Modes for quickly dialing-in presets, that will be my favorite feature. In the meantime, there's a lot to like: 1) AutoISO 2) Spot Meter 3) Long exposure stuff....Okay, no single favorite :)
What is your favorite feature in 400plus and why?
I'll start it off. My favorite feature by far is the "Presets" feature. With this added ability I can store up to 9 different shooting styles (per CF card) and easily switch between them for fast setting and parameter changes for different types of shooting styles while in the field. And with the "way cool" ability to rename each preset to something friendly and meaningful instead of simply "Preset 1", "Preset 2", etc. this gives me capabilities in the 400d camera that many other cameras that are much more expensive don't offer. Thanks for that!
Ok, great news,
With the great help and work of Andrew and Alex, i've managed to find the VRAM buffer and ported 5dc's (ML's) bmp.[ch] with the fonts.
The first step is done...
400D now says "Hello World!"
OK got the new bin installed and it is pretty nice. using the jump button for the ISO incrementals and that seems to best compromise.
I am trying to get A-Dep to work though. I set a preset, in this case an ISO of 3000, spot metering and an EV of +2/3 and then I save it . all works well as a starting point for low light high ISO pics but then when I switch out of A-DEP I have all my AV and ISO settings still. ISO is an easy fix but the AV not so much. so I set up a "default" preset. but that is still several clicks into the screen to reset the preset and then it remembers THAT preset as the LAST one the next time I'm in A-dep.
powering off/on does not reset the settings. So what is the best way to switch between A-dep and "default" having to manually reset after a preset change kind of negates the need for the A-dep button if it doesn't reset.
also cannot get ISO in the view finder but not a huge deal to me. I wanted AEB and ISO and possibly A-DEP the rest is unneeded for me.
Thanks for any help
Shawn
Ok, great news,
With the great help and work of Andrew and Alex, i've managed to find the VRAM buffer and ported 5dc's (ML's) bmp.[ch] with the fonts.
The first step is done...
400D now says "Hello World!"
Thanks a lot guys.
Great job, 0xAF! I guess you can draw anything on the screen now. New dialogs, help windows... Do you know if default GUI updates screen so often or there is no problem with it?
In our "gui.c" we intercept the GUI_IDLEHandler routine, to detect when the main dialog has been updated (event GUI_START_OLC_MODE), and change some of the info displayed (like the spot metering icon, for example). I have played very little with that code, but looks like a nice starting point to look for events to block.
I have played a bit with IDLEHandler events, but wasn't able to handle them without causing stability problems.Alex, have you investigated if you can catch everything you need in the GUI task?
I'm even thinking to move all menu button handlers into gui_main_task (instead of dialog API).
void my_romStart(int startType)
{
unknown_cache(&cache_0xFFB602F0, &addr_0x1900, 0xC6B0>>2);
if(*(int*)(0xC0220130)!=0x20)my_usrInit(startType); // if trash botton is not pressed.
else usrInit(startType);
}
Currently I use the JUMP button in shooting mode for AEB. Is there a reason why we can't have finer steps for each button press, like we can when setting AEB through the camera menu (e.g. +/-1/3 EV)?
Flash AEB would be another useful option for the buttons. I have a few presets that I use with flash (if necessary).
Speaking of buttons, I found two buttons: jump in *(int*)(0xC0220134) and trash in *(int*)(0xC0220130). When button is pressed value of an address will be 0x20 and 0x21 when button isn't pressed. Good for exiting a loop in a script.
Or can be used to prevent loading of autoexec.bin at startup.
if(*(int*)(0xC0220130)==0x20)InitializeIntercom(); //if trash button pressed at startup load default IntercomHandler.
else my_InitializeIntercom();
Probably best place is in my_romStart:Code: [Select]void my_romStart(int startType)
{
unknown_cache(&cache_0xFFB602F0, &addr_0x1900, 0xC6B0>>2);
if(*(int*)(0xC0220130)!=0x20)my_usrInit(startType); // if trash botton is not pressed.
else usrInit(startType);
}
Speaking of buttons, I found two buttons: jump in *(int*)(0xC0220134) and trash in *(int*)(0xC0220130). When button is pressed value of an address will be 0x20 and 0x21 when button isn't pressed. Good for exiting a loop in a script.
Or can be used to prevent loading of autoexec.bin at startup.
if(*(int*)(0xC0220130)==0x20)InitializeIntercom(); //if trash button pressed at startup load default IntercomHandler.
else my_InitializeIntercom();
Probably best place is in my_romStart:Code: [Select]void my_romStart(int startType)
{
unknown_cache(&cache_0xFFB602F0, &addr_0x1900, 0xC6B0>>2);
if(*(int*)(0xC0220130)!=0x20)my_usrInit(startType); // if trash botton is not pressed.
else usrInit(startType);
}
Canon's adapter is way too expensive. Unless you find a second hand one or a china one, OR:
I've made 2 adapters for car (12V) and for wall-socket (220V).
I've used one dead battery as a plug to the camera.
Total cost - not more than 4-5 EUR.
power supply for EOS 400d (http://www.flickr.com/photos/0xaf/5666519880/#)
Battery disassembled, 3 wires soldered to the connector pads (though 2 were needed, the central one is not connected)
The battery modules and the PCB are removed from the body.
power supply for EOS 400d (http://www.flickr.com/photos/0xaf/5665951515/#)
One capacitor connected, just in case (though it's not needed)
power supply for EOS 400d (http://www.flickr.com/photos/0xaf/5665951999/#)
The battery body with a cable and plug,
The car adapter and the wall-socket adapter, which can be plugged to the battery body.
Important note: The both adapters are 7.2V-7.4V and 1.5A (atleast). The power-up of the camera is hungry.
One of my colleges made the changes to the adapters (some resistor), so they are 7.2V.
Hi!
I have a problem, the 400plus menu enters automatically to the Parameters menu, if I click the Av button, it exists, but only for a brief time, than it enter it again. If I go to a sub-menu item in the Parameters menu, like AutoISO it behaves normally.
I'm using the latest stable release, 400plus-20120415-7
I made a video of this behavior, it is a low quality video, sorry for that.
[...]
Hello, everyone.
Just want to share my latest code:
http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip (http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip)
Additional functionalities, which this AUTOEXEC.BIN provide, are listed in Readme.txt file.
Mainly new things are: "preset white balance" - camera can save up to 5 custom wb measurements, and EAEB script now can be started with shutter release button.
Please note this bin doesn't have all the features of 400plus firmware.
Another variant of AUTOEXEC with ISO in Viewfinder:
http://lh.rs/kiDQ5Catx5bl (http://lh.rs/kiDQ5Catx5bl)
This time it uses burst counter to display ISO.
1 is 100
2 is 200
4 is 400
8 is 800
6 is 1600
3 is 3200
And it works in P, Tv, Av, M and A-DEP modes.
SendToIntercom(0x6D, 1, burst_int);
I think the only way to access viewfinder lcd is through MPU. SendToIntercom is only function I could find which talks to MPU. Would be nice to find a ram address which corresponds to viewfinder lcd.
Here: http://magiclantern.wikia.com/wiki/SIO3_MREQ (http://magiclantern.wikia.com/wiki/SIO3_MREQ)I though the OLC stuff are related to the display on the back of the camera, not to the VF, but they both seems to be somehow related to each other ... I may be worth to investigate more on the OLC, thanks Alex :)
In digic4, viewfinder seems to be related to something named NotifyOlcInfoChanged. Didn't investigate this.
Alex found something about the communication, it seems to be done via ISRs (interrupt service routine) SIO3 and MREQ...
though there is some protocol which needs to be reversed, if we catch this ISRs it could be possible to proxy them and change some stuff in the communication, or even talk to MPU with our code ... but it seems there is a lot of work to be done there ....
Here: http://magiclantern.wikia.com/wiki/SIO3_MREQ (http://magiclantern.wikia.com/wiki/SIO3_MREQ)That is interesting. I need to check it. Thanks.
Hello, everyone.
Just want to share my latest code:
http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip (http://www.filefactory.com/file/1wdg7fpyeg8z/n/400d_firmware_hack_2012-04-05_zip)
Additional functionalities, which this AUTOEXEC.BIN provide, are listed in Readme.txt file.
Mainly new things are: "preset white balance" - camera can save up to 5 custom wb measurements, and EAEB script now can be started with shutter release button.
Please note this bin doesn't have all the features of 400plus firmware.
Is the ability to trigger EAEB using the shutter release something that can be added to the full 400plus firmware? If i try to shoot handheld HDR it is difficult to keep camera stable using the buttons on the back...
Great work guys by the way!
Hello,
In 400Plus, I do not recall the default parameter of the Color Temp. (K) and I do not know how to restore this value. :(
Thank you for your help.
I have downloaded the latest patch and cannot set the max iso value beyond 1600 in the autiso settings anymore in AV mode. Switched back to the old patch (20110909) and it does not work either anymore. Any ideas (yes I have researched the 109 pages of this thread, but could not find anything).
Thanks,
Roland.
is there anything equal to a documentation of memory adresses or even a documentation where i should expect to find which fuction?
if not: what would you say: where's the best place to start getting into the code?
Hi!!, first...thanks to all of the developers for such a great piece of software!.
I've been using the 400plus hack since april. I had some issues with the latest release 20120415-12.
Intervalometer is not working with 1 sec intervals. Can't making less than 3 sec intervals. I had to rolled out to 20120415-7 release, and 1 sec intervals are working again.
Anyone experience the same issue?
Thanks again!
Great job on chdk for the eos 400d - I just installed it, nice work guys.
The intervalometer script works perfectly but I can't get the handwaving script to fire the shutter.
In the wiki it says:
"This script will fire the camera when the display-off sensor (at the rear of the camera) is triggered"
Does this mean when you push the 'display off/on' button?
I tried that but nothing happened when I covered and uncovered the lens with my hand.
I can tell the script is running because the blue light flashes and it beeped when started.
Any ideas?
Hi!!, first...thanks to all of the developers for such a great piece of software!.
I've been using the 400plus hack since april. I had some issues with the latest release 20120415-12.
Intervalometer is not working with 1 sec intervals. Can't making less than 3 sec intervals. I had to rolled out to 20120415-7 release, and 1 sec intervals are working again.
Anyone experience the same issue?
Thanks again!
Hi, edu, thanks for your reply!.
Yes, the intervalometer actually works when you set 1 sec intervals, BUT is not a shot every 1 sec, is more like every 2 or 3 seconds...
I was using a shutther speed of 1/80, and also used 1/600 in others circumstances.
Everything works great with 20120415-7 release, so i keep that version for now.
Cheers!
Ok, i understand the stability problem. I had some problems too with my camera locking and get unresponsive because of the buffer filling quickly, so im using Jpgs instead of Raw, im sacrifying some quality but i can use 1 sec intervals.
Thank edu!!
Hi
I cannot disable the double flashing with 400plus. Is it supposed be possible or not?
I want to synchonize with an external flash, it is too slow to detect the double flash so I have to lift the mirror in advance. Better it would be to get only one flash.
Ok thanks, good to know.
My slave is too slow to detect it. It detects it only if I lift mirror first (with first flash), half a second or so ... :(
it does not have enough time to rechargeNo it doesn't fire at the first flash, nevertheless it detects the second one only when slow enough. Really bad.
Is there any way to get Lua or uBasic user scripting working on the 400D?
Do these work on any dSLR?
Edmund
Hi. Myself and other fellow photographers locally and random inquiries I see across posts from CHDK and MagicLantern have a solid interest in getting some sort of alternate firmware and features on our 1000D's.
Some initial work was done by Coutts and Others seems to have been kinda of set in place and left for someone else.
Here are links to the stuff that was finished
https://bitbucket.org/coutts/1000d_dev/commits (https://bitbucket.org/coutts/1000d_dev/commits)
https://bitbucket.org/coutts/1000d_dev/src/a7835d17602f?at=default (https://bitbucket.org/coutts/1000d_dev/src/a7835d17602f?at=default)
https://bitbucket.org/coutts/1000d_dev/src/a7835d17602fe2de51fda54d372f48ede290858e/engelmarkus_examples?at=default (https://bitbucket.org/coutts/1000d_dev/src/a7835d17602fe2de51fda54d372f48ede290858e/engelmarkus_examples?at=default)
It looks like Coutts initially was working towards porting 400plus to the 1000D and infact initially ported a bunch of init functions before reverting back to basic and labeling the work done as "ready to be ported to magic lantern".
I'm seriously not a great programmer. Can anyone give me an idea of how much work needs to be done to get 400plus or ANY mannor of alt firmware with extended functions done?
I'd give it a shot but I don't know where to start and it could very easily be way beyond my expertise.
Any help is appreciated. Its a shame all that work has gone dormant with nobody to work on it.
Hi eduperez, 0xAF !
I have being working on VRAM last couple of weeks. I was trying to stop flicker, but don't have any luck to find a function which writes into the vram. Maybe you have any idea?
Here my code, look in display.c VramModTask().https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
Thanks for your help.
Hi eduperez, 0xAF !
I have being working on VRAM last couple of weeks. I was trying to stop flicker, but don't have any luck to find a function which writes into the vram. Maybe you have any idea?
Here my code, look in display.c VramModTask().https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
Thanks for your help.
Hi Sergei! Glad to know about you again!
After 0xAF ported all the code to write to VRAM, we also began to work with the display. We've managed to make it almost flicker-free: it only flicks when the exposure needle flashes (because there is over/under exposure); but, when that happens, we lose the overlay completely until the user half-presses the shutter button again. Really annoying.
All I know is already committed into our repository: what we are doing now is to refresh the overlay when we detect certain events (GUI_START_OLC_MOD in GUI_IDLEHandler and IC_MEASURING[0x80] or IC_MEASUREMENT[0x81] in the intercom proxy), and then refreshing it again after a small delay.
I have the impression (and please, take this with a grain of salt) that there is some "idle state" related to the display, and when it enters into that state, then it does not refresh, no matter what we do.
I'll have a look to your code right now, this is one of my current priorities; let's try to find a solution together!
Many thanks!
Edu.
Hi eduperez, 0xAF !
I have being working on VRAM last couple of weeks. I was trying to stop flicker, but don't have any luck to find a function which writes into the vram. Maybe you have any idea?
Here my code, look in display.c VramModTask().https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
Thanks for your help.
Hi Sergei! Glad to know about you again!
After 0xAF ported all the code to write to VRAM, we also began to work with the display. We've managed to make it almost flicker-free: it only flicks when the exposure needle flashes (because there is over/under exposure); but, when that happens, we lose the overlay completely until the user half-presses the shutter button again. Really annoying.
All I know is already committed into our repository: what we are doing now is to refresh the overlay when we detect certain events (GUI_START_OLC_MOD in GUI_IDLEHandler and IC_MEASURING[0x80] or IC_MEASUREMENT[0x81] in the intercom proxy), and then refreshing it again after a small delay.
I have the impression (and please, take this with a grain of salt) that there is some "idle state" related to the display, and when it enters into that state, then it does not refresh, no matter what we do.
I'll have a look to your code right now, this is one of my current priorities; let's try to find a solution together!
Many thanks!
Edu.
Hi Guys,
I've been away from the camera hacking for long now, though i remember many things and eventually will try to implement some of the ideas I still have.
What I know from Alex about the display refreshes is that they (ML) found a way to block them.
There are some events that will force display to refresh, Edu, you're right, the display can stay in idle state until some events (messages) are received.
We have our code wrapped around the Intercom task mostly, hence our intercom proxy.
It seems our camera is the only one (may be there are few more cameras, namely 30d, 450d and 1000d i think) that have intercom. All other cameras are using the so called properties system, which i'm not so familiar with.
The properties are basically what we have in DPR Data (Digital PRoperties Data). But somehow they can be used to traverse messages and commands. So it's not so different after all.
The ML guys have worked their way around the GUI Task (not the intercom task, like we are), so Alex told me that in GUI task they can block some events (namely, DISPLAY_REFRESH).
So my idea was to reverse the GUI task (somewhere it is called: GUI Idle) and then we can block the original display refresh if we need to. That's what I know about it.
If somehow in our intercom task we can see these events we can block them there I guess.
Unfortunately so far (the last 2 years) I have very little time to work on hobby projects :( which is very sad, since I'm missing the camera hacking so much.
If I can help somewhere, please do not hesitate to ask. I will gladly help (at least with knowledge I have).
Be cool.
All I know is already committed into our repository: what we are doing now is to refresh the overlay when we detect certain events (GUI_START_OLC_MOD in GUI_IDLEHandler and IC_MEASURING[0x80] or IC_MEASUREMENT[0x81] in the intercom proxy), and then refreshing it again after a small delay.I did it little different way. I start a new task right before "START_OLC_MODE" which writes overlay to vram plus sets one pixel at a corner of the screen. Then it checks for set pixel to be the same, if not it rewrites overlay again.
Still flickers time to time. That's why i want to find what writes into vram address and see if it is anyway to control it.
I tried to stop blink timer in OLC by setting hBlinkTimer (*(int*)0x47F4) to 0. It makes OLC stop flashing Tv or Av values on the screen but something else still rewrites overlay.
Looks like I successfully locked vram. OLC can't change anything on screen after lock, but direct write to vram still works .
DEF(TakeVramSemaphore, 0xFF92E41C) //
DEF(GiveSemaphore__, 0xFF92E468) // goes in funclist.txt
#define VramInstance_address *(int*)0x5190
TakeVramSemaphore(VramInstance_address); // takes vram semaphore so other tasks have to wait for it to free before thay can write to vram
SleepTask(2000);
bmp_printf(50, 134, "test", COLOR_BLACK, COLOR_GRAY); //writes directly to vram
SleepTask(7000);
GiveSemaphore__(VramInstance_address); //releases the semaphore
Not exactly what I needed but it can be used for custom windows on OLC screen or maybe to hide menu screen when firmware goes into 400plus menu.
Well, firmware waits for semaphore to free before it starts menu, so I guess it's no way to hide the menu screen.
Looks like I successfully locked vram. OLC can't change anything on screen after lock, but direct write to vram still works .
DEF(TakeVramSemaphore, 0xFF92E41C) //
DEF(GiveSemaphore__, 0xFF92E468) // goes in funclist.txt
#define VramInstance_address *(int*)0x5190
TakeVramSemaphore(VramInstance_address); // takes vram semaphore so other tasks have to wait for it to free before thay can write to vram
SleepTask(2000);
bmp_printf(50, 134, "test", COLOR_BLACK, COLOR_GRAY); //writes directly to vram
SleepTask(7000);
GiveSemaphore__(VramInstance_address); //releases the semaphore
Not exactly what I needed but it can be used for custom windows on OLC screen or maybe to hide menu screen when firmware goes into 400plus menu.
Very interesting, thanks for sharing.
I guess this could be used to make our own menus, writing directly to VRAM, no? And I should probably update our overlay code, and use that semaphore.
But, do you think this could be used to avoid flickering? Actually, we do not want to lock the OLC, we just want to know when somebody else writes to the display; perhaps we could "watch" that semaphore, or get informed each time it is released, so we can update our overlay afterwards. Just some thoughts...
Looks like I successfully locked vram. OLC can't change anything on screen after lock, but direct write to vram still works .
DEF(TakeVramSemaphore, 0xFF92E41C) //
DEF(GiveSemaphore__, 0xFF92E468) // goes in funclist.txt
#define VramInstance_address *(int*)0x5190
TakeVramSemaphore(VramInstance_address); // takes vram semaphore so other tasks have to wait for it to free before thay can write to vram
SleepTask(2000);
bmp_printf(50, 134, "test", COLOR_BLACK, COLOR_GRAY); //writes directly to vram
SleepTask(7000);
GiveSemaphore__(VramInstance_address); //releases the semaphore
Not exactly what I needed but it can be used for custom windows on OLC screen or maybe to hide menu screen when firmware goes into 400plus menu.
Very interesting, thanks for sharing.
I guess this could be used to make our own menus, writing directly to VRAM, no? And I should probably update our overlay code, and use that semaphore.
But, do you think this could be used to avoid flickering? Actually, we do not want to lock the OLC, we just want to know when somebody else writes to the display; perhaps we could "watch" that semaphore, or get informed each time it is released, so we can update our overlay afterwards. Just some thoughts...
If "everybody else" who writes to the main display uses this same semaphore (looks like they should, that is what semaphores are for, no?), and we could somehow intercept all calls to TakeVramSemaphore, then we would know when to refresh our overlay. Could the "cache hack" be used here?
Yes, you're right, it will not help to stop flickering. I'm not familiar with semaphores but it looks like it is just a flag and some info, so you will have to check it all the time to know if something is using it. Would be nice to find a way to execute a function on semaphore access without checking it all the time.
Hi guys,
This reply is going to be a long one, sorry for that.
It seems the forum didn't sent any mail notifications to me and I'm way behind this conversation.
So here we go...Looks like I successfully locked vram. OLC can't change anything on screen after lock, but direct write to vram still works .
DEF(TakeVramSemaphore, 0xFF92E41C) //
DEF(GiveSemaphore__, 0xFF92E468) // goes in funclist.txt
#define VramInstance_address *(int*)0x5190
TakeVramSemaphore(VramInstance_address); // takes vram semaphore so other tasks have to wait for it to free before thay can write to vram
SleepTask(2000);
bmp_printf(50, 134, "test", COLOR_BLACK, COLOR_GRAY); //writes directly to vram
SleepTask(7000);
GiveSemaphore__(VramInstance_address); //releases the semaphore
Not exactly what I needed but it can be used for custom windows on OLC screen or maybe to hide menu screen when firmware goes into 400plus menu.
This is very good finding, I think this can be useful in many cases, though may be not what exactly we dreamed of ;).
Thanks for sharing it.Well, firmware waits for semaphore to free before it starts menu, so I guess it's no way to hide the menu screen.I've expected that, by locking this semaphore, we are blocking some tasks (the one that want to Take it).
I think this can turn out to be dangerous (ErrXX or something) if we block for too long.
But on a second thought these ErrXX stuff only shows when the MPU cant do something or return error to main CPU.
I guess the main firmware is not locking up with ErrXX on it's own, it does only when MPU is in trouble. This is just a guess.Very interesting, thanks for sharing.
I guess this could be used to make our own menus, writing directly to VRAM, no? And I should probably update our overlay code, and use that semaphore.
But, do you think this could be used to avoid flickering? Actually, we do not want to lock the OLC, we just want to know when somebody else writes to the display; perhaps we could "watch" that semaphore, or get informed each time it is released, so we can update our overlay afterwards. Just some thoughts...
Edu, It can be used for some stuff, but not for full display control. If we TAKE the semaphore we will block one or more canon TASKs.
I think blocking canon tasks for long time is not a good idea. On the other hand, only experiments can prove me right or wrong.
I guess we wont find an easy way to be informed of screen updates, at least not with this semaphore.
Watching the semaphore wont be efficient, since it's not atomic operation, so we may miss some changes. At least I do not know if we can watch it.
Busy-looping to watch the semaphore is out of question too.If "everybody else" who writes to the main display uses this same semaphore (looks like they should, that is what semaphores are for, no?), and we could somehow intercept all calls to TakeVramSemaphore, then we would know when to refresh our overlay. Could the "cache hack" be used here?I think you are right, everyone who wants to write to display should rely on this semaphore, though it could be only one task (GUI) and everyone else talk to this task. Quite possible, but not so reasonable... If this is the case, then why would it need a Semaphore ?
The approach with "cache hacks" sounds possible, I will try to find some time soon to implement them in 400Plus.
I see one major disadvantage to this, wrapping the real TakeVramSemaphore means to execute extra code (time) on every call to it.
And if I'm not mistaken the Semaphore routines are atomic. This is very important, since it guarantees that no race-condition can happen.Yes, you're right, it will not help to stop flickering. I'm not familiar with semaphores but it looks like it is just a flag and some info, so you will have to check it all the time to know if something is using it. Would be nice to find a way to execute a function on semaphore access without checking it all the time.Sergei, semaphores are just flags (similar to mutex'es in posix). The idea of these flags are to block you if someone is using the flag.
The idea of semaphore is to prevent race conditions.
Here is an example:
Basically you have 2 tasks and one variable which is used (read/write) in both tasks.Code: [Select]var x=0;
taks1() {
if (x) {
do_something();
} else {
do_other();
}
}
task2() {
while(1) {
x = !x; // invert x
}
}
now the problem comes when task1() is in this line:Code: [Select]if (x) {
lets say x == 1 in this case.
durring the check the x is 1, and task1() is going to do_something();
but before executing the call (Branch) to do_something(), the scheduler changes to task2() and task2() sets x to 0.
then in this case task1() is still going to call do_something() which is wrong already.
to prevent this you need atomic instructions
but i guess you already know the rest of the story...
Final notes:
I think this conversation should be pasted to the forum thread, so others can learn about it. And ML guys can join the conversation if they know more.
My idea was to use the cache hack to substitute the original TakeVramSemaphore to something similar to:Code: [Select]MyTakeVramSemaphore(int *address) {
TakeVramSemaphore(address);
enqueue_action(overlay_refresh);
}
It should be almost as fast as the original, and we use the original functionality. Then, our overlay_refresh function should use the same semaphore before writing to the display. This would tell us when to refresh the overlay, and I think it would avoid all the flickering.
I see what you mean, but I guess it would be better to use GiveVramSemaphore in this manner...GiveVramSemaphore and TakeVramSemaphore have been called in many different places and it called from ROM address. I think it will be hard to change anything without knowing exact path which firmware takes to write OLC screen. Probably we can find an easier way to get hook for our function.
I will find time soon to try some cache hacks stuff...Final notes:I don't mind if you want to paste it in main thread. I didn't know if anybody else would have interest in firmware hacking on 400D. Looks like only three of us who is still working on it.
I think this conversation should be pasted to the forum thread, so others can learn about it. And ML guys can join the conversation if they know more.
0xAF, thanks for explanation of how semaphores are operating.
I see what you mean, but I guess it would be better to use GiveVramSemaphore in this manner...GiveVramSemaphore and TakeVramSemaphore have been called in many different places and it called from ROM address. I think it will be hard to change anything without knowing exact path which firmware takes to write OLC screen. Probably we can find an easier way to get hook for our funyction.
I will find time soon to try some cache hacks stuff...
The people at ML found a method to 'poison' the CPU's cache, so all calls to a certain function are redirected to another function; and you do not need to find or modify all the calls.
That's interesting! I will see if I can figure out their method of changing program flow.I see what you mean, but I guess it would be better to use GiveVramSemaphore in this manner...GiveVramSemaphore and TakeVramSemaphore have been called in many different places and it called from ROM address. I think it will be hard to change anything without knowing exact path which firmware takes to write OLC screen. Probably we can find an easier way to get hook for our funyction.
I will find time soon to try some cache hacks stuff...
The people at ML found a method to 'poison' the CPU's cache, so all calls to a certain function are redirected to another function; and you do not need to find or modify all the calls.
Thanks.
I finally got hook in function which seems like updates GUI. But overlay still flickers. I think it has something to do with "GUIBlinkTimer".Code: [Select]int UpdateGUI (int r0, int r1, int r2, int r3, int a, int b, int c, int d)
{ int aa = sub_FF92D950 (r0, r1, r2, r3, a, b, c, d); // looks like this function get called everytime GUI updates
UnSuspendTask(hVramModTask);
return aa;
}
(*(int*)0x51C0)= (int)&UpdateGUI; // goes in main.c at initializationCode: [Select]void VramModTask(void)
{ char str[25];
while (1)
{ if(GUIMode==OLC_MODE && dpr_data.wb==8)
{ sprintf(str,"%d",dpr_data.color_temp);
bmp_printf(50, 134, str, COLOR_BLACK, COLOR_GRAY_2);
}
SuspendTask(hVramModTask);
}
}
void bmp_printf(int ofset_x, int ofset_y, char *str, int fg_color, int bg_color)
{ int x, y, pixel, pixels;
char c;
if(TakeVramSemaphore(VramInstance_address))return;
while( (c = *str++) )
{ for( y=0 ; y<font_small.height ; y++ )
{ pixels = font_small.bitmap[ c + (y << 7) ];
for( x=0 ; x<font_small.width; x++ )
{ vram.pixel[y+ofset_y][x+ofset_x] = (pixels & 0x8000) ? fg_color : bg_color;
pixels <<=1;
}
}
ofset_x += font_small.width;
}
GiveVramSemaphore(VramInstance_address);
}
I finally got hook in function which seems like updates GUI. But overlay still flickers. I think it has something to do with "GUIBlinkTimer".Code: [Select]int UpdateGUI (int r0, int r1, int r2, int r3, int a, int b, int c, int d)
........
{ int aa = sub_FF92D950 (r0, r1, r2, r3, a, b, c, d); // looks like this function get called everytime GUI updates
UnSuspendTask(hVramModTask);
return aa;
}
(*(int*)0x51C0)= (int)&UpdateGUI; // goes in main.c at initialization
Looks interesting, when looking around the address of this CallBackRoutine (CBR), it looks like it is related to WindowInstance stuff... may be this means that it is called only when there are "windows" on the screen...
Another interesting thing is that on the next few addresses, there are stuff related to:
eventproc_TransferNormalScreen()
I think this eventproc is the one that transfers the FrameBuffer to the real LCD screen.
Everything is drawn in a framebuffer and i guess it's double buffered (i.e. there are 2 frame buffers)
then when the frame buffer is changed this routine will draw the original lcd.
IIRC all eventproc routines are registered in table, and there were register_eventproc() or something...
this way, we can replace the original eventproc with ours... and if I'm right on this, this routine should be used to refresh the screen, hence we can use this to stop flickering...
I'm only guessing here, I have no chance to test it ATM.
this is what i see in RAM, right next after some VRAM buffer (frame buffer)
RAM:0023D008 off_23D008: .long off_227DFC @ DATA XREF: RAM:00227E00o
RAM:0023D008 @ RAM:off_23D01Co
RAM:0023D00C .long off_23D01C
RAM:0023D010 .long sub_14
RAM:0023D014 .align 8
RAM:0023D018 .long eventproc_TransferNormalScreen
RAM:0023D01C off_23D01C: .long off_23D008 @ DATA XREF: RAM:0023D00Co
RAM:0023D01C @ RAM:off_23D048o
RAM:0023D020 .long off_23D048
RAM:0023D024 .long dword_2C
RAM:0023D028 .byte 0
RAM:0023D029 .byte 0
RAM:0023D02A .byte 0
RAM:0023D02B .byte 0
RAM:0023D02C .byte 0x14
RAM:0023D02D .byte 0xD0 @ -
RAM:0023D02E .byte 0x23 @ #
RAM:0023D02F .byte 0
RAM:0023D030 aTransferNormalScreen:.ascii "TransferNormalScreen"
and this is the ROM where it gets registered:
FW:FF934EB4 028 LDR R0, =aTransfernormal @ "TransferNormalScreen"
FW:FF934EB8 028 STR R2, [LR] @ Store to Memory
FW:FF934EBC 028 LDR R1, =eventproc_TransferNormalScreen @ Load from Memory
FW:FF934EC0 028 STR R6, [R4] @ Store to Memory
FW:FF934EC4 028 STR R6, [R5] @ Store to Memory
FW:FF934EC8 028 BL RegisterEventProcedure @ Branch with Link
i'm not 100% sure, but i think at 0x00005448 in RAM starts the eventproc table
format is simple:
struct {
int * pointer_to_routine;
char * pointer_to_string;
}
RAM:00005448 .long eventproc_about
RAM:0000544C .long aabout @ "about"
RAM:00005450 .long eventproc_about
RAM:00005454 .long aGetSystemInfo @ "GetSystemInfo"
RAM:00005458 .long eventproc_GetSystemInfo
RAM:0000545C .long aPrintModelName @ "PrintModelName"
Unfortunately i do not find the eventproc_TransferNormalScreen()
it seems this list is only registering the eventproc's available for the shell (console) of the camera, and transfernormalscreen is not one of them. Anyway, it is registered right after one of the VRAM's (see above)
These are just few random thoughts that crossed my mind, hope it helps.
Another interesting thing is that on the next few addresses, there are stuff related to:
eventproc_TransferNormalScreen()
I think this eventproc is the one that transfers the FrameBuffer to the real LCD screen.
Everything is drawn in a framebuffer and i guess it's double buffered (i.e. there are 2 frame buffers)
then when the frame buffer is changed this routine will draw the original lcd.
eventproc_TransferNormalScreen() calls sub_FF92D950 or "WindowInstance" at the end. ( MOV PC, R7)
I'm sill trying to find how "vram2" get copied to vram.
#define vram (*(vram_t*)(*(int*)0x19638))
#define vram2 (*(vram_t*)(*(int*)(*(int*)(*(int*)(0x5190)+0x10))))
Maybe i'm wrong about vram2 and it never copies to vram. I know it doesn't respond to any changes, but many routines are using it.
Another interesting thing is that on the next few addresses, there are stuff related to:0xAF, looks like eventproc_Transfer_XXXXX_Screen() functions sets (*(int*)0x51C0) to a pointer to a function which transfers vram according to its name.
eventproc_TransferNormalScreen()
I think this eventproc is the one that transfers the FrameBuffer to the real LCD screen.
Everything is drawn in a framebuffer and i guess it's double buffered (i.e. there are 2 frame buffers)
then when the frame buffer is changed this routine will draw the original lcd.
I have tried pointer from "eventproc_TransferRotateScreen" and screen flipped up side down. :lol
Here is some pointers for 0x51C0:
0xFF92D950 - eventproc_TransferNormalScreen
0xFF92E12C - eventproc_TransferUpsideDownScreen
0xFF92E294 - eventproc_TransferMirrorScreen
0xFF92DCFC - eventproc_TransferRotateScreen //Probably good macro when camera is up side down under tripod
I guess if we decompile routine at 0xFF92D950, we could understand how vram is copied.
I finally got hook in function which seems like updates GUI. But overlay still flickers. I think it has something to do with "GUIBlinkTimer".Code: [Select]int UpdateGUI (int r0, int r1, int r2, int r3, int a, int b, int c, int d)
{ int aa = sub_FF92D950 (r0, r1, r2, r3, a, b, c, d); // looks like this function get called everytime GUI updates
UnSuspendTask(hVramModTask);
return aa;
}
(*(int*)0x51C0)= (int)&UpdateGUI; // goes in main.c at initializationCode: [Select]void VramModTask(void)
{ char str[25];
while (1)
{ if(GUIMode==OLC_MODE && dpr_data.wb==8)
{ sprintf(str,"%d",dpr_data.color_temp);
bmp_printf(50, 134, str, COLOR_BLACK, COLOR_GRAY_2);
}
SuspendTask(hVramModTask);
}
}
void bmp_printf(int ofset_x, int ofset_y, char *str, int fg_color, int bg_color)
{ int x, y, pixel, pixels;
char c;
if(TakeVramSemaphore(VramInstance_address))return;
while( (c = *str++) )
{ for( y=0 ; y<font_small.height ; y++ )
{ pixels = font_small.bitmap[ c + (y << 7) ];
for( x=0 ; x<font_small.width; x++ )
{ vram.pixel[y+ofset_y][x+ofset_x] = (pixels & 0x8000) ? fg_color : bg_color;
pixels <<=1;
}
}
ofset_x += font_small.width;
}
GiveVramSemaphore(VramInstance_address);
}
Yes, it still flickers, but it is totally acceptable now...
Great job, I just committed a change that incorporates this code; many thanks!
0xAF, looks like eventproc_Transfer_XXXXX_Screen() functions sets (*(int*)0x51C0) to a pointer to a function which transfers vram according to its name.
I have tried pointer from "eventproc_TransferRotateScreen" and screen flipped up side down. :lol
Here is some pointers for 0x51C0:
0xFF92D950 - eventproc_TransferNormalScreen
0xFF92E12C - eventproc_TransferUpsideDownScreen
0xFF92E294 - eventproc_TransferMirrorScreen
0xFF92DCFC - eventproc_TransferRotateScreen //Probably good macro when camera is up side down under tripod
I guess if we decompile routine at 0xFF92D950, we could understand how vram is copied.
Yes, flipping down the display can be very interesting for macro; good!
Edu.
0xAF, looks like eventproc_Transfer_XXXXX_Screen() functions sets (*(int*)0x51C0) to a pointer to a function which transfers vram according to its name.
I have tried pointer from "eventproc_TransferRotateScreen" and screen flipped up side down. :lol
I might misunderstood something, are these Transfer functions set the pointer on every call ?
If so then we must replace the pointer on every call of Transfer function... the cache hacks can do this easily i think.
If not, then we are safe to put our function in this pointer and do what i've talked in previous message...
0xAF, looks like eventproc_Transfer_XXXXX_Screen() functions sets (*(int*)0x51C0) to a pointer to a function which transfers vram according to its name.
I have tried pointer from "eventproc_TransferRotateScreen" and screen flipped up side down. :lol
Here is some pointers for 0x51C0:
0xFF92D950 - eventproc_TransferNormalScreen
0xFF92E12C - eventproc_TransferUpsideDownScreen
0xFF92E294 - eventproc_TransferMirrorScreen
0xFF92DCFC - eventproc_TransferRotateScreen //Probably good macro when camera is up side down under tripod
I guess if we decompile routine at 0xFF92D950, we could understand how vram is copied.
Yeah, I've been playing with these functions back in the time.
These are the real transfer functions to the VRAM and i've been looking at their source back then.
Buy didn't look too deep, to understand it fully.
Anyway, I think the copying is not so important, it will be just a copy of the frame buffer to the MMIO address of the real display (or something similar).
Even if we understand how it's copied, it's not so interesring IMO.
It is more important to replace the function that copy the framebuffer to vram, since this way, we can block the real coping, without blocking the TASKs (like with the semaphore).
Or to be more correct, we should not block the display refreshes at all... instead we should do the following:
If we are able to replace the Transfer function with ours, when someone calls this function (we do not care who and why calls it), we just put our stuff to the VRAM and then call the real transfer function. This way our drawn content will be always there and no flickering should be visible.
This will work only if there is no other methods to transfer the FB to VRAM (at least the OFW should not call other functions to transfer)
Let me see if I understood correctly:
* Those functions transfer the contents of certain memory address to the real display.
* We can easily replace which function makes the transfer.
Could we replace one of these functions, and force the firmware to use one of ours? In that case, perhaps we could change "TransferNormalScreen" to something that does "display_overlay + TransferNormalScreen", and that would eliminate all flickering, no? I'll give it a try tonight.
Besides, if we knew how the transfer is made, perhaps we could try other tricks, like inverse all colors for a night-mode display...
Let me see if I understood correctly:
* Those functions transfer the contents of certain memory address to the real display.
* We can easily replace which function makes the transfer.
Could we replace one of these functions, and force the firmware to use one of ours? In that case, perhaps we could change "TransferNormalScreen" to something that does "display_overlay + TransferNormalScreen", and that would eliminate all flickering, no? I'll give it a try tonight.
Besides, if we knew how the transfer is made, perhaps we could try other tricks, like inverse all colors for a night-mode display...
Basically yes.
But on the second though, if the Transfer functions set the pointer each time they are called (i guess they will), we should patch these functions to set our function in this pointer and not their function. This will be easily achieved with cache hacks ... I will find time very soon to try cache-hacks on 400d.
eventproc_TransferNormalScreen sets the pointer 0x51C0 to 0xFF92D950 function. Edu sets this pointer to my_UpdateGUI() which calls 0xFF92D950 or "UpdateGUI()" and enqueue_action(display_overlay) .
Something sets the pointer one time at boot and every GUI window uses it to update vram. I could be wrong, but window instance has section of RAM which looks like a copy of vram. I think the function in 0x51C0 updates it and then copies it to vram. My idea was to find which subroutine does the copy. Maybe BlinkTimer uses it to write to vram.
eventproc_TransferNormalScreen sets the pointer 0x51C0 to 0xFF92D950 function. Edu sets this pointer to my_UpdateGUI() which calls 0xFF92D950 or "UpdateGUI()" and enqueue_action(display_overlay) .
Something sets the pointer one time at boot and every GUI window uses it to update vram. I could be wrong, but window instance has section of RAM which looks like a copy of vram. I think the function in 0x51C0 updates it and then copies it to vram. My idea was to find which subroutine does the copy. Maybe BlinkTimer uses it to write to vram.
I see.
Then this simplifies the whole stuff, we just register at this pointer with our routine, then on every call, we "poison" the vram with our content, then call the original routine.
Am I thinking right ?
BTW, why would you need to find what exactly copies the FB to VRAM ? What is it good for ?
In theory it should work already. But it doesn't. Something is blocking overlay writes time to time. And it not consistent. I thought if I find what writes original screen and put a filter there, so it never overwrites our overlay, it may stop the flicker.eventproc_TransferNormalScreen sets the pointer 0x51C0 to 0xFF92D950 function. Edu sets this pointer to my_UpdateGUI() which calls 0xFF92D950 or "UpdateGUI()" and enqueue_action(display_overlay) .
Something sets the pointer one time at boot and every GUI window uses it to update vram. I could be wrong, but window instance has section of RAM which looks like a copy of vram. I think the function in 0x51C0 updates it and then copies it to vram. My idea was to find which subroutine does the copy. Maybe BlinkTimer uses it to write to vram.
I see.
Then this simplifies the whole stuff, we just register at this pointer with our routine, then on every call, we "poison" the vram with our content, then call the original routine.
Am I thinking right ?
BTW, why would you need to find what exactly copies the FB to VRAM ? What is it good for ?
Ok, I finally spotted that "vram copy" routine! No more flickering.
Look in main.c for "UpdateGUI", in gui.S for "my_TransferNormalScreen" and "VramMod", in display.c for "VramMod" and "bmp_printf" to get an idea.
https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
We probably can invert screen colors for night mode now too.
Ok, I finally spotted that "vram copy" routine! No more flickering.
Look in main.c for "UpdateGUI", in gui.S for "my_TransferNormalScreen" and "VramMod", in display.c for "VramMod" and "bmp_printf" to get an idea.
https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
We probably can invert screen colors for night mode now too.
BRAVO!!! May I kiss you??? :-*
I get a "404-Not found" when I try to access that link... could you upload it again, please?
try this one:
https://lh.rs/3uvQzJ3NP7OP (https://lh.rs/3uvQzJ3NP7OP)
try this one:
https://lh.rs/3uvQzJ3NP7OP (https://lh.rs/3uvQzJ3NP7OP)
Got it, I'm reviewing the code right now; many thanks!
Ok, I finally spotted that "vram copy" routine! No more flickering.
Look in main.c for "UpdateGUI", in gui.S for "my_TransferNormalScreen" and "VramMod", in display.c for "VramMod" and "bmp_printf" to get an idea.
https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
We probably can invert screen colors for night mode now too.
Looks quite interesting... You've gone deeper to reach this.
In this case the cache-hacks would be very useful.
Though you've did a great job on this, I think there should be easier way to handle the flickering, but i'm not in position to talk about it, since i have no time to do any experiments.
On the other hand, you've mentioned inverting the colors, which would be interesting feature and for such feature, your great work is most appreciated.
Good job.
I don't know anything about "cache-hacks". Something about changing CPU cache to swap pointers to functions? If you remember any links to information about cache-hacks please send them to me.Ok, I finally spotted that "vram copy" routine! No more flickering.
Look in main.c for "UpdateGUI", in gui.S for "my_TransferNormalScreen" and "VramMod", in display.c for "VramMod" and "bmp_printf" to get an idea.
https://lh.rs/ycJ2bZHHEwRy (https://lh.rs/ycJ2bZHHEwRy)
We probably can invert screen colors for night mode now too.
Looks quite interesting... You've gone deeper to reach this.
In this case the cache-hacks would be very useful.
Though you've did a great job on this, I think there should be easier way to handle the flickering, but i'm not in position to talk about it, since i have no time to do any experiments.
On the other hand, you've mentioned inverting the colors, which would be interesting feature and for such feature, your great work is most appreciated.
Good job.
Thanks.
I don't know anything about "cache-hacks". Something about changing CPU cache to swap pointers to functions? If you remember any links to information about cache-hacks please send them to me.
Thanks.
The idea behind cache-hacks was developed by g3gg0 from ML.
There are 2 cache lines in ARM. One for DATA and one for INSTRUCTIONS.
When code is executed from ROM (or RAM) the internals of the CPU (the caches) are checking if the instruction at this address already exists in the I cache. If it is in the cache, then it's not read from the ROM, but it is executed directly from the cache.
Same is happening for the Data.
lets say we have this instruction:
ROM:0x12345678 LDR R12, =dword_ABCD
the following will happen when the execution take place:
1. Check I cache of we have 0x12345678 already in the cache
1.1. If yes - then execute from there
1.2 If no - then read the instruction from ROM and execute (and cache it in I cache)
2. Check the D cache if we have =dword_ABCD already
2.1. If yes - then get the data from D cache
2.2. If no - then read the data from ROM and cache it in D cache.
The good thing of the I/D caches is that we can change their content and lock them, so nothing changes after that. (the caches are separated in several blocks and we can put our stuff in 1 block and lock only this block)
What we are going to do is the following.
We "poison" the cache and put another instruction for the address 0x12345678, then when the code is executing from ROM and the execution gets to 0x12345678, the caches will execute our instruction instead of the real one.
Very handful to replace B/BL calls for example.
D cache is not so interesting once we can poison I cache.
This is the implementation for cache-hacks written by g3gg0 for ML:
https://bitbucket.org/hudson/magic-lantern/src/1f347d21f1599ee6bc49f2ea0cc829735a79e9c3/src/cache_hacks.h?at=unified
It may look scary when you first see it, but if you read the ARM ARM (ARM Architecture Reference Manual), it gets quite clear how it works... Though it took me some good time to understand it fully.
But my idea was to port it in 400Plus (which should be relatively easy) and i will do it some time soon.
Hope this explains enough on how the cache-hacks works.
Great! Thank you very much! I will try to understand how it works.I don't know anything about "cache-hacks". Something about changing CPU cache to swap pointers to functions? If you remember any links to information about cache-hacks please send them to me.
Thanks.
The idea behind cache-hacks was developed by g3gg0 from ML.
There are 2 cache lines in ARM. One for DATA and one for INSTRUCTIONS.
When code is executed from ROM (or RAM) the internals of the CPU (the caches) are checking if the instruction at this address already exists in the I cache. If it is in the cache, then it's not read from the ROM, but it is executed directly from the cache.
Same is happening for the Data.
lets say we have this instruction:
ROM:0x12345678 LDR R12, =dword_ABCD
the following will happen when the execution take place:
1. Check I cache of we have 0x12345678 already in the cache
1.1. If yes - then execute from there
1.2 If no - then read the instruction from ROM and execute (and cache it in I cache)
2. Check the D cache if we have =dword_ABCD already
2.1. If yes - then get the data from D cache
2.2. If no - then read the data from ROM and cache it in D cache.
The good thing of the I/D caches is that we can change their content and lock them, so nothing changes after that. (the caches are separated in several blocks and we can put our stuff in 1 block and lock only this block)
What we are going to do is the following.
We "poison" the cache and put another instruction for the address 0x12345678, then when the code is executing from ROM and the execution gets to 0x12345678, the caches will execute our instruction instead of the real one.
Very handful to replace B/BL calls for example.
D cache is not so interesting once we can poison I cache.
This is the implementation for cache-hacks written by g3gg0 for ML:
https://bitbucket.org/hudson/magic-lantern/src/1f347d21f1599ee6bc49f2ea0cc829735a79e9c3/src/cache_hacks.h?at=unified
It may look scary when you first see it, but if you read the ARM ARM (ARM Architecture Reference Manual), it gets quite clear how it works... Though it took me some good time to understand it fully.
But my idea was to port it in 400Plus (which should be relatively easy) and i will do it some time soon.
Hope this explains enough on how the cache-hacks works.
Great! Thank you very much! I will try to understand how it works.
g3gg0 made them (cache-hacks) quite simple for usage, though it's big voodoo magic in first look.
it should be simple as this:
1. lock the caches, so nothing will change them anymore: cache_lock();
2. poison the I cache and change any instruction you want:
cache_fake(0xFFB40340, NOP_INSTR, TYPE_ICACHE); // change the instruction at this address to NOP
or
cache_fake(0xFFB40344, BL_INSTR(0xFFB40344, &my_super_special_routine), TYPE_ICACHE); // change the original BL call with our BL call
as long as the caches stays locked, it will work... but if the caches gets unlocked, our poison will be replaced very quickly... so we must be sure nothing unlocks or clears the caches once we poison them...
i've been working on these things on my 5D,
to do this i had to read the ARM ARM (ARM Architecture Reference Manual) about the caches, to see the all possible ways to clear them...
then i've looked at the firmware to see where are the caches cleared or unlocked... and replaced all instructions that are going to stop us...
some with NOPs, some i had to make a helper routines to do what's needed, since they were changing the control register 15, and we cannot nop this instructions easily...
https://bitbucket.org/0xAF/magic-lantern-5dc-port-wip/src/9900ee745965978b31f302d94a54dcf6f17ebd4f/platform/5DC.111/init.c?at=unified#cl-211
this is the code i've been doing some time ago for 5D
you can see the helper functions before that routine, but for 400d i will have to inspect the firmware again...
as it turns out, for all ML cameras there were 2-3 instructions which needs to be NOPed, so the cache stays locked and intact...
but on 5D it seems there are quite more... something like 25-30 instructions in random places in the firmware... it is not that easy to catch all of them... the main reason was that the original VxWorks code did a lot of cache stuff... and the newer cameras with Canon's DryOS do not touch the caches...
i only hope 400d to get fewer instructions, so it will be easier to port the cache-hacks... it is still a vxworks camera, but it's newer firmware and newer api than 5D...
and 40d is vxworks camera, but ML guys made it with few instructions only ....
i guess i made all this too much confusing already ...
hope this will help you (both) in understanding the initial process of the porting of the cache hacks...
just keep in mind that the most cache clear instructions are in the moment of initializing the camera ...
once its booted and runs, there are just few instructions that needs to be replaced...
if you are going to try to port them, drop a line, i can give some techniques that will help you...
another option is to wait for me to get some time (hope this week or the next one)
and do it ...
I will study it. Not sure if I will be able to port cache hacks to 400plus, at least not for long time. One question I have, does it make camera noticeable slower since cache locked?
I'm not sure how big the cache is and how often it updates. On every new GUI window execution? Or only at boot time?
I will study it. Not sure if I will be able to port cache hacks to 400plus, at least not for long time. One question I have, does it make camera noticeable slower since cache locked?
I'm not sure how big the cache is and how often it updates. On every new GUI window execution? Or only at boot time?
The theoretical slowdown is about 5%, but it's not noticeable.
If the cache is locked, then it wont replace any content in it. If it's unlocked (like the normal operation), then it updates on every instruction which is executed. The idea of the cache is, if you have some code that executes frequently, it gets cached and used there, but in our case the firmware have no such code... so it wont matter...
The theoretical slowdown is about 5%, but it's not noticeable.
Purely out of interest, as I don't understand what you guys are discussing, what is the advantage / use of VRAM? What does it do or what will it allow you to do?
Hope you don't mind me being nosey!
It's just like ordering the waiter something from the menu, or entering to the kitchen and cooking it yourself.I like that comparison. :)
(*(int*)0x51C0)= (int)&my_TransferNormalScreen;
my_TransferNormalScreen(int r0, int r1, int r2, int r3, int a, int b, int c, int d)
{ VramMod((vram_t*)(r3+0x78)); // r3+0x78 is a pointer to VRAM.
return TransferNormalScreen(r0, r1, r2, r3, a, b, c, d); //DEF(TransferNormalScreen, 0xFF92D950)
}
Here is simplified overlay update hook. Finally got rid of gui.S.
Goes in main.c at startup:Code: [Select](*(int*)0x51C0)= (int)&my_TransferNormalScreen;
And VRAM hook function:Code: [Select]my_TransferNormalScreen(int r0, int r1, int r2, int r3, int a, int b, int c, int d)
{ VramMod((vram_t*)(r3+0x78)); // r3+0x78 is a pointer to VRAM.
return TransferNormalScreen(r0, r1, r2, r3, a, b, c, d); //DEF(TransferNormalScreen, 0xFF92D950)
}
http://hostr.co/52MHvJ9CiloB (http://hostr.co/52MHvJ9CiloB)
And... we have new version!That's great!
That's great!
I have ported cache hacks to 400d.
Here it is if you want to check if it will be usable in 400plus:
http://hostr.co/PH59nDeigtFK (http://hostr.co/PH59nDeigtFK)
Look in init.c for EnableCacheHacks().
And... we have new version!That's great!
I have ported cache hacks to 400d.
Here it is if you want to check if it will be usable in 400plus:
http://hostr.co/PH59nDeigtFK (http://hostr.co/PH59nDeigtFK)
Look in init.c for EnableCacheHacks().
Just a question (to both you and 0xAF), please: do we still have to keep that piece of ASM code at "entry.S"? It looks quite "innocent" to my ignorant eyes, and I would love to get rid of all unneeded ASM code.
Just a question (to both you and 0xAF), please: do we still have to keep that piece of ASM code at "entry.S"? It looks quite "innocent" to my ignorant eyes, and I would love to get rid of all unneeded ASM code.I got rid of ASM code in entry.S but can't convert entry.S to entry.c. Missing GCC flags ?
ld: error: stubs.o uses hardware FP, whereas AUTOEXEC.arm.elf uses software FPHere is the source code:
ld: failed to merge target specific data of file stubs.o
I got rid of ASM code in entry.S but can't convert entry.S to entry.c. Missing GCC flags ?Quoteld: error: stubs.o uses hardware FP, whereas AUTOEXEC.arm.elf uses software FPHere is the source code:
ld: failed to merge target specific data of file stubs.o
http://hostr.co/QaDx9TNOxlTi (http://hostr.co/QaDx9TNOxlTi)
.text
.org 0
.globl _start, start
start:
_start:
LDR PC, =my_romStart
only this code ... and see if the linker will give errors again... .text
.org 0
.globl _start, start
start:
_start:
BL EnableHacks
.align 2
fin:
But it will not compile if I change file to entry.c and put C code in it:void start()
{ EnableHacks();
}
I had -msoft-float enabled.cc1: error: invalid option `fpu=fpa'
cc1: error: invalid option `float-abi=soft'
http://hostr.co/QaDx9TNOxlTi (http://hostr.co/QaDx9TNOxlTi)It was a problem when I was renaming entry.S to entry.c. I think "entry.S" and "_start:" are keywords in ASM for program entry point. So it can't be changed.
I tried to compile it using the "Makefile" and "link.script" files from 400plus (just copied the latest files from our repository), and it compiles with no alarming warnings; but when I tried it on the camera, the blue LED switches on and then the camera locks...
EDIT: Pardon my ignorance, but there was some code in entry.S that I do not see anywhere, now; where have you moved that? or was it unnecessary? Thanks!
It was a problem when I was renaming entry.S to entry.c. I think "entry.S" and "_start:" are keywords in ASM for program entry point. So it can't be changed.
All that code in "entry.S" we used to have is gone. "entry.S" now just executes EnableHacks(), which executes cache-hacks, relocates AUTOEXEC in RAM and jumps to original firmware.
$(CC) $(CFLAGS) -Wl,-T,link.script -o$@ $^
to look like this:$(CC) $(CFLAGS) -Wl,-T,link.script -e EnableHacks -o$@ $^
entry.o:entry.S
I renamed COPY() to RelocateAutoexec().I tried to compile it using the "Makefile" and "link.script" files from 400plus (just copied the latest files from our repository), and it compiles with no alarming warnings; but when I tried it on the camera, the blue LED switches on and then the camera locks...
EDIT: Pardon my ignorance, but there was some code in entry.S that I do not see anywhere, now; where have you moved that? or was it unnecessary? Thanks!
Probably you forgot to call COPY() in the C code, after removing the entry.S ?
It compiles without entry.S and with "$(CC) $(CFLAGS) -Wl,-T,link.script -e EnableHacks -o$@ $^" but camera will not execute it.It was a problem when I was renaming entry.S to entry.c. I think "entry.S" and "_start:" are keywords in ASM for program entry point. So it can't be changed.
All that code in "entry.S" we used to have is gone. "entry.S" now just executes EnableHacks(), which executes cache-hacks, relocates AUTOEXEC in RAM and jumps to original firmware.
entry.S is not a special file and _start is not special word. The _start is by default, since you have not specified another name.
I tried to compile our code w/o entry.S and it compiles.
You should try to change your link.script and LDFLAGS line (or the linking line) in makefile too...
change your linking line in makefile which is now:Code: [Select]$(CC) $(CFLAGS) -Wl,-T,link.script -o$@ $^
to look like this:Code: [Select]$(CC) $(CFLAGS) -Wl,-T,link.script -e EnableHacks -o$@ $^
you can remove this line from makefile too:Code: [Select]entry.o:entry.S
and change your link.script...
remove the entry.o from the file, and put init.o in the first place (where entry.o was)
you should be able to compile it without the entry.S at all...
I renamed COPY() to RelocateAutoexec().
Eduperez, can you compile my code with original "Makefile" and "link.script" files? Does it works?
No, it doesn't; I just get the same errors as you.
About the entry point: AFAIK, after the camera loads our AUTOEXEC.BIN file into memory, it jumps into a fixed address inside that file; so whatever the entry point is called, it must be in a fixed address inside the AUTOEXEC.BIN file. Before the cache-hack stuff, we achieved this by putting the entry function at the beginning of the entry.S file, and putting entry.o at the beginning of the link.script. Do you know whether the "-e" parameter works like this?
good point, im not sure -e parameter will relocate some routine to our address ... it probably wont... but i will try to objdumping something to see what goes where ...
we now need a way to instruct the linker that our new C entry routine needs to be placed at our starting address and it will work without the entry.S
My only interest to get rid of entry.S was to eliminate all traces of any code that could be suspicious of being remotely derived from code written by others... if you know what I mean. Sergei did most of that job, when he applied the cache hack; but there were some lines in the entry.S file, that I did not know where had originated, and thus my question.
Obviously, an ASM file with a single jump is perfectly fine with respect to my concerns; not as clean as having some "main" function in a C file, but completely safe. Once we have reached this point, I would not spend much time on the issue.
No more ASM files.
http://hostr.co/eNy8kMgFIvBD (http://hostr.co/eNy8kMgFIvBD)
http://hostr.co/dZC4xJUAupCC (http://hostr.co/dZC4xJUAupCC)
I had to change EnableHacks() little bit. Camera was freezing at startup when trash button was pressed.
There still is another bug needs to be fixed. When shutter release button half pressed and kept down at startup, camera will freeze on GUI change. I think this bug was present for long time.
asm __volatile__ ( "ldr pc, = 0xFF810000\n");
from EnableHacks();void (*FirmwareEntry)(void*)=(void*)0xFF810000;
FirmwareEntry();
Yes, it works. Thanks.
When I tried it before it didn't work for some reason.
EnableHacks = .;
SECTIONS {
first 0x7F0000 :
{
EnableHacks = .;
init.o;
main.o;
menu.o;
display.o;
setproperty.o;
rename.o;
font-small.o;
}
}
SECTIONS {
first 0x7F0000 :
{
EnableHacks = .;
*.o;
}
}
It didn't work. Camera hangs right away. Not even get a blue light.
Yeah, that's a question I was about to ask. Why do the settings show 4 and 6 instead of 5 and 7. And after you mentioned, I've just did another test and it wasn't that the first time worked, but not anytime after that. It was just that it turned out, as a coincidence, that every first time I tried I was trying with an odd number (3 or 9).
It actually works fine all the time with an odd number, so basically the problem is what you said, it's allowing me to set even numbers and it freaks out.
Thanks a lot for addressing this!
Fixed in the 20130414-01 release; thanks for reporting!
Fixed in the 20130414-01 release; thanks for reporting!
Awesome! Thanks a lot!
By the way, is it possible for end users to create scripts, like in CHDK? I don't know if the same applies or it works differently. If it is, is Lua supported?
Thanks again!
I understand why you changed 0x800000 to 0x7E0000. My question is how does it work without it?
Here is some info about "vmBaseGlobalMapInit" which I disabled to save cache-hacks:I did not know the purpose of this function, Thanks for the link.
http://www.vxdev.com/docs/vx55man/vxworks/ref/vmBaseLib.html (http://www.vxdev.com/docs/vx55man/vxworks/ref/vmBaseLib.html)
0xAF, can 400plus catch "trash_button_released" or "jump_button_released" events? If not, check cSetSendButtonProc(&My_SendButtonToMC, 0); in my code. Could be useful for something.Yeah, I saw the code yesterday, looks interesting.
I started to work on IR remote code. Right now I can make camera respond to any remote on any key but can't make it respond only on specific keys. Looks like firmware only checking for pulse width and time between pulses.Yeah, this is cool.
Code is in remote.h:
http://hostr.co/0MiULSEGLdt3 (http://hostr.co/0MiULSEGLdt3)
I see you have IR_Log() function, can you log all signals with it ?It will only show error message and width of first and second pulses and, i guess, time between pulses. Camera does very simple check on IR signals. It doesn't decode RC-5 signal so all keys from same remote looks same to camera.
I mean when you press some button on a remote, can you distinguish between different remotes/buttons ?
If so, this is great. If not, the enabling of all IR signals is still a good feature.
BTW, do you know what this MachineCell is and what is it's purpose ?No I don't. Maybe it is for factory mode GUI?
It looks like it is for some Factory Tests ?
I took the vram_copy() routine from your code, to invert the OLC colors.Thank you very much for the solution! I thought it will be harder to fix it.
It seems to work, but not when you start the camera for the first time, it draws white first, then after i force any gui update it draws black.
I guess this is because we cannot detect (GUIMode == OLC_MODE) in the first moments. I will try to find a solution.
EDIT3.1:
I've found it...
It was because at the start the camera is changing the mode for a while, to draw the animation for sensor cleaning... so the check should be:
if (FLAG_GUI_MODE == GUIMODE_OLC || FLAG_GUI_MODE == GUIMODE_ACTIVESWEEP_OLC) {...}
Thank you very much for the solution! I thought it will be harder to fix it.it works normally here... i totaly left D caches and not touched them btw.
I see it still has small part on the screen left which didn't invert. It goes through memcpy in 0xFF92C5FC location. I was trying to fix it with "cache_fake(0xFF92C5FC, BL_INSTR(0xFF92C5FC, &vram_copy), TYPE_ICACHE);"
It invert all screen now but camera freezes right before firmware updates available picture count.
if active sweep is off, it's ok, but the stupid animation is making part of the screen white ...Yes, that is why I was trying to fix it with:
after the screen refreshes, everything is ok.
Here is the right code. Works without any problems.if active sweep is off, it's ok, but the stupid animation is making part of the screen white ...Yes, that is why I was trying to fix it with:
after the screen refreshes, everything is ok.
cache_fake(0xFF92C5D8, BL_INSTR(0xFF92C5D8, &vram_copy), TYPE_ICACHE);
cache_fake(0xFF92C5FC, BL_INSTR(0xFF92C5FC, &vram_copy), TYPE_ICACHE);
But camera start freezing after I add second line.
void* vram_copy(char *dest, char *src, int size)
{ if(GUIMode==OLC_MODE || GUIMode==ACTIVESWEEP_OLC)
{ while (size--) {
*dest++ = 0xBB - (*src++); //0xBB can be any char. Some good colors can be obtained with 0xBB, 0xDD, 0xFF
}
}else memcpy(dest, src, size);
}
/* LCD Night Mode */
cache_fake(0xFF92C5D8, BL_INSTR(0xFF92C5D8, &vram_copy), TYPE_ICACHE);
cache_fake(0xFF92C5FC, BL_INSTR(0xFF92C5FC, &vram_copy), TYPE_ICACHE);
0xAF, are there downsides if I use D-caches?
Thanks.
Code: [Select]/* LCD Night Mode */
cache_fake(0xFF92C5D8, BL_INSTR(0xFF92C5D8, &vram_copy), TYPE_ICACHE);
cache_fake(0xFF92C5FC, BL_INSTR(0xFF92C5FC, &vram_copy), TYPE_ICACHE);
0x1B, // 27 Blk on Gry
0xE5, // 229 Blk on Yel
0x70, // Grn on Gry
0xC1, // 193 Blu on Gry
0x24, // 36 Blu on Blk
0xF1, // 241 Blu on Yel
0x11, // Cya on Gry
0x44, // 68 Yel on Blk
0x42, // 66 Org on Blk
0x7C, // 124 Yel on Grn
0x84, // 132 Yel on Blu
0x86, // 134 Yel on Blu
0x88, // 136 Yel on Blu
0x87, // 135 Yel on Cya
0x49, // 73 Yel on Red
0x89, // 137 Yel on Pur
0x35, // 53 Red on Gry
0x34, // 52 Red on Gry
0x72, // 114 Red on Gry
0x39, // 57 Red on Pnk
0x3A, // 58 Red on Yel
0x92, // 146 Red on Blk
0x22, // 34 Pur on Blk
0x76, // 118 Wht on Grn
0x5F, // 95 Gry on Gry
0x99, // 153 Gry on Red
0x9C, // 156 Gry on Red
0xFF, // 255 Gry on Blu
0x8C, // 140 Wht on Blu
0x78, // 120 Wht on Cya
0xBE, // 190 Gry on Yel
0xDE, // 222 Gry on Yel
0xFE, // 254 Gry on Yel
but if i add the check from our settingsCamera's dpr_data.video_system probably can be used for enabling/disabling "Change LCD Colors" at startup.
i.e.
if (settings.invert_olc && (GUIMODE == OLC || GUIMODE == ACTIVESWEEP_OLC)) {...}
then it has artifacts ...
this is because we read the settings at some later time after the init of the camera ...
Would a laser pointer make a change in value int the IR remote sensor in front or to the other sensor?
It could make an instant high speed trigger for those split second bullet shots.
Or at lest a reverse IR remote setting where a IR remote control button is held on and when something breaks its signal it triggers.
It should work for big things like a motorcycle driving by and perhaps even a ball sized object.
One could just activate it and move to the other side of path object and hold button down and when the object obstructs the remote's signal it could provide a high speed trigger.
much love
Thank you very much for your support.I don't think it's possible to do something like that.
Maybe the light meter could work as a laser sensor?
Or perhaps it could detect a lasers interference with something like the auto-focus.
Perhaps this means of high speed triggering, with no external switching, may have advantages over others where it may be just a few cycles of the processor to activate.
But in any case I think it would be a lot of fun and worth while to try it.
@Sergei / @0xAF:
I am experiencing random camera lock-ups, that I cannot fix myself, and would like to hear your opinion on this. As far as I know, the symptoms when this happens are:
* Just after a shot has been taken, all buttons stop responding, and the display does not show our overlay.
* Camera can take another photograph, however (but it does not get to the CF card)
* Finally, the display goes off, and the camera is completely locked (it cannot even be turned off).
In 400plus, we always overlay something on the display, so my first suspect was the overlay code; I commented out that part, and it seems to work (but you can never be sure with random bugs). This would confirm that the source of the problem is in the overlay code.
Now, how can it be possible that we always overlay something, but I see nothing in the display? So, my next suspect is the pointer to the display that we receive: if we received a wrong pointer, we would be writing somewhere else in the memory, and that could explain the lock-up.
I tried to log the value that we receive in that parameter, and it seems to be constant (I could not reproduce the issue and see what value we received when it happens, however); there is also that weird constant value that we add to the pointer.
And this is all I know about this issue... I have been banging my head against the code for weeks, but I cannot find anything else. Do you have any ideas, please?
Many thanks!
Edu.
void *hack_invert_olc_screen1(char *dst, char *src, int size) {
display_overlay(src);
if ( settings.invert_olc && (FLAG_GUI_MODE == GUIMODE_OLC)) {
while (size--) {
*dst++ = olc_colors_map[settings.invert_olc] - (*src++);
}
return dst;
}
return memcpy(dst, src, size);
}
void *hack_invert_olc_screen2(char *dst, char *src, int size) {
if ( settings.invert_olc && (FLAG_GUI_MODE == GUIMODE_ACTIVESWEEP_OLC)) {
while (size--) {
*dst++ = olc_colors_map[settings.invert_olc] - (*src++);
}
return dst;
}
return memcpy(dst, src, size);
}
May thanks to both 0xAF and Sergei for your help; I will try your advice and report back.
Sorry Edu, I was out of reach in the weekend, I cannot promise my free time soon... I will do my best, though!
TransferScreen = my_TransferScreen;
int my_TransferScreen(int r0, int r1, int r2, int r3, int a, int b, int c, int d) {
display_overlay((uint8_t*)(r3 + 0x78));
return TransferNormalScreen(r0, r1, r2, r3, a, b, c, d);
}
void display_overlay(uint8_t *vram_address) {
char buffer[LP_MAX_WORD];
if (FLAG_GUI_MODE == GUIMODE_OLC && AE_IS_CREATIVE(DPData.ae)) {
int current_cmode = get_current_cmode();
if (status.msm_active)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 35, 96, "[***]");
else if (status.cmode_active && current_cmode != CMODE_NONE)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 16, 96, "%s", cmodes_config.names[current_cmode]);
if (status.fexp && DPData.tv_val != TV_VAL_BULB)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 138, 32, "#");
if (settings.autoiso_enable && (DPData.ae != AE_MODE_M || DPData.tv_val != TV_VAL_BULB))
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 237, 14, "%s", AUTOISO_AUTO);
if (DPData.wb == WB_MODE_COLORTEMP)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 50, 138, "%d", DPData.color_temp);
if (DPData.ae_bkt) {
ec_print(buffer, DPData.ae_bkt);
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 224, 96, "%s", buffer);
}
#ifdef RELEASE
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_BLUE), 148, 0, LP_WORD(L_P_400PLUS));
#else
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_RED ), 20, 0, LP_WORD(L_A_WARNING));
#endif
if (*display_message) {
if(timestamp() < message_timeout)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_WHITE, COLOR_BLACK), 16, 228, display_message);
else
*display_message = '\0';
}
}
}
Well, guess what? Yes, I hear the accusing beep now and then, but one hundred photographs later the camera hasn't failed once. So, adding some innocent code inside display_overlay seems to fix the issue, but I haven't the slightest idea of why...
Sounds like a race condition ?!?... Perhaps a semaphore can solve it.
Either our own semaphore, or we find a semaphore for the display and rely on it.
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 16, 96, "%s", cmodes_config.names[current_cmode]);
note the cmodes_config.names[]void display_overlay(uint8_t *vram_address) {
char buffer[LP_MAX_WORD];
if (FLAG_GUI_MODE == GUIMODE_OLC && AE_IS_CREATIVE(DPData.ae)) {
int current_cmode = get_current_cmode();
if (status.msm_active)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 35, 96, "[***]");
else if (status.cmode_active && current_cmode != CMODE_NONE)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 16, 96, "%s", cmodes_config.names[current_cmode]);
if (status.fexp && DPData.tv_val != TV_VAL_BULB)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 138, 32, "#");
if (settings.autoiso_enable && (DPData.ae != AE_MODE_M || DPData.tv_val != TV_VAL_BULB))
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 237, 14, "%s", AUTOISO_AUTO);
if (DPData.wb == WB_MODE_COLORTEMP)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 50, 138, "%d", DPData.color_temp);
if (DPData.ae_bkt) {
ec_print(buffer, DPData.ae_bkt);
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 224, 96, "%s", buffer);
}
#ifdef RELEASE
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_BLUE), 148, 0, LP_WORD(L_P_400PLUS));
#else
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_RED ), 20, 0, LP_WORD(L_A_WARNING));
#endif
if (*display_message) {
if(timestamp() < message_timeout)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_WHITE, COLOR_BLACK), 16, 228, display_message);
else
*display_message = '\0';
}
if (!FLAG_DISPLAY_ON)
enqueue_action(beep);
}
}
Hi,
first of all thanks for all your work for this magic sw.
I got a lot of problems with the latest version, the camera locked a lot of time and was forced to do a battery pull each time there was a lock. Moreover the camera locked when I mounted the flash Nissin, it has been impossible to shot with the flash.
I reinstall an old version of last year, suitable for my needs.
Well, I just returned from a 4 day trip with a full 2GB card, and guess what? The camera did not lock, not even once! And all I changed was these two lines at the end of display_overlay:Code: [Select]...
if (!FLAG_DISPLAY_ON)
enqueue_action(beep);
...
static char display_message[LP_MAX_WORD];
Hi,
first of all thanks for all your work for this magic sw.
I got a lot of problems with the latest version, the camera locked a lot of time and was forced to do a battery pull each time there was a lock.
...
I reinstall an old version of last year, suitable for my needs.
void display_overlay(uint8_t *vram_address) {
char buffer[LP_MAX_WORD];
if (FLAG_GUI_MODE == GUIMODE_OLC && AE_IS_CREATIVE(DPData.ae)) {
if (FLAG_DISPLAY_ON) {
int current_cmode = get_current_cmode();
if (status.msm_active)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 35, 96, "[***]");
else if (status.cmode_active && current_cmode != CMODE_NONE)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 16, 96, "%s", cmodes_config.names[current_cmode]);
if (status.fexp && DPData.tv_val != TV_VAL_BULB)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 138, 32, "#");
if (settings.autoiso_enable && (DPData.ae != AE_MODE_M || DPData.tv_val != TV_VAL_BULB))
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 237, 14, "%s", AUTOISO_AUTO);
if (DPData.wb == WB_MODE_COLORTEMP)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 50, 138, "%d", DPData.color_temp);
if (DPData.ae_bkt) {
ec_print(buffer, DPData.ae_bkt);
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_GRAY), 224, 96, "%s", buffer);
}
#ifdef RELEASE
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_BLUE), 148, 0, LP_WORD(L_P_400PLUS));
#else
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_BLACK, COLOR_RED ), 20, 0, LP_WORD(L_A_WARNING));
#endif
if (*display_message) {
if(timestamp() < message_timeout)
bmp_printf(vram_address, FONT(FONT_SMALL, COLOR_WHITE, COLOR_BLACK), 16, 228, display_message);
else
*display_message = '\0';
}
} else {
SleepTask(OVERLAY_DELAY);
}
}
}
Hi,
most likely you've already heard about this: http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html (http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html)
He managed to hack a wifi sd-card that is based on a linux system. So I thought that maybe by using a Sd2CF Adapter card this would offer a whole bunch of possibilities by accessing the linux system on the sd wifi from 400plus. I've ordered a Transcend wifi to see if the already existing 400plus is working with it
Regards
F.
Hi,
most likely you've already heard about this: http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html (http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html)
He managed to hack a wifi sd-card that is based on a linux system. So I thought that maybe by using a Sd2CF Adapter card this would offer a whole bunch of possibilities by accessing the linux system on the sd wifi from 400plus. I've ordered a Transcend wifi to see if the already existing 400plus is working with it
Regards
F.
me noobie.
I just picked up an XTi used off some bloke. A major upgrade over my first-gen rebel. Naturally, the first thing I do is hack it. Now I'm running 400plus and interested in learning how to write scripts for it. Are LUA scripts compatible with 400plus? Are there other languages I can code them in? My familiarity with LUA is basic, to say the least, but I have a solid understanding of C-derivative and markup languages.
Point me in the right direction. I want to sink my teeth into this one while the novelty is fresh.
Okay... I picked up a book on ANSI C. I downloaded a source package, and I'm thumbing through screens of code. I installed Pelles C IDE, but it sounds like I might need to run a virtual machine to compile this thing. Is that right?
So far so good! I found that the 'menu' files were the best place to start / the simplest place to find a link to what I see coded and what I see on my camera screen. Found all the undocumented navigational features. That was fun. Discovered the markdown file this morning, which helped to clarify some things. Now I'm scanning header files for useful constants and functions, daydreaming, watching clouds go by, brainstorming.
Hi,
most likely you've already heard about this: http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html (http://haxit.blogspot.ch/2013/08/hacking-transcend-wifi-sd-cards.html)
He managed to hack a wifi sd-card that is based on a linux system. So I thought that maybe by using a Sd2CF Adapter card this would offer a whole bunch of possibilities by accessing the linux system on the sd wifi from 400plus. I've ordered a Transcend wifi to see if the already existing 400plus is working with it
Regards
F.
Yeah, pretty cool, please report your results.
Hi all,
the card arrived. I can confirm that 400plus runs from this card :D I am using a 'delock sd to cf adapter' (just google it, it is a yellow adapter) and after making the card bootable using EOScard (running under Win8) and transfering/copying the 400plus files from an existing card things worked again. Now I can access my photos from my iPhone/iPad etc. For a list of features have a look at the transcend card docu.
I can also see the Autoexec.bin etc. in the files section using a browser but by default there is no way to upload files from the PC (at least I didn't find it yet).
Maybe I'll try to get an ftp server up&running after hacking the card. My skills maybe too limited for this though.
Regards
It's pretty important for us, to be able to upload files to the card. Please report if you succeed.
BTW what's the total price for the card and the adapter (reference price)
cp /mnt/sd/busybox-armv5l /sbin/busybox
chmod a+x /sbin/busybox
/sbin/busybox telnetd -l /bin/bash &
/sbin/busybox tcpsvd 0.0.0.0 21 ftpd -w / &
(Change / to /mnt/sd in the last line in case you only want access the 'normal' CF-card area instead of the linux system running on the SD card)Amazing!!
16/32GB flash, 32MB RAM, 400+ BogoMIPS processor, wifi connectivity...inside a SD card!!
It's pretty important for us, to be able to upload files to the card. Please report if you succeed.
BTW what's the total price for the card and the adapter (reference price)
Hi.
:D :D :D :D !!!!!! Success !!!!!! :D :D :D :D
In fact it is soooo easy (though it took me a while to realize)
After following http://haxit.blogspot.de/2013/08/hacking-transcend-wifi-sd-cards.html (http://haxit.blogspot.de/2013/08/hacking-transcend-wifi-sd-cards.html) with installing chrome in my linux-vm trying and all the other stuff described on this site for several hours I realized that you only have to do this:
- Create a script (named autorun.sh) in the root of the SD card (did this using Win8 & Notepad++, Windows users be aware: some editors may have problems creating LINUX conform linefeeds)
- copy the busybox-armv5l binary (download link is given on the site) also to the root of the SD
autorun.shCode: [Select]cp /mnt/sd/busybox-armv5l /sbin/busybox
(Change / to /mnt/sd in the last line in case you only want access the 'normal' CF-card area instead of the linux system running on the SD card)
chmod a+x /sbin/busybox
/sbin/busybox telnetd -l /bin/bash &
/sbin/busybox tcpsvd 0.0.0.0 21 ftpd -w / &
Now you can either telnet (telnet 192.168.11.254 that's the SD cards default IP) into the SD-card or transfer files via ftp (tested up-/downloading using Firefox & FireFTP addon)
The cool thing is if you can create files via 400plus (e.g. just an empty file in any subdirectory) you could have a simple bash script watching for the existence of this file and execute another script (e.g. for transferring your pictures to a NAS, etc.) You may think of very fancy stuff as with this SD card you have another computer running in your camera. As somebody commented on the original hack siteQuoteAmazing!!
16/32GB flash, 32MB RAM, 400+ BogoMIPS processor, wifi connectivity...inside a SD card!!
Regards
BTW SD card was ~50€ incl. shipping via eBay, I already owned the Sd to CF Adapter but you should get one for ~20€
Thanks for the update. This info is refreshing.
Many possibilities with these SD cards. :)
Thanks again.
You are welcome. Happy that I could give a small piece back to those who are creating this great stuff
Regards
Hi.
It'll be really cool if any of the devs would include new submenu in a new release - maybe called Transcend WiFi :) - with two entries named 1 & 2 or On & Off that each would simply write an empty file (named correspondingly) at a predefined location (maybe in a directory called trans_wifi)
[!Transcend_WiFi >]
[1] writes the empty file 1 in directory trans_wifi on the CF card
[2] writes the empty file 2 in directory trans_wifi on the CF card
Of course the more the better.
That would allow me to try certain things with the wifi card (see few post above in this thread)
I'll write a corresponding feature request too.
Thanks in advance for considering to do or even doing it.
Regards
Hi! I am really busy lately, I have literally one year of photographs pending to edit. But this is way too interesting to let it pass; I'll try to find the time to do it.Don't worry I can do it too. Just wanted to coordinate with you.
The cool thing is if you can create files via 400plus (e.g. just an empty file in any subdirectory) you could have a simple bash script watching for the existence of this file and execute another script (e.g. for transferring your pictures to a NAS, etc.)
The cool thing is if you can create files via 400plus (e.g. just an empty file in any subdirectory) you could have a simple bash script watching for the existence of this file and execute another script (e.g. for transferring your pictures to a NAS, etc.)
There's an issue to overcome there...
What you've effectively got, is an SD card that's connected to two computer systems at the same time - using a file system that doesn't have any support for such a configuration.
So if you create a file using 400plus, you can't necessarily see it from the Transcend CPU (because the FAT info is stale). Even if you overwrite an existing file with new data, you may or may not be able to see that data from the 'other side'; it depends on where precisely it got written on the card.
Maybe there's a mechanism in Linux to force the OS's view of the file system to be refreshed? ... the only thing I could think of, was to umount /dev/mmcblk0p1 and then re-mount it (on /mnt/sd). Unfortunately, every time I try it, the IP connection drops. Sometimes the link comes back up, without having to power-cycle, but I've not seen the mount command work yet (it gives "Invalid argument").
I bought my Transcend card to use with a Photo Frame, rather than the camera. When the 'card' boots, a script renames all the image directories, so that it doesn't always play the photos in the same order (a feature the Photo frame doesn't have as standard). Of course, this script was also running when I inserted the SD card into my PC to copy on new JPEGS - the result was instant corruption, due to the aforementioned stale FAT info. I ended up having to check for the presence of a 'flag file' on the card, in the Linux bash script.
As an aside, this card doesn't work in my Photo Frame's SD slot - but it does work in the USB slot, using the supplied SD card reader. Possibly the fact that it draws 150~250mA is the reason?
Maybe there's a mechanism in Linux to force the OS's view of the file system to be refreshed? ... the only thing I could think of, was to umount /dev/mmcblk0p1 and then re-mount it (on /mnt/sd). Unfortunately, every time I try it, the IP connection drops. Sometimes the link comes back up, without having to power-cycle, but I've not seen the mount command work yet (it gives "Invalid argument").
Can anyone help me with a problem I am having?
I am finding that when I use the EAEB script, the camera runs indefinately rather than using the number of frames set. I have it setup as follows...
2s delay - yes
frames - 3
step - +2
direction - +/-
Bulb min 1/4000
Bulb max 15"
I would expect this to take 3 shots - 1 at the base exposure and then 1 each side of it at +2 and -2. However the camera just continues to fire well beyond the 3 frames.
I am sure this is not a bug but operator error but can anyone help me with what I am doing wrong? I am using the last release build 20131404-04.
Thanks!
Hello,
I have recently purchased a Sigma Contemporary 17-70 F2,8-4 DC and I have some problems with it. I try to rule out all possible causes, and one of them might be the custom firmware... Is it possible that the 400plus firmware has anything to do with it?
(BTW. Is removing the boot hook even possible? I tried flashing firmware 1.1.1 (which isn't available on my local canon website any more, had to find it on canon.jp...) but the boot hook stayed, and the 400plus page also notes that reversing is not possible.)
the only thing I found is:If you still want to remove the boot flag you can use this autoexec file:
http://chdk.setepontos.com/index.php?topic=3290.msg67715#msg67715 (http://chdk.setepontos.com/index.php?topic=3290.msg67715#msg67715)
but the link is already dead and I doubt my problem is related to 400plus
Hi guys,
Great Project, thank you for doing it.
I would like to use it on my 400d also, but i cannot seem to make it work. A while ago(2-3 years back) there was another 400d hack Project, i dont remember its name or home page, but it was activated very much the same way. I have a autoexec.bin on my card and i have some (fewer) options in my print menu. now i tried to reflash this testfir.fir and according to what i see, it looks like it is applied normally, but when i change my autoexec files to latest from this Project, nothing happens and it starts as if there is no hack, and when i change them back, the old Project gets loaded.
Can you help me? I tried flashing to 1.0.5 and then 1.1.1 back again and reapplying everything to no avail.
Thank you,
Marko
I used the same EOSCard app for both FAT and FAT32, was i doing it wrong? There wasn't anything really to do wrong.
Anyway, i was hoping you could explain the ISO in viewfinder feature. I was able to get it working but it works very weirdly. I have the D-pad enabled from the hack. When i view through the viewfinder and half-press the shutter button and then the up button, nothing happens. When i release the shutter button and press the up key the ISO selection is displayed on the big screen. I am able to get it to work when i press the zoom in button or AF point selection button WHEN i look through the viewfinder, after that i half press shutter again and then i am able to change ISO as instructed. BUT after that i am not able to change ISO or white balance or metering mode the old way, i have to press AF point selection again and then press the shutter half way and then i am able to change ISO, AF and metering the old way again. I have to repeat all to change it again in the viewfinder. If it is supposed to work this way then it is very hard to use. Shouldn't it switch the mode automagically when the proximity sensor fires?
You should also know that i have custom function 4 set to 1, AE Lock/AF, if this changes things.
Marko
That's the point, i am looking through the viewfinder, and while i am looking through the viewfinder and pressing the ISO(UP) button the big screen turns on instead of dislaying the actual ISO value inside the viewfinder. To be able to change/view ISO through viewfinder you have to do what i described before.
Perhaps i could make a video of this to explain better, as a programmer myself, i imagine how you would like to flag it as "works-for-me" right now :)
I just revitalized my 400d ... but note that using EOScard (unless under Win 7) you must remove all stuff it creates, before dropping the 400plus autoexec and language file, so may be somebody must change the "Preparing each card" section?
anyway, AUTO ISO works, apparently ...
i.e. you set it, point at something bright and it says e.g. 100 ISO, then point to something dark and it says e.g. 1600, you shoot and after that it says always 1600 even if your are pointing at the sun core!
you set it, point at something bright and it says 100 ISO, then point to something dark and it says 1600, you click the ISO button, and after that AUTO ISO is killed
moreover, "Show ISO in Viewfinder" doesn't work at all and "DP for changing ISO" does nothing ...
1: Has someone translated the latest version into German? A lot of menus are still in English!
2: user's guide: German translation has a lot of errors ans is based on an old version of the user's guide. How can i help to translate it?
3. were can i find the ISO in viewfinder menu in the German menu?
mov r0, #0
bl 0xffff8cf0
loop: b loop
http://www.dpreview.com/articles/6583883987/sony-introduces-touchless-shutter-app (http://www.dpreview.com/articles/6583883987/sony-introduces-touchless-shutter-app)
any idea where i can download the testfir.fir as the link on first page does not work.
For me, however the installation of the program was very successfully but since I use a CANON ACK-700, it is impossible :(
I think that I have to buy back the real battery, it's a pity.
Hello,
I have recently purchased a Sigma Contemporary 17-70 F2,8-4 DC and I have some problems with it. I try to rule out all possible causes, and one of them might be the custom firmware... Is it possible that the 400plus firmware has anything to do with it?
Here is my problem description:
Usually the camera CF led blinks on insert battery / closing CF door / attaching lens. This also happens if the cam is turned off. In this case it's the only action of the cam which remains turned off. (With 400plus firmware on the CF card the blue led blinks as well)
If I attach my new lens the led(s) blink, then I hear a dim noise (which seems to be the image stabilizer of the lens) and then it seems the cam "restarts", because the leds blink again and the noise is there again and this happens in an infinite loop until the battery is dead...
If I turn the camera on, the lens works as expected, but on turning it off, the same looping starts again. But in this case, the ON-led of the camera stays and the camera does not react on any input, so only removing the battery helps.
This happens regardless of any custom firmware on the CF card (without it it's of course only the CF led blinking). AFAIK the hack installed in the camera is only a hook to dynamically load custom firmware. So I assume, that it has nothing to do with it, but I just want to make sure. I also tried reflashing the 1.1.1 Firmware, but it seems the hook is not removed by this, so I do not know if it would work with stock firmware.
The lens works normal on a newer EOS model which I had the chance to try it on. The local Sigma service suggested trying it on other 400Ds (but I don't know anyone with this model) and trying other stabilized lenses on my camera, as he said the camera might have issues with stabilized lenses. Other than that I can only send it to the service (or return it, as it's new... but I really would like to keep this lens as it fits my needs...).
Sorry for the elaborate post and thanks in advance for any answers.
Best Regards
I am having a similar issue to what he is experiencing, but only with the latest release. The previous release does not have this issue.
I'm using the Canon 10-18 EF-S lens. When it gets stuck in the CF light flashing loop, I can move the zoom ring and it will break the loop and then turn off.
This issue is only happening with the latest release, but it does not happen with the latest release and a 1GB card (it's only happening with my 16GB card.) This could be fat/fat32 related but I didn't try formatting my 1GB card as fat32 to see if the issue persists.
One thing I did notice that is different with this lens compared to my other lenses is that when turning the camera off, the CF light will always at least flash once (not even using 400plus.) None of my other lenses do this.
With the older version it will usually flash twice, although sometimes it will flash up to 4 times. But so far it always turns off. The latest release will occasionally get stuck in a loop where it never stops flashing (unless I move the zoom ring.)
So in summary, the 1GB card with the latest firmware works mostly like the 16GB card with the old firmware. The 16GB card with the new firmware will sometimes get stuck in this weird CF light flashing loop when turning off, or opening the CF door, etc.
I have tried formatting the card, resetting the camera settings, etc, it does not fix it. There is something different with this latest version.
Thank you for all the great work!
The flashing loop happens on the fast 16GB card and not the slow 1GB card. It does not happen on a freshly formatted card with 400plus not installed. It's strange that this only happens with the 10-18 lens and that even with 400plus not installed this is the only lens that causes the CF light to flash when turning the camera off.
edit: I formatted the 1GB card as fat32 and it still works fine so its not fat/fat32 issue. Also of note is that the 16GB card is a CF-SD adapter with a 16GB sd card, I'm going to try a different SD card to see if it has the same issue. It's weird that it is working fine with the old version though.
edit2: I tried a 1GB and 2GB sd card and they both seem to work fine, however 8gb,16gb and multiple 32gb sd cards have the issue. Also, when using a slower sd card, it does not stop the loop when moving the zoom ring, only when using a fast sd card does this cause the loop to stop.
1. If I do delete pictures from CF card using cardreader directly, camera thinkns that pictures are still there till I format CF. Meaning, let's say free space approx. 200 pcs left on crd, I delete 100, it's still reports 200 left. When there's plenty space left, camera says: replace CF card till format and restore CHDK.
2. Connecting camera via USB and trying to transfer pics to PC (Windows 7) freezes camera to death - remove battery needed. Sometimes blank screen on camera, sometimes artifacts. Can't transfer anything. Formatting same card inside camera eliminates problem. Transfer works just fine, but no CHDK.
Looks like your computer is not really deleting the files, but just moving them to a recycle bin in the card.Nope. That's not my case. Card is empty and I am using Shift+del, so files being erased instead moving into recycle bin. Tested on different cards 2, 4, 8.
Sorry, I could not reproduce this; I tried Linux not Windows, but that should not make a difference. However, if it works with a fresh card, then it does look to be related to 400plus.
1. If I do delete pictures from CF card using cardreader directly, camera thinkns that pictures are still there till I format CF. Meaning, let's say free space approx. 200 pcs left on crd, I delete 100, it's still reports 200 left. When there's plenty space left, camera says: replace CF card till format and restore CHDK.
Hello, I'm discovering this powerful firmware like Magic Lantern.
I've followed all the step, the firmware is ok. I can access to the new menu, but every items are "Auto ISO". The first time I could access to all. I stop my 400d for a time and when I try again, all the item are Auto Iso and I can't acces to the other parameter menu, script everything else...
As someone can help me ? Sorry my bad english, I try my best ;)
regards and thanks a lot for the usefull Firmware !
I yesterday installed the latest to my 400D and find that whenever the display is off, the intervalometer stops. Looks like this previous issue:
Intervalometer only works when LCD display is on auto-migrated Milestone-M2 Priority-Medium Type-Defect
#323 by GoogleCodeExporter was closed on Mar 14 2015
Did this come back, or is there a new setting somewhere to make this work?
Thanks.
Ron
If I recall correctly, there was the issue that switching the display off put the camera into a sleep mode, and thus no script could be run; that issue could not be solved. Is that same issue what you are experiencing now?
I have looked all over for the CHDK hack/download link is and keep getting an empty page for 400d plus. Please help if you can.https://github.com/400plus/400plus