Low cost autonomous underwater camera for long term deployments
A Fritzing schematic of a Pi Zero + Arduino Nano combo concept for future use.
x-fritzing-fzz - 38.49 kB - 03/11/2018 at 10:38
Four main things have become clear from the first set of tests.
1. Power will need to be increase/managed
The sealed lead acid battery is a cheap but bulky solution. The 12V 2.4Ah battery costs about R130. I have the space to easily double up on that battery, so that gives me 12V ~4.8Ah for about R260. BUT I can get a power bank with a similar form factor at 5V with 10 Ah of capacity at a prices of ~R270 PLUS I don't need the DC regulator board. So it's a bit of a no-brainer. I'll be swapping over to a lithium ion power bank.
I have also decided to change from the Raspberry Pi 3, to the Pi Zero W to clamp down on the overhead. This means a loss of 4xUSB slots, which I will need to recover with an external USB hub which may mean a little bit of a extra power penalty.
2. Storage space needs to be increased
Good video chows space. No way around it. I need to beef up my storage capacity to match the battery endurance. Time-lapse operations are a lot easier on storage, but video needs to be of good to maximum quality to make it worth it. My preference so far is the SanDisk Cruzer Blade flash drives, because of the small size and ease with which it can be removed from the Raspberry Pi after operations. I also like that they come in way-out colours, which make them easy to ID.
3. Housing need further tests
A minor/slow leak was found on the housing during the second test. Luckily the internals were protected by the internal mounting which lifts the electronics off the bottom. I have my suspicions on what is causing the leak.
I handed over the housing over to Dylan (the mechanical wiz and partner in the project) for testing and he will be building the a new housing while I focus on some software and electronics.
4. The Raspberry Pi V2 module is NOT robust
Part of the reason why I'll be looking at the electronics: Looks like I fried a V2 camera module, even after taking care to handle it as little as possible. I will need to look into having a case 3D printed. The board itself is notoriously prone to static and has a rather fiddly ribbon cable. The board sports a crypto-chip to discourage cheap clones, which I can forgive to an extent. Still- for ~R400 it is still hard to beat. It's strike one for the module. I've had to order a new module, hopefully I can refine my design so that there is even less interaction with the board and it can prove that it's still the best choice for the project.
For the first water test I've set the camera to 2 photos per minute and deployed it for about an 1 hour in ~2m of water (at a beach close by). Where I tested the camera there are LOTS of octopus, so they made for good subjects.
The small 2.4Ah lead acid battery can do around ~5 hours with the current configuration.
Being impatient I moved the camera around a few times, but this turned out to be good for the tests.
Below are some of the results:
And here is a time lapse:
Notes and issues:
Moving forward (the immediate future).
Do another test:
There has been considerable progress in this project. This is mainly because I have been asking for help (who knew).
The new housing allows for a great seal and easy access to the electronics. The key to the progress has been the PVC union used to hold the lens and letting go of the tethered idea. The pipe used is still the 110mm waste pipe, but the new heavy duty fittings has given me the confidence that this project will perform the way mechanically as I hoped.
Summary of what has changed since the last log
The parts (costs in South African Rands)
I approached a friend for help. I gave him the housing and within and hour he had it rigged up and was pressure testing the housing.
These tests revealed a few things:
1. The housing- as is does not leak.
2. The housing could hold 2bar of pressue
3. The 5mm perspex lens leaked when pushed beyond 2bar
4. A 10mm lens was cut, it held 4 bar no problem.
4 bar is good enough for what I need.
From my last field test I learned that I need to pay more attention to the internal mountings of the units.
Here is some of the work I've done on the software side to get the project to alpha testing:
Here are two photos to compare a raspistill and python-picam photo:
Default photo taken from python-picam:
Photo taken using the raspistill command (exposure mode set to 'beach')
It's already obvious that there is a need for more power and better power management. A slightly longer housing will suit more batteries better.
Internal mountings should NOT be overlooked as easy. I will consider a small distribution board to tidy up the wiring and mount the RTC in a sensible way. The current internal cradle is made from hardboard, but a plastic or perspex one would be nice.
For power management I would include a Arduino via I2C to the raspberry pi to give current and voltage reading from the battery. The Arduino could then control the interval of switching the Raspi ON/OFF. The Arduino can also sport an LDR to only switch pi if the light levels are sufficient.
On the software I would make a simple web page displaying the following diagnostics:
Software also need to be able to handle low power states and full disk events
The pipecam is ready for a set of Alpha tests. I had to stop myself from throwing it in the water straight away. The dry test will help correct the photography and...Read more »
The housing is one of the two key parts of this project: the "underwater" part of "underwater camera".
Here I've failed a few times already. This log aims to show the failures and explain how they were tested and why they failed, specifically looking at the lens interface.
These are mostly jumbled thoughts with many typos and grammar mistakes.
The first idea was to use an off-the-shelf, screw-on access stopend for the lens on the one end and a female stopend on the other.
Then, to create a seal I made an o-ring. Making a custom o-ring is actually pretty easy. In this case I bought an o-ring from the pool section at a local hardware store and cut it to the length I needed for it to fit. I then used a drop of superglue to tack the two ends together. Hold in place for a few seconds and you should have a surprisingly robust o-ring.
The housing is then suppose to close with the o-ring seating under the lens, held in place by the screw on cap.
This approach *might* work with a smaller o-ring.
For my second attempt at a housing I swapped the end caps around, using the female stopend as a lens holder.
I drilled the female stopend with a hole saw.
I the glued the perspex lens to the drilled stopend with PVC-weld and then glued the assembly the pipe with some pressure to clamp the lens tight to create the seal.
I then glued on the threaded access stopend to the back and used black silicon glue as a sealant, and screwed it on to create the back seal. I use black glue because it's easier to see where I've missed a spotted when cleaning the thread after opening it.
Housing 2 was used for a field testing on land while housing 3 was being brainstormed. The field test actually revealed that there is still a lot of thing to consider with regards to how the Raspberry Pi and electronics will be mount internally.
Here is a discussion on my choice of camera by means of looking at some failures of previous attempts.
Originally I tried to hack a second-hand digital camera's buttons and controls to IO pins of an Arduino or Raspberry Pi.
Camera makes I've taken apart in my attempts:
Of these makes, I found the Canon & Fuji the easiest to open up and work with.
I've decided that using a raspberry pi with python would be a easier approach for me, because I already have the background. For this, I considered the following:
This project would allow pretty much full control of the camera over USB with some commands. Gphoto is a great option if you already have a secondhand camera that is supported by the package. I decided not to go that direction because of the variability in what secondhand cameras I would be able to find and would prefer to get something pretty standard and reliable.
Easy to integrate into a Raspberry Pi, or network, but usually they are grainy and don't deal with low light very well. The fact that you can pick them up for really cheap, makes it appealing, but the image quality becomes close to unusable.
Projects like OpenROV have had great success with decent webcams. I tried sourcing the camera used in the OpenROV project, the Genius WideCam, locally, without much luck. I was told by some dealers that this was considered 'old stock' and will be discontinued in their stores. So considering availability and price, I decided that this would not be the route to go.
For the first version my main goal is to "just get it in the water and taking pictures". Nothing more that this and without the scope creep I am so vulnerable to.
SO: The first version of this project is only to answer "Can I do this?"
If the camera can be deployed, underwater, for more that 3 days, with ongoing comms, YES I can do this.
Here are the first version 0.1 technical goals: