I built a weather station last year. Even though I sprayed a conformal coating on the PCB to help it resist humidity exposure, the temp/humidity/barometric pressure sensor flaked out from exposure to the elements. While fixing it, I decided to “geek out” a bit and hook the oscilloscope up to decode the i2c bus messages. My notes for reference.
High Level:
- Connect probes, make sure they are setup correctly (10:1, etc.). Then set vertical scale and time-base.
- Set the triggering conditions to match the signal encoding
- Set the decode conditions to match the signal encoding
- Optional – use the event table to capture and export the data
Connections
Channel 1 probe to SCL (Clock)
Channel 2 probe to SDA (Data)
Scope Config
Set to 2v/div, 100us
Trigger – i2c, SCL->Channel 1, SDA->Channel 2, When->Start, Sweep->Auto
Decode – i2c, BusStatus->On, SCLK->Channel 1, SDA->Channel 2, SCL Threshold->1.80v, SDAThreshold->1.80v, Format->Hex (whatever is appropriate)
Enable the event table if you want to capture data which allows you to also export the data to a usb drive.