Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /home/mmerry/mattmerry.com/blog/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/mmerry/mattmerry.com/blog/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /home/mmerry/mattmerry.com/blog/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/mmerry/mattmerry.com/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/mmerry/mattmerry.com/blog/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /home/mmerry/mattmerry.com/blog/wp-includes/http.php on line 61
Matt Merry » Blog Archive » First Steps

First Steps

June 7, 2008 10:29 pm

So, there will be a flurry of activity at first for this firmware hacking project of mine. Here are a couple of the first steps I took and a quick brain dump of my first thoughts on this.

Sigma has released 8 versions of the SD14 firmware so far Ver 1.01 -> ver1.07. Ver 1.07 actually has two versions with it, 1.07_0 and 1.07_1. Once upon a time you could download all of them from Sigma’s website, though it looks like the early ones are not available any more. Good thing I kept a copy laying around. :-)

The first and easiest thing to do is to open them with a hex editor and see whats inside. Perhaps we’ll get lucky and something will be readable. I used Okteta or KHexEdit, depending on which machine I’m on (I use linux, Fedora usually)

Sure enough, the folks at Sigma were kind enough to leave much of the file readable. There is a wealth of debug information in the files, for example, s14v101.bin opens with the following text:

SIGMA.COSD14....1.01............1.00.0.008..........20070411....

Hm, looks like this is Sigma Co’s SD14 firmware version 1.01 made on 04-11-2007 :-) Easy enough. Surprising, a lot of information can be gathered just by looking at the firmware like this. as I noted here, the firmware contains a lot of debug information, in particular I found this to be interesting:

Specify which steps to skip in the Image Processing pipeline. 
FLAGS: 
Skip AutoAdjust = 0x00000001 
Skip LinLUT = 0x00000002 
Skip ColumnFilter = 0x00000004 
Skip ColumnFilterSegCapacitance = 0x00000008 
Skip SpatialGain = 0x00000010 
Skip ISOGain = 0x00000020 
Skip DriftCorrection = 0x00000040 
Skip FlareCorrection = 0x00000080 
Skip SatDetect = 0x00000100 
Skip BadPix = 0x00000200 
Skip RedSharp = 0x00000400 
Skip NeutHilitePixel = 0x00000800 
Skip NeutHiliteNeighbors = 0x00001000 
Skip NeutHiliteSmoothNeighbors = 0x00002000 
Skip Despeckle = 0x00004000 
Skip SpatialDQ = 0x00008000 
Skip ChromaBlur = 0x00010000 
Skip ColorDQ = 0x00020000 
Skip CorrectionMatrix = 0x00040000 
Skip ToneGamma = 0x00080000 
Skip Sharpen = 0x00100000  

These appear to be the descrete steps in the image processing pipeline. You can find this at offset 0×0AA846 in s14101.bin. Boy, I wonder what algorithms are going on behind the scenes there :-)

So, as I said, much can be learned just by opening up the firmware in a hex editor and poking around.Thats what I’ll start off with. Open the firmware and see if there is anything I can pick out.

No Responses to “First Steps”

Care to comment?