The big push this week was to get the Sharkduino V2.2s ordered. I finalized the designs, assembled the shopping lists and began the process of getting everything bought. This took longer than normal because I am buying parts to build 12 new Sharkduinos, and as such this is expensive and it is important I get everything right on the first try.
In addition to ordering, I got some work done with the heat shrink waterproofing. I finally got the heat shrink tests I put in VIMS back, and everything worked out great. We put 3 tubes with paper towels under the water, and floated a fourth tube with a Sharkduino taking data on the surface of the water. Everything stayed dry and we got some good data from the floating shark duo. Additionally the Sharkduino collected data for approximately 7 days giving us a true proof of the concept that the device works as intended outside of the lab.
heat shrink after the VIMS water test
Finally this week I assembled a new Sharkduino V2.1. This finished off my parts from my last order of Sharkduino hardware, so I am waiting on the new stuff to come in before anything else comes in. I also got lucky on the build. Two of the pins on the gyro ended up with a solder bridge between them, but they are no connection pins and them being shorted does not seem to be affecting the gyro. This is the first fully function Sharkduino V2.1, as the last one had problems with the gyroscope that made it unusable.
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.
This is a brief update on the work I did right before spring break. I ended up doing work that took a lot of time, but was mostly just applying process that I had already developed. First off I tested the Sharkduino V2.1, and I found that it all seemed to be looking alright. This took a while as I had to play with the code in order to get the new accelerometer to read any data. Unfortunately I did not spend enough time looking at the gyro, which turned out to have been giving bad data. Ben noticed this a few day ago, so I will need to build a new V2.1, that will hopefully be fully functional.
I also fully prepped a Sharkduino V2.0, along with some heat shrink full of rocks, for deployment at VIMS. I then drove over and attached everything to the side of a dock at VIMS. This serves two purposes, to test the waterproofing of the heat shrink, and to hopefully give us some data about what a Sharkduino floating on the the surface looks like.
Sharkduino V2.0 taped to a piece of wood at VIMS