Building the floats - Step 6

by Web FishMar 19, 2013 @ 01:59pm


The fiberglass skin on the floats is now done. Ready for the final finish. Before we do that, we should put the frame on water to validate our math (and make sure Archimedes was right :)


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;


Building the floats - Step 5

by Web FishMar 13, 2013 @ 08:30am


Fiberglass week at the shipyard. Floats should stay under 3.5 lb. each to to keep within the overall weight budget:

Building the floats - Step 4

by Web FishMar 9, 2013 @ 07:34am


Final layer of body filler on the floats. Sanding halfway done:

Building the floats - Step 3

by Web FishFeb 26, 2013 @ 10:37am


Time to put some "meat" on the bones of this fish. Polyurethane foam is light, sticky and easy to shape with basic tools:


Once the foam is set, its cut down to size and further shaped to produce the final float core:

Building the Floats - Step 2

by Web FishFeb 22, 2013 @ 07:55pm

The sun is finally out and we have three more float frames:

Building the Floats - Step 1

by Web FishFeb 21, 2013 @ 01:57pm

Bulting the floats: Part 1

After spending a good portion of the last month experimenting with various build techniques (composite skin with minimum glue-on frame, one-off float core cast from two-part polyurethane foam, even considering CNC machining of the foam cores) the decision was finally made to go with a structural cross-frame built of 1/8" plywood, polyurethane foam cast inside the frame cells and a fiberglass skin finish. This will give us almost 100% flotation preservation in the event of float breach (OK, it is probably less than 100% as the polyurethane foam will never be 100% closed cell and as such it will soak water in the event of a skin breach, but it's way better than a hollow float), manage-able cost and reasonably reproducible results (shape/weight) using simple tooling (we will need at least four of those floats). On the flip side, this is a bit more labor intensive than simple foam casting / machining, and the solid hulls mean that we'll have to fit the navionics bay and all batteries within the deck structure. Under other circumstances this would have been a less-than-desirable solution (high center of gravity) but considering our overall design (what is up today might actually be down tomorrow) this works ideally to contain the weight in a balanced way.


  • The float frame starts as 4 separate elements: upper deck, lower deck, upper keel, lower keel:


  • The upper deck with the upper keel section:


  • The lower deck attached to the upper keel section:


  • The lower keel section attached to the lower deck:


  • The extra cut outs (keeping the overall float frame structure under 18oz.):


  • The motor pod tunnel:


  • Finally, the deck frame mount points are bolted on / glued and float frame is ready for the foam treatment:


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 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;