This is a simple I²C driver written for a microchip PIC24F microcontroller. The main goal is to do all TX/RX automatically in an interrupt routine, eliminating excessive use of busy-waits. The code should be easy to adapt to PIC32, and perhaps also other Microchip devices.