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?