The goal of SWire is to be a drag and drop Software I2C replacement for the Arduino Wire Library.
- You need a software implementation of I2C because, your hardware requires two I2C busses and you only have one.
- For some reason you have decided to use a alternate pins from the hardware I2C Pins.
- I got frustrated by the lack of support and debugability of the other Assembly written Software I2C Libraries available on Github.
- XantolI2C, on which this library was built, frustratingly didn't implement the Wire.h interface so was not an easy drag and drop replacement.
- Clone or Download (from here) this Repository from github to your Arduino/libraries folder
- Include it in the source of your Arduino project,
#include <SWire.h>
- Replace all instances of Wire from your project with SWire calls.
- Replace your Wire.begin() with SWire.begin(, )
- If you are still confused, check out the example project.