A 16 bit I²C IO expander
Assembly and usage
The project includes the following components
- x1 16bit I2C IO expansion IC, Microchip MCP23017T-E/SO
- x1 10µF 0805 SMD ceramic capacitor, Multicomp MC0805X106K160CT
- x1 1µF 0805 SMD ceramic capacitor, Multicomp MC0805F105Z160CT
- x5 4.7KΩ 0805 SMD resistor, Multicomp MCWR08X4701FTL
- x8 red 0805 LEDs, Kingbright KPT-2012EC
- x8 1KΩ 0805 SMD resistor, Multicomp MCWR08X1001FTL
- x1 8-wide DIP/SIP switch, Multicomp MCEMR-08-T
- x2 20-pin through-hole header, Multicomp MC34739
- x2 PCB
Use the infographic for correctly place the components. Two identical PCBs are provided with the project. You're able to use a single board by populating both sides, or stack two boards to create a 3D construction.
The header pins are staggered so there is no need to necessarily solder them in place.
Several boards can be changed using the side headers. To do this, you'll need to set each board to a different I²C address from the default 0x20 one. This is done by cutting the track on the solder blob jumper and then soldering a blob to VCC or GND.
Any I²C driver will work with this chip; an Arduino driver is available from Adafruit. We've chosen a 4.7KΩ pull-ups on SDA/SCL for versatility (this should work with 100kbit/s to 400kbit/s standard rates under most conditions). The chip, however, can go up to 1.7Mbit/s although the pull-ups values may need to be changed depending on rate and other conditions, such as the properties of the driver, cable lengths, etc.
According the datasheet, each I/O can sink or source 25mA, although there is a total limit of 125mA, so be aware not to exceed that limitation.
IxpandO is an open source design, as is most of our work. You can find the design files for the hardware and packaging at our GitHub repository. You can edit the design files using our own PCB design open source software, PCBmodE.
The circuit boards were manufactured by Eurocircuits.
Finally, community contributions for this project are on our community site.