What about jumpers? Add a little to the cost but it might be worth it in the long run.I2C presents one problem in that there's no way to easily deal with address conflicts should another shield also use I2C. I'll probably just tie all the address pins high with the leads exposed in such a way that the user can cut PCB traces to change the address.
Bookmarks