I2C slave with error injection
mschwingen·hardware·i2c-slave/hardware/i2c_slave.kicad_pcb
About the I2C slave with error injection PCB
I2C slave with error injection is an open source AVR/Arduino PCB design by mschwingen, published on GitHub. It is a 2-layer board measuring 32 × 32 mm, with 23 components from 16 distinct parts.
Its main chip is the ATMEGA32U4-MU, from the AVR/Arduino family. By type, the board carries 7 resistors, 5 capacitors, 3 connectors, 3 diodes, 2 crystals and 2 jumpers.
From the project
Hardware designs by Michael Schwingen, michael at schwingen dot org
This project is a small I2C slave device that is useful during implementation / testing of I2C host drivers. This makes it possible to test the behaviour of I2C host drivers in a reproducible way, and allows for some level of automated driver testing.
Compared to using a normal I2C slave (like a LM75 or I2C EEPROM) for tests, the firmware presented here can be used to test error paths in I2C master drivers:

Main components on the I2C slave with error injection
I2C slave with error injection bill of materials (BOM)
23 components, 16 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | ATMEGA32U4-MU ATmega88-AU | TQFP-32_7x7mm_P0.8mm | U1 |
| 1 | 16.0MHZ 7.3728MHz | Crystal_HC49-4H_Vertical | Y1 |
| 1 | 16.0MHZ 7.3728MHz | Crystal_SMD_HC49-SD_HandSoldering | Y2 |
| 1 | I2C | PinHeader_2x04_P2.54mm_Vertical | CN1 |
| 1 | UART | PinHeader_1x04_P2.54mm_Vertical | CN2 |
| 1 | AVR-ISP-6 | IDC-Header_2x03_P2.54mm_Vertical | CN3 |
| 2 | Jumper_2_Open | PinHeader_1x02_P2.54mm_Vertical | JP1, JP2 |
| 2 | LED | LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D1, D2 |
| 1 | SMBJ5.0A | D_SMB_Handsoldering | D3 |
| 1 | 22PF 22pF | C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C2 |
| 1 | 1UF 22pF | C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3 |
| 3 | 100NF 100nF | C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C4, C5, C6 |
| 2 | 4.7k | R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R4 |
| 3 | 10k | R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2, R3, R6 |
| 1 | 2.2k | R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R5 |
| 1 | 180 | R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R7 |
I2C slave with error injection design files
The KiCad project lives in the mschwingen/hardware repository on GitHub; these links point at the commit this page was built from.
I2C slave with error injection: common questions
What microcontroller does the I2C slave with error injection use?
The I2C slave with error injection is built around the ATMEGA32U4-MU, from the AVR/Arduino family.
How big is the I2C slave with error injection PCB?
The I2C slave with error injection measures 32 × 32 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the I2C slave with error injection?
23 components, from 16 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the I2C slave with error injection design files?
From the mschwingen/hardware repository on GitHub, which has the KiCad layout and the BOM; the links under Design files point to each one.
Can I use the I2C slave with error injection design in my own project?
The repository has no license, so all rights stay with mschwingen. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the I2C slave with error injection without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug AVR/Arduino firmware against it before you order a PCB.
More boards in hardware
Raspberry Pi
YOGA - Yet anOther GPIB Adapter
mschwingen
85 × 56 mm80 parts2LNo license10AVR/Arduino
Model-M-USB-v4
mschwingen
150 × 37 mm58 parts2LNo license10R/C Compensation Tool
mschwingen
37 × 75 mm31 parts2LNo license10AVR/Arduino
USB-C PD Sniffer for Logic Analyzer
mschwingen
23 × 26 mm17 parts2LNo license10Esp prog
mschwingen
30 × 19 mm8 parts2LNo license10
Similar boards
AVR/Arduino
Redox keyboard
mattdibi
162.2 × 126.5 mm77 parts2LMIT2.0kAVR/Arduino
ModuleV450
stuartpittaway
30 × 61.4 mm39 parts2LCC-BY-NC-4.01.1kAVR/Arduino
V4
stuartpittaway
30 × 50 mm38 parts2LCC-BY-NC-4.01.1kAVR/Arduino
Discipline
coseyfannitutti
304.9 × 122.8 mm170 parts2LCC-BY-NC-4.01.0kAVR/Arduino
Megadesk
gcormier
41.7 × 32.2 mm23 parts2LGPL-3.0818AVR/Arduino
Easyduino Atmega Nano
Hanqaqa
43.4 × 18 mm30 parts4LCERN-OHL-P-2.0746