We were not able to communicate with the battery's onboard temperature sensor using SMBus, so we decided to create our own temperature sensing system.
The design calls for a Texas Instruments infrared temperature sensor to be placed above each cell of the battery. This is accomplished by three PCBs, each contining two temperature sensors.
Communication with the temperature sensors is done by I2C. The three PCBs have special features on them to allow each temperature sensor to be addressed individually even though all three PCBs are identical.
AssemblySix temperature sensors were added to the design as described at: Temperature Sensors. The temperature sensor board was created with two TI temperature sensors positioned to be directly over the center of the battery cells. As per the TI TMP006 manual (TMP006 Object Temperature Measurement Setup) the "A circular target should be placed at a distance less than one-half of the radius of the target to ensure at least 90% of the IR signal that the sensor captures is from the target." Therefore with a cell with the diameter of 18 mm the desired distance of the temp sensor should be less than 4.5 mm.
Each of the six sensors must have their own address for I2C communication. Those addresses are hardwired addresses with the maximum ability of eight addresses being set from the 5V, GND, SCL, and SDA (see excerpt from TMP006 Datasheet). The Temperature Sensor Board was designed so that three identical boards can be created with no two boards using the headers in the same fashion as shown below.
The temperature sensor is soldered to the bottom of the board with all the remaining components and headers on the top of the board.
[Image of soldered of board (top)]
This is a basic idea of how the boards will be positioned over the board (excluding the mounting apparatus), and how they will be interconnected and addressed.
A CAD model of the mounting apparatus is shown below.
By the end of MSD II at the time of this writing, the temperature sensor boards have not been fully tested. The debug functionality of the AVR Dragon failed before testing began. As such, the temperature boards were tested using blinking LED's to test if data had reached the controller and the range of values that the boards were receiving. At last test, the i2c communication seems to fail while wired into the main board i2c bus. All recorded values appear to be high - insisting that communication is completely failed. Likely causes of this failure are due to incorrect pull up resistor values or too high bus capacitance or inductance. More testing is required to validate the quality of the temperature sensor PCB's. The mechanical mount was not fully milled because of this secondary issue. To finish the mounts, slots for the PCB's would need to be milled.