The Build (in review)

How useful were the sensors and data integrated in LoCARB?

After the boat had spent a week and a half out in the ocean under unusually tough conditions, I was able to see just how useful and important the data from the integrated sensors really were under real world conditions. In case someone is looking to build their own boat, I review some of the nuances of each of the electronics integrated in LoCARB.

Arduino Mega

LOCARB used a mini version of the Arduino Mega 2560 micro-controller (aka. companion computer) to control all the other aspects of the voyage such as motor speed control, solar/battery health monitoring, maintenance operations, acting as a watchdog (such as rebooting the navigation controller), and processing the required sensor data.

It is a robust and reliable platform to use as a companion computer and I would use it again in an instant. The problem with using the mini version was the much smaller form factor, so soldering wires to the solder pads required a little more finesse. I also found out the Mega has an integrated watchdog that can be enabled if it ever encounters a “frozen state.” I didn’t know about this function until later, and had already integrated a 3rd party watchdog instead.

Navigation (Pixhawk 2.4.8)

LOCARB navigation is based on open source Ardupilot software with a Pixhawk 2.4.8 flight controller as its hardware base. The pixhawk controls the GPS, compass, telemetry, IMU, and rudder servo. Being an Ardupilot based navigation system, freely available ground control software (such as Mission Planner) makes for creating way-points “simple,” and allows for easy two-way communication with the autopilot.

If I was to build another boat, I would most definitely not use this platform again. It introduces too many unknowns into the navigation process, has too many frivolous settings required to get it operating correctly, requires another hard to understand Arduino library to control it, and is unreliable.

Over the course of the 1.5 weeks out in the ocean, the autopilot had failed to respond to new waypoint commands without having to be reboot first. It also lost control of the rudder randomly and required a power cycle to get the rudder operational again. It seems to lose track of the heading over time, and just introduces too many unknowns in the way the boat navigates because it is generally unstable. I just couldn’t trust it to do what it was told so was left second guessing why the boat was behaving as it did (was it the wind/currents pushing the boat or the autopilot?). With the limited amount of data available during the journey, it was problematic trying to troubleshoot. I say stay away from these solutions.

Despite being extremely intimidating, I would look for an autopilot flight controller not based on Ardupilot or use the Arduino for GPS navigation. Integrating a GPS into the Arduino using TinyGPS++ is easy and can be done within minutes. The more difficult part would be the PID programming to implement servo control and navigation, but it would reduce unknown behavior and be much more dependable.

GPS

The clone Pixhawk I purchased included a counterfeit u-blox m8n GPS module which works ok, but was a little iffy. I felt like it didn’t grab a satellite lock quickly and I noticed some strange compass variance errors with the autopilot (but could have been the pixhawk). I then purchased a Mateksys SAM-M8Q GPS with QMC5883L compass module and it seemed to work very well. Its quite small too. If you do go this route with just an Arduino for autopilot you may need to integrate tilt compensation (see here).

Communications (Rockblock modem using Iridium SBD)

Bi-directional communication is vital for tracking boat health variables and location tracking. Since the boat will be out of range from cellular or wifi signals, a satellite modem will be used for communication. Using a Rock Seven RockBlock Iridium network satellite modem, we are able to achieve bi-directional communication directly to and from the Arduino via Iridium SBD (Short Burst Data).

This worked perfectly except for failing to send/receive after the first send/receive. There is a workaround in the code I used.

Motor Control (Arduino with ESC)

The Arduino Mega micro-controller uses the servo library to control an RC Electronic Speed Controller or ESC. Modulating PWM pulses to the ESC allows the Arduino to control the desired throttle response.

I used a Flycolor Raptor BLS-PRO 30A ESC which performed great and ran cool after being programmed with different firmware options. Check this page to learn how to do that.

Solar charge controller

I ended up ditching the dedicated and more expensive solar charge controllers and instead just used a DROK 90483 8A/100W buck converter. This performed equal (if not better) than the dedicated solar charge controllers and was much more compact. I would use this again if I were to build another boat.

RC Motors and thrusters

I used a GARTT ML4112 320KV BLDC motor for my primary propulsion which is still working quite well despite being submerged in ocean salt water (at the time of this writing). I applied several coats of silicon mold release spray to it prior to launch.

I added a 16v 300W Underwater Thruster from amazon as backup propulsion in case the primary motor died. On testing, this thruster is not as efficient and uses about 4-7w more power to achieve the same thrust as the primary motor. In fact, I purchased two of the same thrusters and tested to see if there was a difference in output between the two. There was definitely a difference in RPM and thrust between the two, and I sent the worse performing thruster back to amazon.

Rudder Servo

I used a KST MS815 brushless servo with contactless position sensor. It can operate from 5.5v to 8.4v with different Torque and speed ratings depending on voltage. Its worked wonderfully so far and is powerful as well. I would reuse this again.

Watchdog timer module

I used a watchdog timer module from Freetronics which has been reliable and performs consistently.

Battery Pack

LoCARB used a home built 4S10P Samsung 30Q 18650 Battery Pack with cheap 40a amazon BMS. I found that this size battery did not allow for much wiggle room in case of low sun charging conditions. It also did not allow for enough reserve capacity running the boat at higher speeds. If I was to do this again, I would double the capacity.

The BMS begins to drain power from the battery at 16.7v, so its best to set the buck converter voltage to this level as not to work the BMS. Does one really need a BMS circuit? Im not sure, on the one hand it gives you peace of mind the cells will be somewhat evenly charged, but on the other, it introduces another point of failure for the power system. Its one of those things where you could probably get away with not having one depending on boat life expectancy and usage.

Solar Panel

LoCARB used a 110W SUNPOWER flexible solar panel which functioned quite well and had good build quality. It cost slightly higher than other panels, but it consistently output 5A at ~18v under full sun conditions. I would use it again, but would use two instead of one (alongside a higher capacity battery pack).

Carbon fiber propeller

I purchased a no name 4.75 x 4.75E black carbon fiber propeller from Ebay. The size works well for power output and RPM, and the build quality is decent and seems pretty strong.

Sensors

Currently, there are sensors for:

Temperature (DHT22 and DS18B20):

  1. Battery compartment temperature
  2. Electronics compartment temperature
  3. Motor/Speed controller compartment temperature
  4. Rudder Servo Temperature

I found it incredibly useful to know the temperature of both the motor and rudder servo using the DS18B20. I used the rudder servo temperature to determine why the boat had lost directional control when the autopilot failed, as it had dropped from its normal running temperature of 95-100F to 66F. A power cycle of the autopilot and servo brought the temperatures back up and I noticed directional control of the boat on the tracking map.

As well, the motor temperature was useful in knowing if the motor was actually spinning as the temperature would be higher than the ambient motor pod temperature (DHT22). Used together with the motor RPM sensor reading, it gives good confirmation the motor was spinning and not just a false reading on either sensor.

Humidity (DHT22):

  1. Arduino/Navigation compartment Humidity
  2. Motor/Speed controller compartment Humidity
  3. Battery compartment humidity

The DHT22 provided pretty accurate humidity readings to detect for small leaks. The readings would fluctuate within a certain range but once that baseline was established, could be used to diagnose a small leak. I actually believed this was very useful data in knowing LoCARB’s condition, especially in determining there was a leak in the motor pod.

Voltage monitoring (Pixhawk Power Module):

  1. Ability to monitor battery voltage

I skimped on this one and just used the Pixhawk voltage reading from the power module. If calibrated correctly (while under load), the Pixhawk provided decently accurate voltage readings over mavlink message, but the current consumption readings were inaccurate.

Tilt switch (SW520D):

To determine if boat is currently and or has capsized.

Many autonomous trans-atlantic crossings have boats that just fail to respond, leaving much to the imagination. Did the boat run out of power? Did the boat get bitten by a shark? Did the boat spring a leak? My hunch is that many boats capsize and the antenna used for sending tracking data becomes submerged. This stops communication and  the boat dies a slow death from lack of sunlight on its solar panels.

This was actually one of my favorite “fun” sensors. It showed when the boat was encountering any rough ocean conditions or if it capsized. I calibrated the sensor to detect any large vibration or tilt of greater than ~60 degrees. Its readings correlated strongly with ocean conditions.

Leak Sensor (Cheap liquid level sensor off Ebay)

I would not use this the next time. I would instead integrate a wind speed and direction sensor. Its just not sensitive or reliable enough.

Hobbywing RPM Sensor

Cheap, reliable, and accurate. It’s doubled in price since I first bought it (what hasn’t!?), but its worth every penny. See code examples on how to use it.

LoCARB REFRESH:

What are LOCARB’s power specifications?

  • 4S10P Samsung 30Q 18650 Battery Pack with cheap 40a amazon BMS
  • 110W SUNPOWER flexible solar panel (Testing with the Kingsolar recovered panel showed only 1.5-2 amp average output, damaged)
  • Victron BlueSolar MPPT 75/10 Charge controller with VE.Direct BT dongle for testing
  • DROK 90483 8A/100W DC-DC Buck/Step Down Converter (to replace the MPPT controller)

What are LOCARB’s v2 (refresh) specifications?

  • Battery/Motor Pod (4″ ABS Pipe using 1/2″ PVC pipe as struts to connect to hull)
  • Foam filled Displacement Hull with 2 x 4 drilled hard-point backbone (6′ in Length 9.5″ tall)
  • Max speed 1.5kts
  • 70lbs on land, 40-50lbs on water (motor pod is almost neutrally buoyant with 5-10lbs added ballast).
  • 4.75 x 4.75E black carbon fiber eBay propeller
  • 1/2″ PVC tubing used for struts (filled with epoxy and a 1/4″ steel rebar), and wire runs.
  • Cantex electrical box for electronics enclosure
  • Custom Magnetic coupling (motor to prop shaft)
  • GARTT ML4112 320KV BLDC motor (primary propulsion)
  • Direct Drive Prop to shaft coupling submerged exposed to salt water
  • 16v 300W Underwater Thruster (backup propulsion) from amazon
  • 13-26 Watts Total Power Draw

FIRST LAUNCH LOCARB:

What are LOCARB’s power specifications?

  • 12v 105ah AGM Battery (H9-AGM Autocraft Platinum Battery)
  • 120W flexible solar panel (Kingsolar 120W Sunpower Solar Panel from Amazon)
  • Victron BlueSolar MPPT 75/15 Charge controller with VE.Direct BT dongle for testing
  • 28 hours of 100% continuous motor operation before needing a recharge (from full battery).
  • 5.5 Days of standby life without motor running before needing a recharge (from full battery).

What are LOCARB’s Specifications?

  • Battery/Motor Pod (10″ thinwall PVC Duct using 1/2″ PVC pipe as struts to connect to hull)
  • Foam filled Displacement Hull with 2 x 4 drilled hard-point backbone (6′ in Length 9.5″ tall)
  • Max speed of 2 knots actual
  • 125lbs on land, 40-50lbs on water (motor pod is almost neutrally buoyant with 5-10lbs added ballast).
  • 4.75 x 4.75E black composite ebay propeller
  • 1/2″ PVC tubing used for struts (filled with epoxy and a 1/4″ solid carbon fiber rod), and wire runs.
  • Cantex electrical box for electronics enclosure
  • Custom Magnetic coupling (motor to prop shaft)
  • 2.4a max current draw @ ~15v