sx700 porting

  • 151 Replies
  • 60485 Views
*

Offline ftm

  • *
  • 43
Re: sx700 porting
« Reply #50 on: 30 / December / 2017, 18:09:29 »
Advertisements
I'd like to test it, but can not made SD card bootable. I have tried STICK, that find my test100e.zip file, but after that it crashed and did not do anything. I can not install CHDK with the firmware update mode either, because I did not find the firmware update option in the menu of the camera.
How to install CHDK for SX 700? thank you

Have you seen the "Note For Windows Users" section in the Stick documentation? The Firmware update method does not work.

http://zenoshrdlu.com/stick/stick.html


Also make sure your disk is formatted as FAT32.


Edit to add: One other recommendation I have is to first format the SD card in the camera before trying to use the Stick program.
« Last Edit: 30 / December / 2017, 18:12:08 by ftm »

Re: sx700 porting
« Reply #51 on: 30 / December / 2017, 18:19:30 »
Thank you, it works!!! It is good to see CHDK on this camera. It is midnight at us, so I need to sleep, but I will test it soon.
(A 410), SX 200, (SX 280), SX 700

*

Offline reyalp

  • ******
  • 11591
Re: sx700 porting
« Reply #52 on: 31 / December / 2017, 02:57:17 »
I spent some time review the code on github. Very good work, especially for a first time port on a digic 6 camera :)

Some comments:

stubs_min.S + lib.c
current_viewport_buffer and viewport_buffers are FAKEDEF. If these aren't found, vid_get_viewport_live_fb in lib.c should just return 0 without referring to them. The rest of CHDK will then fall back to vid_get_viewport_fb. Getting these values correct will allow fast motion detection to work, and reduce latency in chdkptp live view.

lib.c
hook_raw_image_addr just returns the first raw buffer. If the camera actually uses multiple raw buffers, the image will sometimes contain the wrong data. If you tested using a static scene, it might not be obvious.
raw_buffers and active_raw_buffer are listed as "found" in stubs_min.S, so it may just be a matter of hooking them up.
The camera is probably more likely to use multiple buffers when shooting in continuous mode.

main.c
NUM_FL looks like it is ~2x the expected value. I had this mistake in an earlier version of the sx710 code. It should be the maximum zoom_pos value you get at full optical zoom. If it's too high, set_zoom(get_zoom_steps()) will crash.

screen_opened / screen_rotated are only for cameras with articulated LCD.

platform_camera.h
CAM_HOTSHOE_OVERRIDE should not be defined, camera doesn't have a hotshoe.
Have focus overrides been tested? The CAM_SD_OVER_IN* defines should be set based on testing.
If you use a color matrix from a cam with MATRIX1 and MATRIX2, it's probably a good idea to use both (I had just one in the sx710 port for a while, but I think the results with fully copy of sx60hs are better)
CAM_HAS_SPORTS_MODE should be defined if MODE_SPORTS is in the modemap
*ACTIVE_AREA can be found using the procedure at the end of https://app.assembla.com/spaces/chdkptp/wiki/DNG_Processing

platform_kbd.h
The BATTCOVER and HOTSHOE flags aren't relevant to this port.

kbd.c
KEY_FRAMING_ASSIST is commented out. From pictures it looks like this camera has one, so it should be found and included.

stubs_entry.S + shooting.c
Some modes are listed as "In firmware but not in current modemap"
If you can't find them through the canon UI, you can try setting them using set_capture_mode_canon()
Some might be internal modes that just crash or aren't settable.

notes.txt
Should be updated to reflect status of this port.
Don't forget what the H stands for.

Re: sx700 porting
« Reply #53 on: 31 / December / 2017, 17:38:41 »
I have made some test:
- Menu is flickering in shooting mode (1 by sec), but if you do not press shutter button after starting the camera and you are in playback mode, it is not flickering
- the text in the upper left corner (red characters) are bit covered on the right side
- Grid works, but can not change its colour (not really a need)
- Auto ISO is great!!!!
- DNG Crop Size: Active/Full/JPEG gives the same picture area (might be not a problem)
- every second DNG file is corrupt (even with 10 second of gap), size normal, but in its upper area (about 70-80%) is only noise with bluish color
- every games loads, in Mastermind the rows are covering each other (did not try to finish any of the games)

well, something happened, it is not flickering any more, but after restarting it flickers again
(A 410), SX 200, (SX 280), SX 700


*

Offline ftm

  • *
  • 43
Re: sx700 porting
« Reply #54 on: 31 / December / 2017, 19:55:56 »
I have made some test:
Thank you very much for your testing report. It is most appreciated.
Quote
- Menu is flickering in shooting mode (1 by sec), but if you do not press shutter button after starting the camera and you are in playback mode, it is not flickering
I could be wrong but I believe this is a common issue to  Digic 6 camera CHDK ports.
Quote
- the text in the upper left corner (red characters) are bit covered on the right side
This may be adjustable with the OSD Layout editor  menu. Can you post a picture of that screen?
Quote

- Grid works, but can not change its colour (not really a need)
Thanks for checking this feature out. I had not tested this. On my camera, the grid feature does not seem to be working properly. I will check it out.
Quote
- Auto ISO is great!!!!
- DNG Crop Size: Active/Full/JPEG gives the same picture area (might be not a problem)
I will check this out. There are likely settings I need to change.
Quote
- every second DNG file is corrupt (even with 10 second of gap), size normal, but in its upper area (about 70-80%) is only noise with bluish color
I am not having this problem. I shot 10 dngs in a row both on the camera as well as with chdkptp. There were no issues with any of them. Can you describe a little bit more your situation? What program are you using to view the DNG files. Maybe a different card.
Quote
- every games loads, in Mastermind the rows are covering each other (did not try to finish any of the games)
I have not tried any of the games. I think I may need to modify some settings. Maybe that will fix this issue.
Quote
well, something happened, it is not flickering any more, but after restarting it flickers again


@ mastodon -- Thanks again.

*

Offline ftm

  • *
  • 43
Re: sx700 porting
« Reply #55 on: 31 / December / 2017, 20:12:01 »
I spent some time review the code on github. Very good work, especially for a first time port on a digic 6 camera :)
Thanks for your kind words. could not have done it without your active help and also for the Digic 6 porters before me who worked on the sh60, sx280, g16, g7x, sx710. Just looking at their ports was illuminating.
Quote
Some comments:

stubs_min.S + lib.c
current_viewport_buffer and viewport_buffers are FAKEDEF. If these aren't found, vid_get_viewport_live_fb in lib.c should just return 0 without referring to them. The rest of CHDK will then fall back to vid_get_viewport_fb. Getting these values correct will allow fast motion detection to work, and reduce latency in chdkptp live view.
I will work on this to either find them or return 0 as you suggested.
Quote
lib.c
hook_raw_image_addr just returns the first raw buffer. If the camera actually uses multiple raw buffers, the image will sometimes contain the wrong data. If you tested using a static scene, it might not be obvious.
raw_buffers and active_raw_buffer are listed as "found" in stubs_min.S, so it may just be a matter of hooking them up.
The camera is probably more likely to use multiple buffers when shooting in continuous mode.
I will try to hook these up.
Quote
main.c
NUM_FL looks like it is ~2x the expected value. I had this mistake in an earlier version of the sx710 code. It should be the maximum zoom_pos value you get at full optical zoom. If it's too high, set_zoom(get_zoom_steps()) will crash.

screen_opened / screen_rotated are only for cameras with articulated LCD.
I have fixed these.
Quote
platform_camera.h
CAM_HOTSHOE_OVERRIDE should not be defined, camera doesn't have a hotshoe.
Have focus overrides been tested? The CAM_SD_OVER_IN* defines should be set based on testing.
If you use a color matrix from a cam with MATRIX1 and MATRIX2, it's probably a good idea to use both (I had just one in the sx710 port for a while, but I think the results with fully copy of sx60hs are better)
CAM_HAS_SPORTS_MODE should be defined if MODE_SPORTS is in the modemap
*ACTIVE_AREA can be found using the procedure at the end of https://app.assembla.com/spaces/chdkptp/wiki/DNG_Processing
Indeed, it has exactly the same lens as the sx710. And I copied over the same values as were present in that port. I have since corrected it. I have not actively tested the focus overrides. Is there a script that tests it also in addition to using the CHDK menu? I will also check for the ACTIVE AREA as well.
Quote

platform_kbd.h
The BATTCOVER and HOTSHOE flags aren't relevant to this port.
Fixed.
Quote
kbd.c
KEY_FRAMING_ASSIST is commented out. From pictures it looks like this camera has one, so it should be found and included.
KEY_FRAMING_ASSIST was found. This is the only key that is different from the sx710. It is 0x10 at MASK1.
Quote
stubs_entry.S + shooting.
Some modes are listed as "In firmware but not in current modemap"
If you can't find them through the canon UI, you can try setting them using set_capture_mode_canon()
Some might be internal modes that just crash or aren't settable.
Was able to check for these. Some of the modes seemed identical to existing modes as as Face detect. There was a Night Portrait mode (not available in Canon menu). One of the modes crashed the camera. I have updated shooting.c
Quote
notes.txt
Should be updated to reflect status of this port.
Working on this.


Once again, thanks very much. I will push a new version to git when I've made the changes.

Re: sx700 porting
« Reply #56 on: 31 / December / 2017, 20:12:53 »
- Menu is flickering in shooting mode (1 by sec), but if you do not press shutter button after starting the camera and you are in playback mode, it is not flickering
I could be wrong but I believe this is a common issue to  Digic 6 camera CHDK ports.
It's actually a problem in shooting mode with almost all CHDK ports.  But it's a lot worse with Digic6 cameras.

Quote
Quote

Grid works, but can not change its colour (not really a need)
Thanks for checking this feature out. I had not tested this. On my camera, the grid feature does not seem to be working properly. I will check it out.
I think you will find the default grids are not scaled properly on the display. This is a know issue.
Grids : issues and challenges

Quote
Quote
- DNG Crop Size: Active/Full/JPEG gives the same picture area (might be not a problem)
I will check this out. There are likely settings I need to change.
Yup - likely these ones in platform_camera.h :

Code: [Select]
    #define CAM_RAW_ROWPIX                     xxxx
    #define CAM_RAW_ROWS                        yyyy

    #define CAM_JPEG_WIDTH                      wwww
    #define CAM_JPEG_HEIGHT                     zzzz

    #define CAM_ACTIVE_AREA_X1                  nn
    #define CAM_ACTIVE_AREA_Y1                  mm
    #define CAM_ACTIVE_AREA_X2                  iiii
    #define CAM_ACTIVE_AREA_Y2                  kkkk


Quote
Quote
- every second DNG file is corrupt (even with 10 second of gap), size normal, but in its upper area (about 70-80%) is only noise with bluish color
I am not having this problem. I shot 10 dngs in a row both on the camera as well as with chdkptp. There were no issues with any of them. Can you describe a little bit more your situation? What program are you using to view the DNG files. Maybe a different card.
I believe reyalp predicted this would happen in his earlier post :

lib.c
hook_raw_image_addr just returns the first raw buffer. If the camera actually uses multiple raw buffers, the image will sometimes contain the wrong data. If you tested using a static scene, it might not be obvious.
« Last Edit: 31 / December / 2017, 20:18:11 by waterwingz »
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline reyalp

  • ******
  • 11591
Re: sx700 porting
« Reply #57 on: 31 / December / 2017, 20:21:51 »
Quote
- every second DNG file is corrupt (even with 10 second of gap), size normal, but in its upper area (about 70-80%) is only noise with bluish color
I am not having this problem. I shot 10 dngs in a row both on the camera as well as with chdkptp. There were no issues with any of them. Can you describe a little bit more your situation? What program are you using to view the DNG files. Maybe a different card.
It would be helpful in mastodon could post one of the bad images (a jpeg conversion is fine from the DNG is fine in this case). However, I'd guess this is likely caused by the hook_raw_image_addr issue mentioned in my post.

Whether the camera uses multiple buffers may depend on shooting mode (e.g, auto, P, special scene modes) continuous mode, and possibly other things like resolution, quality, ISO, SD card speed.

You can use CAPTSEQ_DEBUG_LOG with chdkptp dlstart / dlgetcam to see whether your raw_buffers/active_raw_buffer give reasonable looking results.
Don't forget what the H stands for.


*

Offline ftm

  • *
  • 43
Re: sx700 porting
« Reply #58 on: 31 / December / 2017, 23:25:32 »
You can use CAPTSEQ_DEBUG_LOG with chdkptp dlstart / dlgetcam to see whether your raw_buffers/active_raw_buffer give reasonable looking results.
I was able to find the raw_buffers/active_raw_buffer and implement those in lib.c. I started dlstart/dlgetcam and am trying to understand the results. I took multiple raw/dng images in a row. I'm attaching the dbg.log file. Can you elaborate a little more on what would be reasonable looking results? I see lines like
Quote
   
01017710: UI:Capture Sequence Start: m:31 arb:1 rb:0x45782700 i:0661
01020380: UI:Capture Sequence Start: m:43 arb:0 rb:0x43f83ae0 i:0662
 

*

Offline ftm

  • *
  • 43
Re: sx700 porting
« Reply #59 on: 01 / January / 2018, 02:01:24 »
@ waterwingz --  In my case, I appear to be getting a grid which is confined only to the top left quarter of the screen. I will look at that thread regarding the grid issue.

And thanks also for the comments that you left in the G16 port. They were very useful to me. The sx700 (DryOS 54p3) had lots of similarities with the G16 as far as the asm disassembly was concerned.

 

Related Topics