Power Supply Segmentation

by Web FishJul 11, 2013 @ 10:31am

For the last couple of months we've been trying to make our mind on power system segmentation. On one hand having separate circuits for the navionics package and the main propulsion seems like a no-brainer - less interference from the powerful brushed motors and speed controllers, separate management of consumption leaving the central microprocessor powered even during deep drain of the propulsion battery bank, being able to store and run at different voltages, etc. On the other hand, the main propulsion bank offers 160+ Watt-hour of capacity which comes at a cost - total SLA battery weight (without the water-tight enclosures) is 8.5 lb. Adding extra capacity as SLA cells adds more weight, adding extra solar panels adds either more weight (glass crystalline) or cost (thin film plastic) to the project. In addition, we have built excellent redundancy with the 4 SLA cells and 4 solar panels which will now need to be replicated on the navionics side (at lower power level / capacity). On top of that the Iridium sat-com modem can draw upwards of 2A on its 12V bus for nearly 60 seconds, so we still need plenty of juice on the navionics segment for normal operation.

For now we will be powering the main electronics from the 4.4V SLA bank through a separate voltage regulator and see if we can work out a good capacity meter to be able to throttle down / cut-off propulsion at a predictable residual level and potentially further adjust comm-link session frequency to save power. This will allow the vessel to drift in case extended periods of low solar harvest rates (weather, panel damage) without completely loosing telemetry and control. Testing will tell if this is the right way of handling it - we still have space on the deck frame for 2x5W auxiliary panels on each side. But we can definitely live without the extra 4 lb of weight...

Vertical Orientation Sensors

by Web FishJun 18, 2013 @ 11:03am

In order to operate normally (or at least efficiently) within the current design concept, the central micro-controller will need to be able to determine which side of the boat is currently facing down. This allows the power and control to be routed to the proper set of motor pods and rudders. This might sound like a trivial task, but under open sea conditions it gets complicated by the constant forces acting on the vessel. Assuming the surface of the water was (near) perfectly still, you can rely on the accelerometer reading to determine the current position relative to the earth center of gravity (or "down"). This is how most cellphone / tablet firmware operates. Ideally one would want to deploy a 3-axis gyroscope to get an accurate reading on orientation. We are trying to get away without one, so currently testing these mechanical tilt-switch sensors for overall vessel orientation. They add an inertial component to the accelerometer readings - hoping to develop an algorithm that relies on a combination of both sensor types to determine with sufficient accuracy the actual vertical orientation of the boat on the water. We don't need precise vertical orientation - just Side A vs. Side B currently down. We will still rely on compass readings for fine readings in the horizontal plane.

Local Communication Link

by Web FishJun 12, 2013 @ 08:38am

Once the basic navionics package was assembled it became clear that we'll need some means of real-time monitoring of the system for tuning the command-and-control algorithms of the boat. The primary satellite link has a fairly steep cost factor associated with it and the SBD channel has an inherent delay which makes it impractical for real-time feedback and control. In order to maintain two-way real-time communication with the boat during development and testing (short of chasing the prototype in the pool with a laptop and USB cable :) we decided on a low-power radio link. This piece will evolve once boat moves on to large-scale testing as Bluetooth has limited range but for now it provides an easy way for communication with any BT enabled host device. 

  • Current selection: JY-MCU Bluetooth Serial Port
  • Status: Temporary / Stage solution

  • Criteria: Convenience, compatibility, power consumption, cost 
  • Finalists: JY-MCU Bluetooth, SainSmart Bluetooth XBee Shield, Pair of generic NRF24L01+ 2.4GHz transceivers
  • Main decision factors: Availability, cost, ease of integration

 (click image for larger view) 

Spec highlights:

  • 1.73 in x 0.63 in x 0.28 in (4.4 cm x 1.6 cm x 0.7 cm)
  • 0.25 oz (7 g)
  • Emulates standard COM port



  • Limited range suitable for close-range monitoring and control;
  • As the project evolves, we will be switching to the Nordic 2.4GHz transceivers. Those will require a separate host micro-controller on the PC/Tablet side to interact with, which makes the setup a bit heavier;


The Solar Panels

by Web FishApr 25, 2013 @ 04:49pm

The solar panels provide the main (and for now - only) source of power for the vessel. Electric power generated by the panels is used for driving propulsion pods, rudders, as well as all navionics (processor / controllers / comm). The harvested power is split between current consumption and battery bank charging. Battery banks kick in when solar power is below pre-defined threshold. 

  • Current selection: HighFlex Solar HF35W
  • Status: Finalized

  • Criteria: Weight, power output, efficiency (watt/sq.ft.), mounting, cost 
  • Finalists: Solbian SL40Q, HQRP 30W Flex panels, SunFlex 50W panels 
  • Main decision factors: Weight, availability, cost

 (click image for larger view) 

Spec highlights:

  • 27" x 13" x 1/8" panel size
  • < 2 lb panel weight
  • 4.7 V no-load output voltage
  • 4.5 V output voltage under nominal load
  • up to 7 A @ 4.4 V short current



  • Low output voltage requires adjustments to the rest of the power package;
  • These panels are MAGNIFICENT! At less than 4 ponds per side, we are harvesting up to 60-65 Watt power at high noon. Very, very exciting!


The Rudder Servos

by Web FishApr 16, 2013 @ 06:31pm

Rudder control servomechanisms. Control the position of each of the four rudders of the vessel.

  • Current selection: 4 x Hobby People HP-A38N
  • Status: Undecided (under testing)

  • Criteria: Cost, size, reliability, ease of control by Netduino (PWM)
  • Finalists: Hobby People HP-A38N, Hitec HS-322, Airtronics 94102 
  • Main decision factors: Cost

 (click image for larger view) 

Spec highlights:

  • Weight: 38g (1.34oz)
  • Speed @ 4.8V: 0.20 sec
  • Torque @ 4.8V: 3.4 Kg-cm (47.2 oz-in)
  • Dimensions (mm): 40 x 20 x 36



  • Water-proofing the enclosures. Going with servo-arm seal boots glued on to control arms;


The Propulsion Motors

by Web FishMar 17, 2013 @ 09:56pm

Main propulsion motors. In the heart of each one of the 4 propulsion pods. Provide drive and active steering to the craft.

  • Current selection: 4 x Aquacraft AQUG1060 (550 size motors)
  • Status: Undecided (under testing)

  • Criteria: Efficiency, size, operating voltage, cost 
  • Finalists: BaneBots RS-390, BaneBots RS-540 
  • Main decision factors: Efficiency, simplicity, cost

 (click image for larger view) 

Spec highlights:

  • Operating voltage: 4.0 - 7.4V;
  • Length: 2.2" (57mm) not including shaft
  • Diameter: 1.5" (37.5mm)
  • Shaft Diameter: .12" (3mm)



  • Waiting for final pod design to test thrust / amperage with the motor controller and different size propellers;


The Motor Controllers

by Web FishMar 16, 2013 @ 12:34pm

Controls the direction and power of the propulsion pods. Translates the central processor decision making and the battery power into mechanical movement.

  • Current selection: Pololu Simple Motor Controller 18v7
  • Status: Undecided (under testing)

  • Criteria: Max current handling, standard I/O, small physical footprint, thermal footprint, cost 
  • Finalists: Pololu RoboClaw 2x5A Motor Controller, Arduino Motor Shield R3, SeeedStudio Grove Motor Driver 
  • Main decision factors: High sustained / peak currents, cost, standard serial bus interface

 (click image for larger view) 

Spec highlights:

  • Simple bidirectional control of one DC brush motor.
  • 5.5 V to 30 V operating supply range.
  • 7 A maximum continuous current output without a heat sink
  • Four communication or control options:
    • USB interface for direct connection to a PC.
    • Logic-level (TTL) serial interface for direct connection to microcontrollers or other embedded controllers.
    • Hobby radio control (RC) pulse width interface for direct connection to an RC receiver or RC servo controller.
    • 0–3.3 V analog voltage interface for direct connection to potentiometers and analog joysticks.



  • Still unclear if we will use UART or PWM to control the boards. We are using 2 pins either way;
  • If using UART, both boards will be chained;
  • Unclear if hat signature will be an issue until we mount in the navionics bay with the rest of the electronics modules;


Fun and Games with Adafruit GPS

by Web FishJan 24, 2013 @ 06:35pm

With most of the navionics building blocks arriving in the mail over the last 15 days and with our test mule build taking longer than originally projected, it's time to start tackling the core navigation functionality.

The final navionics bay design, layout and external connectors are still very much work in progress. For now we'll stick with experimental wiring in order to get all modules talking to each other and iron out all the conflicts. By the time we are done, the deck layout should hopefully be finalized.

Starting with the Adafruit GPS module on UART 2:

Initial plan was to use a one-way communication with the GPS module (read-only) to save one GPIO port for other use (GPIO 4 is normally dedicated to UART 2 / TX). After playing with it for a while, it became evident that the default update frequency of the GPS board (NMEA_UPDATERATE) is ~10Hz, flooding the serial port with data that is (kind of) useless for us (the distance we'll travel at maximum speed in 100ms is significantly less than the GPS margin of error :). So we'll need a two-way communication after all (for the PMTK_SET_NMEA_UPDATERATE command and a few other configs upon GPS initialization).

Another thing to point out about the MTK3339 chipset in the Adafruit GPS module is that it takes FOREVER to update the internal almanac data after cold restart. If you try to do this inside a building, it can spend a whole night without building a usable almanac table and getting a stable satellite lock. Fortunately, Adafruit provides an optional battery back-up (requires a simple battery holder installation and a 3V lithium battery). Once the battery is installed, the satellite lock time is DRASTICALLY reduced (by orders of magnitude) and the receiver is operational on the ground floor of a two-story building.

With all this behind us, the first module is on-line and operational:

Time for the first real-life test. I'll go into more details about the code in the Software section of the blog, but here is a summary of the test setup:

  • The GPS class provides real-time (1 second interval) updates of current longitude/latitude/altitude, satellite fix mode (None/GPS/Differential GPS), number of available satellites in the constellation and the current time offset in GMT (hh:mm:ss);
  • The main routine polls the GPS class every 3 seconds;
  • If there is a satellite lock, the data logger dumps the current location data in human-readable format in a text file on the on-board SD card;

So I dropped the board on the passenger seat of the car and headed to the harbor. Dana Point harbor is not the most signal-friendly place (tall cliffs, rich vegetation, etc). To add to the test, the GPS sensor antenna was pointed down (towards the car seat). A four minute drive from the top of the cliff to the tip of the island yielded this. Not too bad... 

A quick parse and paste into batchgeo.com gives us a near-perfect data point distribution. Try guessing where the stop signs are on the test course:

View GPS Test - 1/24/2012 in a full screen map


By the looks of it, we might be able to get away without an external active GPS antenna. 

Next on the list: compass module.

The Compass

by Web FishJan 6, 2013 @ 02:03pm

Provides information about about momentary vessel orientation with respect to the earth's magnetic field (compass), as well as earth's gravitational field (accelerometer). Basic navigation instrument.

  • Current selection: LSM303DLHC 3D Compass and Accelerometer
  • Status: Finalized

  • Criteria: Sensitivity, standard I/O, small physical footprint, cost 
  • Finalists: Sparkfun HMC6352, Sparkfun LSM303 Breakout Board, Pololu LSM303DLHC 3D Compass and Accelerometer
  • Main decision factors: Cost, standard I2C bus interface

 (click image for larger view) 

Spec highlights:

  • Dimensions: 0.5" × 0.8" × 0.1" (13 × 20 × 3 mm)
  • Weight without header pins: 0.6 g (0.02 oz)
  • Operating voltage: 2.5 to 5.5 V
  • Supply current: 10 mA
  • Sensitivity range (configurable):
    • Accelerometer: ±2, ±4, ±8, or ±16 g
    • Magnetometer: ±1.3, ±1.9, ±2.5, ±4.0, ±4.7, ±5.6, or ±8.1 gauss



  • Still unclear how well (if at all) the tilt compensation will work in a constant motion (sea waves) environment;
  • Unclear whether we'll be able to use built-in accelerometer to determine vessel orientation up/down (current flip status) - again, due to constant acceleration changes from riding surface waves;


The GPS Receiver

by Web FishJan 4, 2013 @ 10:47am

Provides current position (and optionally direction/speed). 

  • Current selection: Adafruit Ultimate GPS Breakout board
  • Status: Finalized

  • Criteria: Reliable satellite signal acquisition when installed inboard, standard I/O, small physical footprint, cost 
  • Finalists: Adafruit Ultimate GPS v.3, Sparkfun GPS LS20031
  • Main decision factors: External antenna connector (makes board mounting position and packaging less relevant), standard I/O on two GPIO pins, sensitivity

 (click image for larger view) 

Spec highlights:

  • -165 dBm sensitivity, 10 Hz updates, 66 channels
  • 5V friendly design and only 20mA current draw
  • PPS output on fix
  • Internal patch antenna + u.FL connector for external active antenna



  • Will not know for certain if external antenna is needed until the navionics bay design and mounting is finalized
  • As an added bonus module provides current time-stamp for syncing Netduino internal clock after reboot (no battery back-up for the clock on the Netduino board - anyone remembering early Apple II days?)