Purpose of the Project

Scuba diving is an activity which gives you a freedom, experience of weightlessness and an appreciation for our underwater world which is, in my opinion, second to none. Diving opens a world which we don't otherwise experience for ourselves and develops our appreciation for the precious ecosystems of our oceans and waterways. It's great for teaching our younger generations an appreciation for the marine environment and for the conservation of our planet's rich life and habitats. Diving is also a great healer, once trained and confident the feeling of being in the water can be a great improver for one's mental health. Your day-to-day worries melt away and are replaced by an in-the-moment experience.

Scuba diving can be enjoyed by many people who you might otherwise think would be excluded, including those who have disabilities. For example, The Handicapped Scuba Association trains instructors and accredits training centres where disabled people are supported through scuba diving training that is tailored to their individual needs. I would like to make it easier for people who are vision-impaired to feel a sense of empowerment by being able to scuba dive without needing to hold another diver's hand for guidance. This will give the opportunity to be independent and to enjoy an activity that perhaps they hadn't thought for a moment could be a possibility.

One of the challenges involved in scuba diving (and of course a paramount challenge for someone vision impaired) is successful navigation, whether in the sea or in a lake. This is important for everyone because it is critical to safe diving that you plan your dive properly and then you dive your plan. This is to be safe and to ensure that the dive has a purpose and is enjoyable for all.

Training lakes, including Wraysbury, Vobster and Stoney Cove, in the UK offer a diving experience which is in a controlled environment without currents or other hazards that are particular to the open ocean. They have a large number of sunken wrecks deliberately positioned on the lake bed, including boats, taxis, buses, even helicopters and large aeroplanes (such as the fuselage of a 737 Boeing jet). It's very cool to dive these features!

My closest dive lake is Wraysbury Dive Centre, near Staines, in the UK. There are over 50 features underwater and navigating between any two features is a feat I have never managed due to the sheer number of possibilities! Here's the map - quite a challenge, right!

The purpose of this project, which I have named Mercator Origins after the famous cartographer, is to enable the scuba diver to navigate between a set of features or waypoints underwater, with the diver's console instructing the heading and the distance to each target - updating and correcting in real-time according to the diver's movements.

For someone vision-impaired they will be assisted by audio directions, either spoken, as tones or as vibrations in the diver's console they hold. There will also be a Time of Flight sensor to alert the diver in case their are getting too close to the sea/lake bed or other obstacles that could be problematic if collided with. There will also be visual directions on the console, including heading, distance and a graphical indicator to show turn clockwise, turn anti-clockwise or go straight ahead.

Someone who is vision impaired quite possibly will have one or more of their other senses more attuned than someone without impaired vision, such as their sense of touch or their spatial/positional awareness (ie their position in space relative to other objects and to gravity). Someone who cannot see very well, or not at all, may well be able to use their hands (with gloves!) to reach out and feel the boat, the taxi, the bus, etc. and to imagine with great clarity the structure before them.

Therefore, a person does not need to be able to see to be able to enjoy safe scuba diving whilst navigating successfully between points of interest that can be experienced through touch. The sense of achievement and independence that I hope would be experienced is something which I think all should be able to enjoy.

The Challenges

* Global Positiong System signals (and those for other satellite constellations such as GLONASS) do not travel through water. There is a need to have a distributed computing system which can collect the GPS data at the sea/lake surface and transmit that data to the diver below through a cable. UK divers are used to having a Surface Marker Buoy towed by a line and spool/reel for safety reasons as diving in the English Channel has hazards such as lots of boats and relatively strong currents, so having a float connected to a spool held by the diver is nothing out of the ordinary.

* The entire system needs to be fully waterproof to a depth of at least that of the local dive lake  which I am targetting which is 10 metres deep. So a cable of say 11 metres which is resilient and terminated with waterproof connectors is required.

* The diver's console must be waterproof and the user must be able to have a user input interface, such as buttons which can be used to control the console.

* The diver should be able to record their dive so that they can review in the post dive briefing the path of the dive, including location on a map and also depth. This should be available as a real-time feed, so that additional safety measures can be taken (such as having assistance immediately on hand and an up-to-date location available) given the additional challenges of a partially sighted person diving.

* The system needs to be able to communicate navigation instructions both visually and through sounds.

* Different people may find different types of audio directions more effective for them: options include spoken directions, different tones according to the direction to take, or haptics/vibrations that indicate the direction to take. The user should have the option of which audio delivery mechanism is being used.

* The entire system needs to work as a unit and be resilient to knocks and drops, be fully water tight, and also have a safe and effective user experience underwater. It cannot be unwieldy or in any way cause a hazard itself and it needs to be easy to use.

* The system needs to last an entire day's worth of diving without recharging the power supply. Maximum daily dive duration across all dives would be expected to be between two and three hours.

Achievements to date (30th May 2023)

* The visual navigation system has reached Minimum Viable Product and has been successfully tested in both controlled lake conditions and also in the open sea at a depth of 10 metres.

* A pressure testing vessel has been built (based upon an existing design, the creator has been credited in the project log) and has been used to prove that the navigation console can withstand 30 minutes of pressure in excess of equivalent to 40 metres depth of water which is the maximum permitted depth for recreational diving.

* Real-time upload to an internet dashboard showing location, depth and many other metrics is achieved using a combination of WiFi and 4G.

* Proved that underwater WiFi communication using ESPNow IoT protocol between the navigation console and the audio module is possible across the 7 cm water gap between the two enclosures, for both fresh water and salt water.

* Tested in a bucket of water the viability of being able to produce sounds loud enough to be heard by the diver.

* The audio module is in test and is currently facing the challenge of unreliable micro SD card reads. An alternative ESP32 module is going to be tried (instead of the Beetle ESP32-C3 which is a relatively new device based on a very new ESP32 variant).

Achievements to date (10th October 2023)

* Built and tested two versions of the audio module. v1 has one speaker/exciter and also has a Time Of Flight sensor for detecting how far from the bottom of the lake/seabed the diver is currently. This version was not loud enough underwater. Version 2 removed the Time of Flight sensor to make enough space for two more amplifiers and exciters. Version 2 has three amplifiers driving three speakers and is loud enough to be heard underwater for both audio sounds directions and for playing music. There is sufficient Flash RAM to give the option of spoken directions if desired. The audio sounds are audible even when wearing a neoprene hood underwater.


* Points of interest can now be highlighted in the uploaded telemetry stream, and I have Mapped over 60 features in Wraysbury dive lake, obtaining latitude and longitude for each feature. Only two features to go - which have been highly elusive - the Submersible and the Canoe. All these features can now be navigated between on a dive.


Dive plans can now be coded into the firmware, essentially a list of features that will navigated to one to the next. Currently this is a manual process at code upload time, but the intention is to have a website to provide a user friendly interface and a way to upload the dive plan whilst out and about.


* Conducted twenty dives at Wraysbury throughout the mapping and audio testing process, and also for pleasure dives where myself and friends have dived for fun finding all the cool stuff! This is why the spool has been repaired a number of times (it's an upcycled 3D print spool) and why the navigation pod's front face is getting a bit scratched. It's been well used over the summer! Solution is to produce my own spool, ironically by creating a model for 3D Printing but using thicker plastic.


* Numerous hardware fixes to increase power availability in the navigation pod and the audio pod, by using step-up/down buck/boost voltage regulators. This has substantially increased the reliability of the system and the loudness of the audio pod.


* Pipelined the message sending to the internet so that there is a buffer for messages to queue if internet connection is lost.


* Increased reliability of the data communications to the navigation pod and back to the float by shielding the phototransistor from sunshine. (Required because the M5 Stick C Plus does not have sufficient GPIO pins to drive Rx/Tx serial,  two GPIOs for side and top buttons, and SDA/SLC for I2C comms. The stick does have an Infra Red LED though which can be driven with Tx data stream which then gets detected by the phototransistor and converted to a UART signal to be sent back up to the float once converted to RS485 signalling.

Evaluation to October 2023

There is much to do to make the system more usable by people who are partially sighted. The challenge for making guidance sounds loud enough has been considerable and taken the majority of the time since the first Round of the Assistive Tech Hackaday 2023 contest concluded - but has now been achieved. Reliability issues have also been overcome, but this has also been particularly time consuming. There are questions about communicating other aspects of the dive to the diver, such as are they keeping to an appropriate depth to avoid the lake/seabed and what methods could be used to provide sounds for collision avoidance.

Potential solutions including providing an enclosure that includes Time of Flight sensors to detect for collisions (a larger enclosure would be needed), an audible tone that advises the diver to keep to a fixed depth, eg 5 metres, and then also to avoid a geo-fenced area around the edge of the lake eg 3 metres where it becomes too shallow to dive.

Future work

* Provide a website for the dive instructor and diver to plan the points of interest that they want to have in the dive plan.

* Experiment with LoRa for longer range communication under water, eg for bone conducting audio system and heartrate monitor. Experimentation has shown me that at least 80cm or range is possible on the 864MHz band. This needs to be tested whilst diving as I didn't have a way of testing further than 80cm on land.

* Invite people who are vision impaired to test out the system to evaluate and refine the system so that it works as well as possible for the target audience.

* Integrate a bone conducting speaker using a radio link so that the diver can receive audio instructions/tones without making loud noises to other divers in the water - this makes the audio directions a personal experience.

* Integrate a heart rate monitor

* Add diver to shore messaging. This was done with a quick bit of Twitter API code as a proof of concept, but Twitter isn't a suitable platform for this as the type of messages that can  be sent are restricted for automated systems. 

* Repurpose an existing Genetic Algorithm engine that I developed for my Master's thesis to aid in route planning for a route including  a larger number of features.

User Interface Guide

Description of information shown on screen

Functional Diagram

Schematic for the 'Lemon' system running in the float

Schematic for the 'Mako' and 'Tiger' system running in the navigation pod / enclosure that's with the diver

Schematic for the first version of the audio pod, utilising a single amplifier and exciter/speaker

Schematic for the second version of the audio pod, utilising three amplifiers and three exciters/speakers

Inside Float (Lemon system)

Electronics inside float enclosure

Inside the navigation enclosure (Mako and Tiger) that is with the diver

and the view from the front

Audio Pod 2 - Silky system