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
I started this week by retrieving the heat-shrink tube I left in Lake Matoaka last week. I brought back to the lab, dried it off, and cut it open. Inside everything was still dry and the seals looked good, so the test was successful. The next step is to repeat the test with a real Sharkduino inside.
Next I assembled a new Sharkduino. I put on the new accelerometer so this constitutes Sharduino V2.1. The new accelerometer is theoretically identical to the old one electronically but has a few extra features like a FIFO buffer, which will allow us to store data on the chip. This means that I was able to put the new accelerometer on a PCB made for the old one. I still have not figured out if this actually worked though, and I’ll update you all on it next week.
The next thing I did this week was general housekeeping work. I made sure the naming conventions for Sharkduinos are well defined, and began putting the Sharkduino names into the non-volatile memory on the Arduinos. I also did some maintenance and housekeeping work on the git repositories for the project.
Finally this week I updated my Sharkduino poster, and presented it at the William and Mary Undergraduate Research Symposium. This was a lot of fun, and you can find a copy of the updated poster here.
I spent this week mostly working on the final push for the proposal I’ve mentioned over the past few posts. I did however get some more interesting work done to write about after the proposal was due.
First I looked at the LiPo charging circuitry of the newest Sharkduino V2 that I assembled. I found that it is appearing to output a constant voltage, but that voltage is 0.3V below what is expected. I do not know what is causing this, and will look into it soon. Overall this charging circuitry has been giving me problems throughout the project. It seems every time I try to put it together it either doesn’t work at all, or breaks in a strange way. I do not know why this is, it’s a pretty simple circuit taken from the datasheet in conjunction with a trusted source. I does seem however that I am going have to invest a fair amount of time into it to really iron out the kinks.
Also this week the flat iron came in, and I worked on developing a procedure to seal heat shrink with it. I did this through a lot of trial and error. First I tried just putting the heat shrink in the flat iron at differing temperatures for differing amounts of time and then taking it out. This did not work well as I kept getting air bubbles in the seal. I eventually realised that the air bubbles were getting in while the tubing was still hot, so I needed to let the tubing cool while still clamped flat. To do this I put a clamp on the flat iron, heated the tubing for a while in it, and then unplugged the flat iron and let the whole thing cool while still clamped together. A picture of this can be seen below.
Flat iron clamped on heat shrink tubing
This lead to a very good seal, but takes a long time to do. This is because flat irons can heat up really fast, but take forever to cool, especially if they are being held shut. I started trying to think of ways to speed up the process and decided to try to move the tubing straight from the flat iron to an ice bath in hopes of cooling everything down before air bubbles could get in. I tried this for a while and found that you always get some air bubbles while taking the tubing out of the flat iron, but if you dunk it directly into the ice water things cool down enough that they do not have time to spread and it’s not a big deal. Overall I think that letting the tubing cool while clamped in the straight iron is the best, using the ice bath is a lot faster, and works well enough. Pictures of the seals from the different methods can be seen below.
Top: First sealing attempts
Middle: Ice water seal
Bottom: Clamped seal
Finally as a field test of the sealing techniques, I sealed up some paper towels and rocks in a tube using the ice bath procedure and tied them to a dock on Lake Matoaka. I will go back on Monday and tuesday to retrieve the experiment and make sure everything is still dry inside the tube (assuming it’s all still there).
Sealed tube hanging in the lake
I began this week by trying to fix the sharkduino V2 with the broken gyroscope that I made last week. I did this by using a hot air reflow station, which is like a heat gun with precision temperature controls. I used this to heat the solder up in the area surrounding the chip, and once the solder melted I tried to slide the gyro into place. This was not very easy though and I ended up sliding the gyro all over the board before getting it back in place. Once it was in place and the soldered solidified I found that the board was shorted between VCC and ground. This is not surprising but did make me give up on trying to save the board and move on.
Next I went back to trying to solve the heat shrink sealing problem. What I need is something to get hot and clamp flat to both sides of the tubing to fuse the tube together. I decided that the best tool for the job is a flat iron. It’s not the most scientific tool, but it has two flat plates that heat up and push together, and it’s cheap so I am going to try it out. I have ordered one and hopefully will be able to test it next week.
I also ordered new accelerometers to test out. They are a variation of our current gyroscopes so they do not need new hardware, but they have a FIFO buffer which will allow us to store data on it and write to the SD less often, and thus save power. While we have reached our primary battery lower power is still better because it will allow longer deployments, or smaller batteries. Smaller batteries would be good because that would allow us to attach the device to a wider range of animals.
This week I also assembled another Sharkduino V2, it went together well and seems to be fully functional.
Finally I am still working on a funding application and that is taking a good chunk of my time.