I started this week by looking at the LiPo charging circuity on the board. This circuit has been giving me trouble since Sharkduino V1.0 and I decided it was finally time to get to bottom of the problem. I have made a lot of simple mistakes with this circuit, such as installing the LED backwards, and figured that it was some combination of these mistakes that was keeping the circuit from working correctly. This turned out not to be the case, the problem with the circuit is that I did not design it in a way to handle the load sharing between the LiPo battery and the Arduino properly. What this means is that when I plug the USB into the board in order to charge the LiPo the Arduino also turns on, meaning that the Arduino and battery are both pulling current from the USB through the LiPo charging chip. The LiPo charging chip looks for specific responses in voltage and current from the battery to know what stage of charging it is in, and these responses are distorted when the Arduino is also pulling current. The solution to this is to design a MOSFET circuit to act as a switch and disconnect the Arduino from the battery while the USB is plugged in. This circuit in the scheme of things is not that complicated, but it will require a lot of testing and tweaking to make sure it both works and is not wasting too much power. Due to time constants created by us having live animals in captivity over the summer I am not going to design this circuit for the short term.
Instead of fixing this load sharing problem right now, I am creating a new version of the Sharkduino (V2.2) that just does not have charging circuitry on board. The battery will have to be charged by an external commercially available LiPo charger. Functionally this is not different from any of the other boards since the LiPo charging circuit on board never worked. Making this change does allow us to make the device a little simpler, more streamlined, and cheaper in the short term. We plan to build around 10 of these V2.2s to use over the summer, then fix the charging circuitry and add it back in for V2.3.
Finally in addition to troubleshooting the LiPo circuit and designing the V2.2 board I did a little bit of power use profiling on the the Sharkduino V2.0s. I looked at current draw of just writing to the uSD, just reading sensors, and of the whole thing together. This gives a good baseline for power usage going forward.