Few weeks ago I did my Open Water Diver certification curse from PADI. Apart from the fun I learnt a lot of interesting things. Specially the many ways you can die underwater when you practice scuba diving. Luckily all the risks are very easy to control and manage with common sense and specific training.
One of the hazards you need to manage carefully is the nitrogen absorption at pressure. When you breath compressed air at depth your body is absorbing nitrogen at higher rates than you do at surface level, and your body is not able to get rid of it. Nitrogen is an inert gas that will form fatal bubbles in your vital organs when pressure change (Decompression sickness), furthermore higher concentrations of nitrogen in your body will lead you to a funny state called Narcosis, where the diver becomes euphoric and have a dangerous reckless behavior similar to alcohol intoxication or nitrous oxide effects. Which could be a lot of fun if you are in a college party but not for diving at 100 feet deep for sure.
To avoid this nasty side-effects and the devastating Decompression sickness (DCS), recreational divers have been using for decades dive tables to calculate maximum dive times, rest time between dives and decompression safety stops at depth. And more recently expensive dive computers in the form of trendy sport watches, which provide you even longer diving time since they can calculate nitrogen absorption in real time at multiple depths.
So at this point my embedded electronics weekend project was clear. I wanted to build a functional portable dive computer using real dive table data.
The hardware part of the project is pretty simple:
- 2x Potentiometers for entering dive information (depth in meter/feet and time in minutes).
- 1x LCD to show data and results (+1x trimpot 10K to adjust intensity).
- 1x Battery powered Arduino Uno as micro-controller and computer.
- ND: Maximum No-Decompression time (This is the safe time limit for your planned dive)
- STOP5: Shown when a safety stop at depth is needed before reaching surface (usually 3 minutes at 5 meters/15ft deep to avoid DCS)
- G: The Pressure Group you will have when you reach surface (this is useful when planning multiple divings in the same day)
Calculations are made using several multidimensional arrays of data based on real recreational dive tables. Check the source code here.
The computer is pretty quick and easy to use, and works awesome for checking a simple dive plan. If you want to plan same-day multiple divings or multilevel ones you will still need some paper and pencil. Anyhow I highly recommend you to don’t go diving without a certified dive computer and an experienced dive buddy.
In next part of the project I would like to encapsulate all the hardware inside a waterproof box so I would be able to carry it to diving places and show it to my astonished dive friends.