Aaaarrrgg! You folks owe us big time!
Posted: Tue May 08, 2007 4:20 pm
To our dear friends at Matrix Orbital,
We're just finishing off three identical control systems that use 4 LCD0821 PCB R2.0 displays on the same I2C bus. Addresses 0x50, 52, 54, & 56.
No matter how we tried, we could not get the displays with address 0x56 to stick. The spiffy uProject utility failed as well. The displays that should be addressed as 56 would always assume an address of 0x50 (the default).
Serial bus sniffers showed that we were sending the right commands to change the I2C address. The new address simply was never saved on the displays.
Hhhhm, what's different about these 0x56 displays?
Little tiny resistor/jumpers, that's what. No, not the ones that we are supposed to be soldering/unsoldering to switch from RS232 to I2C mode (whose great design decision was that anyway?). These were little unlabeled, undocumented resistors just above J1 & J2.
All the displays that accepted (and saved) the non-default addresses did not have these resistors installed. All the displays that were giving us grief did, and they all happen to have the same role in our systems, namely 0x56. (Conspiracy?)
Someone shipped us a bummer batch of LCD0821's. Someone made me miss having dinner with my kids. Someone owes me (and the poor sap that I'm working with) a couple of beers.
May I most humbly suggest that a minor note be added to the manual describing the function of these nearly-impossible-to-notice resistors/jumpers whose function appears to be nothing more than to give us users stress, heartburn, and high blood pressure?
May future generations benefit from our misery.
/rant
Most graciously submitted,
Chris
www.ner.com
We're just finishing off three identical control systems that use 4 LCD0821 PCB R2.0 displays on the same I2C bus. Addresses 0x50, 52, 54, & 56.
No matter how we tried, we could not get the displays with address 0x56 to stick. The spiffy uProject utility failed as well. The displays that should be addressed as 56 would always assume an address of 0x50 (the default).
Serial bus sniffers showed that we were sending the right commands to change the I2C address. The new address simply was never saved on the displays.
Hhhhm, what's different about these 0x56 displays?
Little tiny resistor/jumpers, that's what. No, not the ones that we are supposed to be soldering/unsoldering to switch from RS232 to I2C mode (whose great design decision was that anyway?). These were little unlabeled, undocumented resistors just above J1 & J2.
All the displays that accepted (and saved) the non-default addresses did not have these resistors installed. All the displays that were giving us grief did, and they all happen to have the same role in our systems, namely 0x56. (Conspiracy?)
Someone shipped us a bummer batch of LCD0821's. Someone made me miss having dinner with my kids. Someone owes me (and the poor sap that I'm working with) a couple of beers.
May I most humbly suggest that a minor note be added to the manual describing the function of these nearly-impossible-to-notice resistors/jumpers whose function appears to be nothing more than to give us users stress, heartburn, and high blood pressure?
May future generations benefit from our misery.
/rant
Most graciously submitted,
Chris
www.ner.com