The Central Processor

by Web FishJan 1, 2013 @ 12:31pm

The heart of PilotFish navionics package. The board runs all decision-making software, reading input data from all sensors (navigation and others), controlling propulsion and directional control, feeding up-link telemetry data and ensuring data persistence for post-mission download. 

  • Current selection: Netduino Plus 2
  • Status: Finalized

  • Criteria: Low power footprint, as many I/O channels as possible, standard I/O, available off-the-shelf add-ons, standard storage, easy programmability/debugging, small physical footprint 
  • Finalists: Netduino Plus 2, Arduino Mega 2560
  • Main decision factors: 22 I/O pins with dynamic GPIO/Analog/UART/I2C allocation, Arduino shield compatible, sufficient code storage area, .NET Micro Framework, on-board SD card support

 (click image for larger view) 

Spec summary:

  • STMicro 32-bit microcontroller
  • Speed: 168MHz, Cortex-M4
  • Code Storage: 384 KB
  • RAM: 100+ KB
  • 22 GPIO pins
  • Up to 4 UARTS
  • I2C channel
  • micro sd (up to 2 GB)
  • input: 7.5 - 9.0 VDC or USB powered
  • output: 5 VDC and 3.3 VDC regulated


  • Even though 22 I/O pins look like a lot, in reality we'll need every pin available to communicate with the peripheral devices. Whenever possible, we might need to utilize I2C bus to preserve general I/O pins for "dumber" sensors and devices.   


PilotFish Navionics - Block Diagram

by Web FishJan 1, 2013 @ 10:55am

In a series of articles over the next few weeks we'll cover the various components of the on-board electronics driving the PilotFish vessel. Many components are still in flux, so expect changes as the project develops. As sub-modules and connection paths / interface points get solidified, those will be marked as finalized in future revisions of the diagram.

Here is a quick summary of the navionics sub-systems (click image for full size):



  • Central Processor: The main control unit. Runs the custom software which makes things move (and find their way)
  • Comm uplink: Telemetry uplink (current position, system status and sensor data reporting)
  • GPS receiver: Current position tracking
  • Compass: Current bearing and acceleration;
  • Aux navigation sensors: additional sensors needed for proper orientation and navigation
  • Additional sensors: environmental and other sensors not directly related to navigation;
  • Image acquisition: live video / snapshots of surroundings
  • Motor controller: accepting control input from CPU and converting it to high-power electric current control
  • Propulsion motors: electric drive motors and propellers
  • Rudder control: directional control
  • Propulsion solar panels: high-power solar harvesting, dedicated to powering main drive motors
  • Propulsion battery bank: high-capacity energy storage dedicated to powering main drive motors in the absence of sufficient solar power
  • Aux solar panels: additional solar harvesting capacity dedicated to powering navionics 
  • Navionics battery bank: navionics battery back-up


The Netduino Plus 2 Arrived

by Web FishDec 26, 2012 @ 12:56am


Our Netduino board arrived. We are stoked!


Where No Other .NET (Micro) Framework Has Gone Before...

by Web FishDec 14, 2012 @ 04:41pm


Until we hear otherwise, we claim this final frontier! (do we really need a reference?)

As of today the central control unit platform has been solidified. We are going with the Netduino Plus 2. This also means that all control software will be written on top of the Microsoft .NET Micro Framework. To the best of our knowledge, PilotFish would be the first autonomous ocean-going vessel based on the .NET MF. How cool is it to be able to compile the first .NET assembly capable of finding its way to Hawaii.

So why Netduino?

  • As usual - why not?
  • Widely available Arduino Shields from various manufacturers - compatible with Arduino Mega Rev 3;
  • Built-in SD Card support - 2GB of data logging without the need for external SD shield;
  • 4 serial ports;
  • I2C support;
  • CPU Performance;

 Oh, and we happen to have a team member who (when he is not building trans-pacific boats) architects and oversees large-scale digital video systems. He happens to like .NET. A lot.