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.

Further information

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.