I'm currently trying to setup a unidirectional I2C bus (only for the SDA, master talking to slave only, the ACK bit would be ignored) between a BeagleBone Black (running debian) and a slave. I know there are other buses available where it would be easier but it has to be I2C.
I can talk between my 2 devices with the usual SDA (read and write) with no trouble. I tried using a diode and I can't get any communication going this way (running my code gives me the following error : IOError: [Errno 121] Remote I/O error). I don't know what's causing the error, maybe not being able to detect the slave on the bus because of the diode ?
I'm using the smbus python library (https://fossies.org/dox/i2c-tools-3.1.2/smbusmodule_8c_source.html). Looking at the source of the IOerror (when executing write_byte), I see a call made to the i2c_core driver.
My question is the following : how can I write from my master to my slave and have it not expect an ACK bit (if that's the cause of the problem), or allow it to write in the setup I have described ? (with a diode on the SDA line, I didn't take into account the forward voltage drop yet as I believe it's only software related atm).
Do I need to modify the driver ?