Controlling I2C slave on Arduino with Python Typically, when I connect my Arduino to a slave device through I2C or SPI, I'll control the slave using instructions coded in the firmware. The output data will be then printed to the Serial port and I'll use Python or MATLAB to read from the serial port and process the data later on.

PC &lt;- Arduino &lt;--&gt; Slave


Now say I want to control the I2C slave from my computer, i.e. write instructions to the I2C slave. How do I go about it? I thought of writing to the Arduino Serial port, making Arduino read it and hence configuring it but this doesn't seem efficient and I have been racking my head over this for a while.
Since you are using an arduino as a partial bridge to a PC, it appears that you already have a solution in hand.

There is a project on Git that is intended to perform this function that you could use for reference.  (Disclaimer -- I have not tested this code.)

The cheapest stand alone device that I found was a $15 breakout board from Adafruit.