I have an arduino data logger design with 8 analog pins/digital I/O pins. I have 10kohm external pull-up resistors on some of the pins to sense resistance, such as thermistors. 10kohm 1% resistors are a lot better than the arduino internal pullup that is kind of 40kohm but not exactly it.
Plus, when I run one-wire sensors, a 10kohm will work in place of 4.7kohm required value but internal pullup doesn't work.
In a newer design, I have 8 arduino pins that I want to have one 10kohm resistor connected to each one of them. First I thought of having an 8-bit dip switch on board to enable/disable these pullup resistors. There isn't enough space for that and plus, you have to open the data logger's case and flip the switches in order to reconfigure. So I thought why not using an 8-bit I/O expander? I can have one end of the resistor connected to an arduino pin, the other end to one I/O pin on the expander. The expander is I2C interfaced. So if I want pullup, I tell that I/O pin to be output and high, or if I want pulldown, I will tell that pin to be output and low. If I don't want the resistor, I tell the pin to be input. This way I can programmatically change the pullup/down settings.
I thought this should work. Anyway, there is no shame in asking for advice from the community. So is this a correct solution?
FYI, here is the chip I am considering: http://www.adafruit.com/products/593