For educational purposes, I would like to write my own i2c protocol. Is it possible to write a custom i2c library to communicate using regular ports, or should I use the SCL and SDA ports? Do the SCL/SDA ports have special hardware implementations, or can you configure any port for i2c?