This blog documents the ongoing development of low-cost autonomous ocean-going sailing drones, utilising a self-trimming wing sail. The sailing drones are currently controlled using Teensy microcontrollers, using C++.
This is the Voyager series of sailing drones.
The Astronode device allows for small telemetry messages to be uploaded from the vessel every few hours and simple commands to be received.
It will operate from 3V3, with an average current draw of less than 1mA while waiting to transmit its messages.
The peak current while transmitting is around 80mA. These power requirements can easily be supported onboard Voyager.
A new controller for Voyager has been designed with the key changes being a change from the Teeny3.6 to Teensy4.1, as well as support for the additional serial connection to the Astronode S+ Sat Comms device.
Prototype Voyager Controller V4.0
Astrocast provide a software library for interacting with the Astronode S+ within the Arduino C++ environment.
I used the Astrocast Arduino Library to exercise the Astronode S+ device using various Arduino compatible devices. These mostly worked ok, but I was having problems with the Teensy devices.
This was a problem because the Teensy device was only one that had to work.
The Teensy devices should have been the most capable of the microcontrollers in use, but they continually returned errors when communicating with the Astronode S+ device using simple 9600Baud serial data.
It took several months of part-time testing and debugging in hardware and software to eventually track down the reason for the communication errors between the Teensy devices and the Astronode devices.
In short, it is due to the Teensy Arduino Stream library, within Teensyduino, having a slight difference in implementation to other Arduino Stream libraries. The difference is only highlighted in edge cases, and would rarely become apparent. The Teensyduino Stream library is around 5 years old, and has always had this specific characteristic. The Astrocast Arduino Library makes use of the Stream library, but it exercises the edge case that highlights the difference between the Teensyduino and other Arduino libraries.
The precise details of the problem with the interaction between the Astrocast Arduino library and the Teensyduino library are covered in the next post, along with the solution.
Detailed analysis of the recovered vessel and the log files has yielded the following conclusions:
At 3 hours out, the vessel could not hold course. This was most likely due to some mechanical damage to the sail.
At 8 hours out, the sail stopped responding to regular queries via Bluetooth. This was a sudden electrical failure. The battery was discharging at the normal rate, and remained close to fully charged.
Data from the wing angle sensor showed that the sail was feathering with the prevailing wind until the last few minutes as it entered the surf.
It appears that the steering was operational for the whole voyage. After communication with the sail was lost, the wind moved more aft, and the vessel was able to converge toward the rhumb line. with the wind in this quarter the boat could hold course regardless of the state of the sail.
Later the wind moved further toward a southerly driving the boat toward the lee shore near Blairgowrie.
So it appears that:
The hull, keel and rudder remined intact and operational at sea.
The mast was intact and the sail was feathering with the wind while at sea.
The sail lost the ability to drive at around 3 hours. This was either due to failure of the wing sail servo or mechanical damage to the tail. The servo continued to draw current in accordance with normal patterns so it is likely that it was fine, so mechanical damage to tail seem most likely.
The sail electronics did fail eventually.
The tiller was knocked out of place and hit the off-switch when the vessel washed ashore.
The sail and magnetic disk were rotating right up to when the power was switched off.
The sail and magnetic disk were not with the vessel when it was found, in dark with torch. It is likely that the sail was nearby on the beach or in the shallows, but at the time it was wrongly assumed that the mast and sail were lost at sea many hours earlier.
Next Steps - Stonger more Waterproof Sail
A new mast and sail are being built. The mast is much stronger than its predecessor, however this now appears unnecessary now that it has become apparent that the mast did not fail at sea.
The new sail is a lower profile with a longer chord, yielding a similar overall area to its predecessor, which should greatly increase its robustness.
The new sail is being built using heavier construction than before. with thicker 3D printed components, and larger diameter carbon tubing for the tail boom and counterweight boom.
The electronic components are being built with the intention of surviving under water for a reasonable length of time.
Voyager Mission 2.6 - Good, but too rough for the sail!
Voyager was launched as version 2.6 from Torquay back beach at around 7:30am 30/3/2023.
The expected conditions were for south westerly winds over the coming few days of 15 to 25 knots, with a 2 to 3 metre south westerly swell.
Some breaking swells could be seen out to sea after the launch.
It was going to be rough.
Voyager 2.6 just prior to Launch at Torquay
It soon became apparent that Voyager was not holding course in the strong south westerly wind and swell. It looked like it was coming back to the rhumb line, but that was just wishful thinking, and it became clear she would wash ashore on the ocean side of Blairgowrie.
Voyager 2.6 only held course for a few hours.
The important question is to find out what has happened.
Typical appearance of the coastline near Blairgowrie (except it was dark at 8:30pm).
Standing on the coast as Voyager approached, it was very pleasing to receive telemetry signals.
This shows that the electronic systems were largely operational.
A new addition to the telemetry was measurement of range and bearing.
This relies on a GPS module that was added to the TFT Telemetry terminal which is used to compare with the reported position from the vessel to calculate range and bearing.
First Telemetry signals could be received at around 1.7km.
The vessel finally washed ashore at around 8:30pm.
It could not be seen visually as it came in, but could be tracked using telemetry, to provide range and bearing.
The shoreline appeared rocky and the seas were rough.
It appeared that the vessel was going to wash against rocks.
The telemetry signal was lost at about the time when the vessel reached the shoreline, and so it was assumed that it had been damaged against the rocks. Access to the area was difficult and dangerous in the dark.
However, another position signal was received via satellite, and so there was evidence that it may have been intact.
It was eventually tracked down an hour later.
It was relatively intact.
The mast and sail had been lost.
Voyager 2.6 as found on the beach an hour after washing ashore, with the tide receding.
It was found that the electronics were in good order. They had been switched off when the vessel came ashore, and tiller was dislodged, flicking the power switch off.
The main electronics had been switched off when the vessel came ashore
The rudder post was found to be bent, as shown in the image below. This probably occurred as vessel was washed ashore. The rudder post was bent, but there was no damage to the plastic rudder bearings, which is good, given the load they must have endured.
It is likely that the magnetic coupling disk popped off its bolt and knocked the power switch off.
A retaining nut had not been fitted, because the disk appears difficult to remove due to the magnetic coupling with its counter-part.
View of Hull showing bent rudder, probably from being washed ashore
Remaining Mast stub covered in sand, extracted from hull.
General appearance of Mast and Bearings prior to mission.
Partially disassembled remnants of Mast showing overlap of inner tube
The mast was made from a length of 12mm pultruded carbon fibre tube.
A 10mm tube was inserted into to it, and projected down pas the top bearing to increase the strength at that point,
Examination of the mast stub showed that it had failed primarily around the point where the 10mm tube ended.
Sunday, 25 September 2022
Design and Construction Changes after Voyager 2.5 - Part 2 - Voyager 2.6
September 2022.
Voyager 2.5 has been rebuilt since ending up on the rocks in May.
She's been rebuilt to directly address the issues encountered in the last voyage, and is now designated Voyager 2.6.
Most of the issues addressed are related to hardening against water and preventing water ingress.,
Voyager 2.6 ready for the water
Most of the water leaked in through the Wing Angle Sensor housing and ran down the silicone tubing cable duct into the main equipment housing to the main controller board.
The Wing Angle Sensor housing was 3D Printed in ABS plastic.
It leaked a small amount of water over the period of two days.
The sensor housing is still 3D Printed, but it is now filled with epoxy resin.
No water should get into the silicone tubing cable duct, but just in case, it has been partially filled with silicone sealant to ensure no water can pass.
Sensor housing potted in epoxy, and the silicone tube cable duct sealed with silicone sealant
The aim is keep water out of the main equipment housing, but if water does get in, the next aim is to reduce the chance of water causing problems.
The two PCBs for the wing sail controller and main controller have be redesigned to be potted in epoxy resin to improve resistance to water.
This has been been done by reducing the number of onboard connectors, and moving them off-board as in-line connectors. When connectors are placed in-line within the wiring, they can more easily be sealed. The onboard connectors in the previous design corroded dramatically, are a difficult to seal.
More components have been placed on the PCB to allow the overall height of the assembly to be reduced. This allows the whole controller assembly to lifted higher within the equipment housing to reduce that chance of coming in contact with any water.
New controller boards; potted in epoxy and designed to minimise onboard connectors.
Controller Boards
The previous build of Voyager 2.5 included the use of Plasti Dip aerosol spray as a rubberised sealer for some components such as the wing sail battery assembly.
Water leached through the Plasti Dip applied using the aerosol spray. so this was not to be used again.
Plasti Dip no longer supplies non-aerosol products in Australia, but there are competing rubberised paints that can be used as a dip.
Battery Assembly (light blue) dipped in rubber sealant paint.
Fully assembled Voyager Controller for Voyager 2.6 ready for installation
Design and Construction Changes after Voyager 2.5 - Part 1
The key points learnt from the voyage of Voyager 2.5 in July 2022 were:
Ensure no water can get into the electronic compartments
Assume water will get in, but ensure that it won't cause any damage.
Step 1. Ensure no water can get into the electronic compartments
Water leaked into the main electronic compartment.
The equipment compartments (excluding the Wing Angle Sensor housing) were tested by placing under water with a covering depth of about 20mm for 12 hours.
There was no measurable water leak during this time.
Watertight Components
The Wing Angle Sensor housing was tested separately by placing it under water for 12 hours.
A significant amount of water leaked in.
Leak Testing of the Wing Angle Sensor Housing
It became apparent that the majority of water entering the watertight compartments, entered via the Wing Angle sensor housing, and flowed down the silicone tube to the main compartment.
It is not clear whether the water leaked through the walls of the 3D printed component, or beside the brass tube.
The Wing Angle Sensor did fail whilst at sea, due to water damage.
Design changes:
Add silicone sealant into the silicone tube to form a plug approximately 10mm from brass tube.
Pot the Wing Angle Sensor housing with epoxy, and allow the epoxy to flow into the silicone tube, up to the silicone sealant plug.
These steps should ensure that the assembly is completely watertight, and that the Wing Angle Sensor is protected from water.
Telemetry Antenna with Breather Cap could extend down further.
The Telemetry Antenna projects up a tube fitted with a cap to acts as a breather for the main compartment.
The breather allows the electronics to be exposed to atmospheric pressure. This allows an atmospheric pressure sensor to operate.
It also protects the compartments from over or under pressure during the diurnal heating and cooling cycle. If the compartments were sealed, then water on contact with the compartment seals may be sucked in as the internal temperature drops.
There is a risk that some water may have entered the compartments by splashing up the vent cap and then down the antenna tube.
This risk should be mitigated by making a vent cap that extends down, almost the full length of the antenna tube.
Step 2. Assume water will get in, but ensure that it won't cause any damage
All assembled PCBs were finished with spray on lacquer Conformal Coating. Multiple coats were applied.
This was completely ineffective when exposed to salt water.
There was considerable damage and corrosion around power pins on all PCBs.
Voyager Controller showing corrosion damage
Wing Sail Controller showing corrosion damage, but not on the epoxy coated board connector wiring
The power connector and servo connector for the Wing Sail Controller were implemented as in-line cable connectors. They were sealed on the board using epoxy resin with cable tie strain relief.
This was successful. Theses connections did not suffer corrosion damage.
The in-line cable connections can be sealed using self-amalgamating silicone tape. This was successful, but care needs to taken to ensure that the tape seals correctly.
Wing Sail Servo controller showing corrosion
Design changes:
All PCBs will be dipped or brushed with epoxy resin to completely seal them.
Where practical, all connectors need to be moved off -board and implemented as in-line cable connectors. This is to allow the entire PCB to be sealed with epoxy.
The in-line cable connectors will be sealed using self-amalgamating silicone tape. This has proven to be effective.
This article aims to provide a detailed representation and interpretation of each piece of evidence obtained from the voyage and subsequent failure of the Voyager 2.5 within the entrance to Western Port.
Voyager 2.5 was approaching the entrance to Western Port, but stopped sailing near 12th July, 11pm and drifted back out to sea with the tide. This was against the South Westerly wind of around 15 to 20 knots. Rather than drift back into Western Port with the change of tide, she drifted east toward Cape Woolamai, for about 19 hours.
Then she spontaneously turned left and drift north straight on the rocks near Pyramid Rock.
The whole time she was drifting, the winds remained fairly constant from the South and South West. Despite this, she suddenly changed course and headed for the rocks.
Voyager 2.5 as found at low tide, the next morning
View of Voyager showing the equipment containers still intact
The equipment compartments were intact, but about 50ml of water had leaked in to the main compartment.
The smaller forward compartment containing the satellite tracking equipment remined dry and fully operational.
The electronic components in the main compartment suffered significant electrolytic corrosion around the power circuitry.
The computer includes an SD Card for logging many of the vessels sailing parameters.
Fortunately, the SD card is intact and all log files are accessible.
Path of Voyager after failing to enter Western Port, through to the rocks
Each time the computer boots up, it increments a Boot number.
The mission commenced with Boot #501.
The log files showed that the computer stopped logging data about 18 minutes after the failure occurred.
About 19 hours later, the computer started again with Boot #502 and ran for about 5 minutes.
This coincided with the vessel commencing to drift in shore.
Then the computer rebooted again with Boot #503 and ran for 12 minutes.
It then washed on to a rocky beach. The computer did briefly restart with Boot #504 for a few seconds about 3 hours later.
Detail of movement of Voyager near the time of failure.
Detail of movement of Voyager near the time turn to run ashore
View Log Analyser visualising the vessel state after the failure.
The previous image is taken from the Voyager Log Analyser software. This is part of the Voyager suite of software that is used to visualise the vessel state and sailing parameters.
The wind is coming from the South West, and is confirmed by the AWA in the image.
The vessel is drifting out to sea, as confirmed by the COG in the image.
The vessel is lying beam on to the wind.
The rudder command is trying to turn to port, but the vessel is not responding.
This implies that the steering is ineffective.
This could be due to mechanical damage or electrical damage.
On balance, it is most likely electrical damage, due to water ingress around the Wing Angle Sensor housing.
The following video is a screen recording of the Voyager Log File Analyser.
It shows the first minutes of Boot #502. It shows the moments after the computer has started up and establishes its location. the boat id lying broadside to the wind on the starboard tack. As soon as location is established, then it tries to turn the vessel, and it responds in seconds.
This transition can be seen in the first 20 seconds of this recording.
It is unclear if the vessel can steer properly, but it appears that the vessel does have an intact steering mechanism, and it was responsive to the computer.
The recording also shows that the Wing Angle sensor is probably faulty, constantly showing an apparent wind of -6 degrees, off the bow. If the vessel could steer, it would be constantly trying to bear away from what appears to be a head-on wind.
Detailed log of events
Note: Temperature is measured by the Wing Angle sensor, located within the sensor housing at the base of the mast.
11/7/2022 07:27:04 Switch on at Torquay Boot #501
12/7/2022 14:53:21 Turn at the Cape Schanck waypoint
12/7/2022 16:52:44Temperature reading drops from 15 to 14 degrees C.
12/7/2022 22:50:46 Temperature reading increases from 14 to 15 degrees C, after about 6 hours.
12/7/2022 22:52 Approximate time of failure
12/7/2022 22:52:09 Steering command is trying turn hard to port, the vessel is not responding.
12/7/2022 22:56:46Temperature reading increases from 15 to 22 degrees C, after about 6 minutes.
12/7/2022 23:09:46 Temperature reading increases to 82 degrees C.
12/7/2022 23:10:12 End of logging Boot #501
13/7/2022 18:04:49 Start logging with Boot #502 Note: The Steering servo would be commanded to centre as part of boot up.
13/7/2022 18:05:13 The rudder is commanded to steer to port.
13/7/2022 18:05:16 The vessel has responded and turned 90 degrees to port. No longer lying beam on to the wind. No longer held in hove-to state.
13/7/2022 18:10:24 End of logging Boot #502
13/7/2022 18:10:35 Start logging with Boot #503
13/7/2022 18:23:16 End of logging Boot #503
13/7/2022 21:05:39 Boot #504, a few seconds only.
Link for plot of positions reported via satellite:
This could be due to mechanical damage or electrical damage.
On balance, it is most likely electrical damage, due to water ingress around the Wing Angle Sensor housing.
It appears that the temperature sensor within the Wing Angle Sensor started to return faulty data in the minute or two prior to the failure.
The implication is that the sensor was suffering water damage, in the minute or two prior to failure occurring.
The boat drifted in a hove-to situation for 19 hours after the failure.
For this to occur, the rudder would be turning the vessel to starboard, trying to steer too high to the wind.
It seems likely that the steering failed when the rudder was steering to starboard, and then didn't return.
The vessel left the hove-to position at 6:05pm the next day, at the same time that the computer booted up a second time.
When the computer boots up it initially commands the steering servo to centre the rudder.
It appears the steering may have been partially working, to allow the rudder to move and release the vessel from a hove-to state. She then drifted ashore.
This further reinforces the point that the rudder was mechanically operational while at sea, and the failure was due to electrical faults, due to water ingress.
Further Leak Testing
Water was found in the equipment compartments, and it must be understood how it got in.
The equipment compartments (excluding the Wing Angle Sensor housing) were tested by placing under water with a covering depth of about 20mm for 12 hours.
There was no measure water leak during this time.
The Wing Angle Sensor housing was tested separately by placing it under water for 12 hours.
This article will summarize some the key real world statistics established after 39 hours at sea.
This information is only available because we are able to retrieve the vessel from rocks and read the on-board SD Card.
Voyager sailed well for about 39 hours until she stopped sailing due to water ingress.
Power Consumption
The Battery was a pack of 14 x 18650 Cells, made up as 7P x 2S.
One of the cells had been tested and verified as having better than 3000mAhr in the voltage range of 4.2Vdc down to 3.0Vdc.
The main battery dropped from 8.30V to 8.12V over the mission.
This corresponds to 0.18Vdc drop over 39hours, or 0.11Vdc drop per day
Assuming a constant rate voltage drop, this would yield 20 days expect life, allowing for a 2.2Vdc drop, from 8.3Vdc to 6.1Vdc . The actual rate of voltage drop would increase as voltage drops.
The Voyage Controller employs switching regulators to drop the 2S voltage down to 5Vdc for the servo, and 3.3Vdc for the electronics. As the supply voltage drops, the supply current increases to maintain a constant power consumption.
The Wing Sail battery voltage dropped from 4.16V to 4.08V over the mission.
This corresponded to 0.08Vdc drop over 39hours, which is 0.05Vdc drop per day.
This yields 20 days expect life
The Battery consists of 2 x 3Ahr 18650 Cells x 1S
Steering Servo Usage
The steering servo made 67k movements over the mission in 39hours
This corresponds to 1.8k movements per hour.
The Wing Sail Trim Tab made 9,895 movements over the mission, 39hours.
This average out at 250 movements per hour over the mission.
The rate of movement was 10 movements per hours over the first 6 hours.
Pitch
The variation of Pitch over mission was not extreme. The largest value of pitch was 10 degrees, at the start, while on land. The next largest was 9 degrees down, but typical values were less than 4 degrees.
Roll
The variation of roll over mission was not extreme. The largest value of roll occurred on land. The next largest was 40 degrees, but generally under 20 degrees.
Temperature
The temperature is measured in Wing Angle Sensor located in the Wing Angle Senor housing located at the base of the mast.
The measured temperature varied in accordance with the diurnal cycle over the 39 hours of the voyage, except for the last half hour where the measured temperature increased dramatically.
This was most likely due to water damage.
Atmospheric Pressure
The barometric pressure sensor is collocated with the compass sensor.
Link for plot of positions reported via satellite:
Dawn on Monday morning July 11, 2022, Voyager 2.5 was launched from Torquay Beach for a mission through to Western Port, on the eastern side of Melbourne, Victoria.
It is a journey into Bass Strait with distance of around 50nm or around 80km. The mission was made up of around 8 waypoints, expect to take just under 48 hours.
Voyager 2.5 undergoing lake trials in 15 to 20 knots.
Planned course from Torquay heading east to Cape Schanck and into Western Port
Voyager 2.5 on Torquay beach just prior to launch 7:30am 11/7/2022
She sailed well for the first day and a half, but near the 39th hour Voyager stopped sailing. She drifted back out to sea with the tide, and then drifted along the coast of Philip Island for about 20 hours, and drifted ashore on the rocks.
Sailing well past the Cape Schanck waypoint heading into Western Port at 6:30pm 12/7/2022 - 35 hours
Voyager stopped sailing just before reaching the the West Head waypoint 10:59pm 12/7/2022 - 39 hours, then drifted back out to sea.
Voyager drifted east for another day coming ashore on rocks at Redcliff Head, Philip Island at 9pm 13/7/2022
Fortunately we were able to recover the boat from the rocks the next day. This was valuable, and has helped us work out what went wrong.
The onboard SD Card that logs many of the boats operating parameters is intact and can be analysed.
View from Pyramid Rock looking west toward Flinders, showing Redcliff Head, at around the time of coming ashore.
Voyager 2.5 as found on Thursday morning at low tide, perched on a rock.
The preliminary review of the evidence suggests that the boat stopped sailing because water leaked into the main equipment compartment and damaged the controller.
The evidence suggests that the water leaked through the Wing Angle Sensor housing. This is a 3D printed component. It appears to be watertight, but over a period of two days, a small amount of water can leak through the walls of the printed component. In future, this component will be assembled using different methods to avoid the leaking problem.
Voyager 2.5 suffered a lot of damage on the rocks. It is likely that she will patched up yo be able make another ocean voyage to further test the systems.
The next article will discuss some of the overall results from the voyage.
A further detailed article will cover the evidence and events surrounding the failure.
Link for plot of positions reported via satellite: