For mechanical details on the battery pods click here.
The battery pod circuit board interfaces the battery with the merge board and the battery charger. Its primary purpose it to protect the battery and provide fuel gauge style capacity indication. These functions are provided through a fuse for over-current protection, a comparator for under-voltage shutdown, and a dedicated fuel gauge IC that measures voltage and current flow to provide precise Coulomb counting and full charge detection. The fuel gauge bar graph can be activated by a reed switch, through serial communication, and automatically when the remaining capacity changes.

Overview
The pod board consists of the fuel gauge IC and related circuitry that measures and stores battery state, the microcontroller which drives the fuel gauge LEDs, the power-up logic that minimizes the board's quiescent power draw, and an RS-232 serial interface that allows communication with the CPU via the vehicle's standard serial packet protocol.
Fuel Gauge IC
The fuel gauge IC (Dallas DS2782E) measures pack voltage through a 6:1 voltage divider and current through a current sense resistor. The IC also contains a built-in temperature sensor. These quantities are sampled with an on-board ADC and stored in EEPROM. To determine Coulomb count, the current is integrated over time and stored in the Accumulated Current Register (ACR). This value is used to by the microcontroller to drive the fuel gauge LEDs. The fuel gauge IC also detects a full charge state the the voltage climbs above 4.1V/cell and current decreases to 500mA. At this point, the charge termination flag is set in the fuel gauge's status register, and the microcontroller re-sets the ACR to the fullcharge value, 0x7A00.
Microcontroller
The microcontroller polls the fuel gauge for current, voltage, accumulated current, and temperature on a periodic basis. It controls the discharge high-side switch, fuel gauge LEDs, and serial communication.
The voltage measurement is used to ensure that the pack does not overdischarge. In the event of an undervoltage, the high-side switch opens to disable any further discharge. Current overdraw is not detected by the microcontroller since a fuse provides this protection.
When the accumulated current changes to an amount that is different than the relative charge state previously displayed on the fuel gauge LEDs, the microcontroller activates the LEDs and displays the new relative charge. The display can also be activated through a serial command when
the board is on, or through a reed switch when the board is off.
Power-up Logic
The pod board has two power supplies: a linear regulator (Maxim MAX1615) that provides standby power to the fuel gauge and a DC-DC converter (National LM2574N) that powers the microcontroller and its associated circuitry. As long as a battery is attached to the pod board, the standby regulator produces 5V for the fuel gauge. On the other hand, four signals are involved in enabling the DC-DC, which truly turns on the pod: the \ON signal from
the vehicle power switch, an enable from the microcontroller, the on-board reed switch, and the hardware under-voltage comparator.
The \ON signal and reed switch (which are both active low) are effectively ORed through a common pull-up resistor and pass through an inverter to an OR-AND gate (TI 74LVC1G3208). This gate ORs the \ON and reed switch line with the microcontroller's enable and ANDs the result with the comparator's output. This ensures that the pod only powers on when the battery voltage is sufficiently high. From here, the DC-DC enable signal drives the gate of a small NMOS transistor (2N7002) which then drive a PMOS power transistor (Vishay SI4835BDY).
Although the DC-DC has its own enable circuitry, the first revision of this board revealed that it allows an unacceptable amount of current (several mA) to leak into it even when disabled. Quiescent current (which powers the fuel gauge and power-up logic) has been reduced to only 0.10 mA in this design.
Power-up is initiated with an assertion of the \ON signal or with a swipe of the reed switch. Since the two signals are indistinguishable, the microcontroller assumes at first that the (momentary) reed switch has been activated and asserts its own DC-DC enable line to keep itself on. After reading the stored ACR value from the fuel gauge IC and displaying the charge status, the microcontroller releases its enable, and the board either shuts down (in the case of the reed switch) or remains on (in the case of the constant \ON signal). After this point, the microcontroller code can safely assume that the \ON signal is asserted, so it turns on the high-side switch (ST VN610SP), and the discharge enable LED (DEN) which is driven by a transistor (2N7002).
Software and Serial
Serial communication is accomplished through RS-232. The microcontroller's UART pins at TTL levels are translated by a MAX233. The board implements the standard serial packet protocol to notify the CPU of the battery state. This information is then displayed on the vehicle's health dashboard.