Hardware components and design
Minimizing thickness
One of the chief complaints about the first version of the device was the thickness, which made it clumsy to handle. We address the thickness issue by finding a thinner LCD panel and batteries, as well as being judicious about the stacking height of all the components. Any component on the PCB that was taller than the battery (4.2mm) was moved away from below the LCD, so that the LCD could rest directly on top of the battery.
Component and trace layout
For expandability and to ease testing and assembly, we split the board design into a core gumstix carrier board that provides the power management and LCD data lines and a separate sensor board containing the connections to various sensors and actuators, and the microcontroller that processes the sensor and acutator input. The two boards are connected using a 6 inch flat flex cable that provides lines for Power, I2C and SPI communications, as well as extra lines like battery voltage and a soft power switch control for future iterations of the sensor board.
The component layout for much of the gumstix carrier board was derived from the recommended layouts for the different chips. For the sensor board, layout was largely dictated by ease of routing traces. We paid particular attention in routing the traces for the USB lines as well as creating copper pours that would be large enough to dissipate the heat generated from the various ICs involved in power management. For the USB, we followed the design guidelines of keeping the differential lines parallel and away from clock lines (full USB layout guidelines), and keeping them of similar length. We also avoided 90 degree turns and we placed them over a ground plane.
Power management
The most significant change in the new revision of the reader is improved power management. The power management system consists of a battery charge chip, a battery fuel gauge, and two boost circuits to provide the necessary voltage through all phases of the battery's operation voltage.
Charge circuitry
The charging circuit consists of a charging chip and the associated components. Details about working with Lithium Polymer batteries are below. The main issue to be aware of is that the circuit must properly separate the system load from the battery, or else charge termination issues may occur (TI app note here). The simplest solution we found was through the use of a MAX8677a chip, which does all of that within the chip.
Fuel gauge
The fuel gauge allows us to monitor the power consumption of the system, as well as check the battery voltage. Fancier gauge chips can be programmed with the exact discharge profile of the battery to estimate the remaining battery capacity. We use a simple Maxim DS2745 chip that can be interfaced through I2C.
Boost circuit
We require boost circuits for several reasons. First, the LCD backlight requires 5V, which a single 3.7V LiPo battery cannot supply by itself. Second, the operating range of the LiPo batteries is from 4.2V to 3.0V. Since the Gumstix requires 3.6V, and the rest of the system requires 3.3V, without the boost circuit, when the battery is below 3.6V, the system will not operate. A rough computation estimates that about 25% of the battery capacity will go unrealized if we do not boost the voltage up when it drops below 3.6V.
In general boost circuits operate as follows: When the input is over the desired output voltage, the boost circuit will not function and will pass the input directly to the output. When the input is lower than the desired output voltage, the circuit will boost the input to the desired output. Thus, if the input has the possibility of exceeding the desired output, one should place some type of regulator in the output to make sure the voltage is within the operating range. Some boost chips come with an onboard low dropout linear regulator to regulate the voltage when the input is higher than the desired output.
An alternative architecture to make sure the entire voltage range of the battery is usable is the single ended primary inductor converter (SEPIC). The SEPIC can raise or lower the voltage much like the system with a boost circuit + linear regulator described above. However, for low voltage applications where the desired output is very close to the battery voltage, empirical testing has shown that the boost + linear circuit is more efficient (Maxim app note). Furthermore, the SEPIC requires a more complex circuit.
Component selection
Aside from making sure that the components will fit in the constrained environment, we've learned several otherlessons about component selection. First, it is best to avoid no-lead chips. While hobbyist methods of performing reflow soldering will work with the DFN/QFN packages, we have observed that it is not always reliable and it is also very difficult to verify that it was done correctly (in commercial settings they frequently use an X-ray device). Also, if you suspect that something is wrong, it is also exceedingly difficult to correct the problem. The other issue to be aware of is that for maximum flexibility when sourcing components, use components that are available from many different suppliers. Mainly, we discovered that only Digi-Key stocks 15 contact flat flex connectors, and could not order replacements from Mouser, which is much friendlier for small orders.