Digging up an old thread, but just did an I2C decode from a Rigol DS1102E with sigrok, and thought I would add a little guide
![Wink ;)](https://www.eevblog.com/forum/Smileys/default/xwink.gif.pagespeed.ic.cldandycH0.png)
As sigrok doesn't understand the Rigol csv format, I translated it with Matlab.
Step by step:
1. Save csv from scope2. Import column 2 and 3 in Matlab. These are the actual data, the first column just contains timestamps.
The data is voltage readings and sigrok expects 1's and 0's. Let's fix that:
CH1(CH1<1)=0
CH1(CH1>0.99)=1
CH2(CH2<1)=0
CH2(CH2>0.99)=1
This will translate all readings under 1V to a '0', and all other to a '1'.
3. Create a matrix with the two columns.In this step it is important to put them in the right order. You want the Clock as the first column, and Data in the second.
data = [CH1, CH2]
Switch CH1 and CH2 as appropriate, I had the clock on CH1.
4. Save the matrix as a new csv filecsvwrite('i2cdata.csv',data)
Now we have a file, that sigrok will read
5. Apply magic. (sigrok)Copy the generated csv file to your sigrok-cli folder.
Next, open "sigrok command-line tool", and type the following:
sigrok-cli.exe -I csv:samplerate=1000000 -i i2cdata.csv -P i2c > i2cdata.txt
That's it! i2cdata.txt now contains the decoded data.
/Thomas