Introduction
Chapter 1: I2C Low-Level Hardware
Chapter 2: I2C Protocol
Chapter 3: A Software Implementation of the I2C Bus
Chapter 4: Analyzing and Debugging I2C Transmissions
Chapter 5: I2C Variants
Chapter 6: I2C on Common Single-Board Computers
Chapter 7: I2C on Vendor Buses
Chapter 8: Arduino I2C Programming
Chapter 9: Raspberry Pi (and Linux) I2C Programming
Chapter 10: I2C Programming in Real-Time Operating Systems
Chapter 11: Bare-Metal I2C Controller Programming
Chapter 12: The TCA9548A I2C Bus Expander
Chapter 13: The MCP23017 and MCP23008 GPIO Expanders
Chapter 14: The ADS1015/ADS1115 Analog-to-Digital Converters
Chapter 15: The MCP4725 Digital-to-Analog Converter
Chapter 16: Bare-Metal Peripheral Programming
Appendix A: Glossary
Appendix B: The Adafruit I2C Address Compilation
Appendix C: Online Chapters