Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Project PilotFish: Transpacific Autonomous Micro-Vessel


  • Please log in to reply
12 replies to this topic

#1 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 02 January 2013 - 02:51 AM

Hello All,

 

Long time reader, first time poster. Thank you Secret Labs. Some very interesting projects posted here.

 

We are working on an autonomous boat project (www.projectpilotfish.com). This is my first project based on Netduino (have extensive experience with other embedded platforms and .NET in general) and I wanted to get some qualified feedback/critique/suggestions on the various elements chosen for the navigation package before committing to all the pieces. The central control will be delegated to a Netduino Plus 2 (first order arrived last week) but the rest of the periphery modules are still to be locked down. Here is the provisional list - does anything stand out as troublesome? Any potential incompatibilities? Caveats?:

 

- GPS receiver: Adafruit Ultimate v.3 breakout board on Netduino UART 2 (still unclear if built-in antenna will work at final installation - external antenna TBD);

 

- Compass / accelerometer: Sparkfun LSM 303 DLH breakout board on I2C bus;

 

- Satellite comm: Iridium 9602-I with NAL SYN7391-B antenna on Netduino UART 1 (aware of power requirements);

 

- Temperature sensor(s): TBD, assume 2 analog I/O lines;

 

- Ambient light level sensor(s): TBD, assume 2 analog I/O lines;

 

- Main propulsion: 4 x Banebots RS-390 / 12V / 2A;

 

- Main propulsion control: This is the big sticking point. Initial thought was to use something like 2 x Arduino Motor Shield R3, but have serious issues with the 2A / channel limit. The motors we've chosen have stall current in the double digits and (even though we are working on some creative drive-shaft coupling) I'm afraid we will fry the bridges on the board. Plus it will take 4 analog and 12 digital I/O pins to drive 4 channels (we do need 4 channels - the site has design details) which doesn't leave us with enough I/O for everything else. The next option is an 8 relay board (handles up to 30A, works fine for driving all 4 motors in both directions, no speed control) which still eats 8 digital I/O pins. Having PWM on the motors would be nice but is not a must. This has been tested and works, but is not optimal.

 

In search for an alternative, the closest candidate at this point is the SeeedStudio Grove connected through the I2C bus. Since I have zero experience with these modules I have a few question for all experts out there:

 

- Is there a built in cut-off / protection on the motor controller in case maximum current draw is exceeded? I cannot find definitive answer to this question (maybe not looking in the right places);

 

- Will two SeeedStudio modules work side-by-side on the I2C bus? Should I expect any address conflicts / other problems? What happens when we throw the Sparkfun compass in the mix?

 

- Is there a better (yet still affordable) solution to drive 4 motors of this size over I2C or RS-232?

 

 

Thank you in advance for any input / suggestions. Looking forward.

 

 

Chris

www.projectpilotfish.com

 

 



#2 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 02 January 2013 - 08:32 AM

Hi Chris, great first time post!One thing I would add is a hardware watchdog timer to reset the hardware if it fails to perform a periodic action.I would also have one in software too to verify you have coms.Hope to see many more updates - Paul

#3 JerseyTechGuy

JerseyTechGuy

    Advanced Member

  • Members
  • PipPipPip
  • 870 posts

Posted 02 January 2013 - 12:47 PM

First, I would like to say this is a very cool project.  I'll definitely be following the blog and the project on Facebook.

 

Let me take a stab at some of the questions.  Maybe someone like Stefan can also chime in on the motors.  He's done some work with motor controllers.

 

In search for an alternative, the closest candidate at this point is the SeeedStudio Grove connected through the I2C bus. Since I have zero experience with these modules I have a few question for all experts out there:

 

1) Is there a built in cut-off / protection on the motor controller in case maximum current draw is exceeded? I cannot find definitive answer to this question (maybe not looking in the right places);

 

2) Will two SeeedStudio modules work side-by-side on the I2C bus? Should I expect any address conflicts / other problems? What happens when we throw the Sparkfun compass in the mix?

 

3) Is there a better (yet still affordable) solution to drive 4 motors of this size over I2C or RS-232?

 

1) In short... yes it does have protection.  This board can be used to drive any brushed electronic motor as long as it doesn't consume more than 2A at 5v.  The board does get very hot when operating above 1A and can certainly burn your hand as well as anything else in near contact.  The L298 Full Bridge Driver Chip does have over temperature protection.  Perhaps someone does make a similar L298 board using the Multiwatt version of the chip which allows for a heatsink to be attached.  This may help with the heat issue but you still are limited to 2A per motor channel.

 

2) By default you can expect a conflict running two or more of these boards side by side on the I2C bus as they use the same address of 0x28.  These boards do however allow you to change the slave address thanks to the onboard Atmel ATmega8L handling the I2C communications.  Of course you need to be careful of other I2C sensors you may have on the system and be sure you are not conflicting with those.  Probably sticking with addressing of 0x28, 0x29, 0x2A etc would be safe. ([color=#ff0000;]Side note:[/color]  be careful when buying boards from Sparkfun.  While they do make some great breakout boards for sensors, many of their boards do not have the pullup resistors for I2C to work which means more external circuitry.  Take a look at places like Adafruit and Parallax for equivallent boards.  Adafruit is very good about designing breakouts with both voltage regulation where the chipset requires 3.3v supply and logic as well as pullup resistors on board.)

 

3) Most of the Motor Controllers I have encountered are 2 Channel. I did however stumble upon a Cytron 4 Channel 5-26V, 3A Brushed DC Motor Controller at the RobotShop.com which may fit your need.  I would personally stick to two separate 2 channel boards for the heat issues, see if you can find one with the L298 or other H-Bridge chipset that allows for a heatsink and also has either address changable I2C support or other connection means to allow use of multiple boards.  The nice thing about the Grove board is that they have a detailed WiKi which also has the Eagle CAD files available.  If you are savvy with board design you can take this and change out the L298 package for the version with the heatsink, have the board made by someone like OSH Park for about $7.00 each (not including the parts) then reflash the firmware onto the Atmel ATmega8L and you have your own version of the board.

 

Hope this gives you a little more information to go on.  Good luck with the project and feel free to bounce ideas of the forum members.  Lots of smart people on here.



#4 JohnGuin

JohnGuin

    New Member

  • Members
  • Pip
  • 8 posts
  • LocationRedmond WA

Posted 02 January 2013 - 04:01 PM

Great project!

 

I was curious about the 4 Banebots.  (the retired navy guy in me makes me ask about the boat more than the controllers :) )

 

How much speed do you expect to get from them and what do you hope to achieve for average speed?

 

Are they all expected to operate concurrently or are some of them there for backup?  Steering?

 

And finally, I'm not sure what advantage a deep V hull would have if the draft is only 20cm or so.  IIRC, the surface waves between the west coast and Hawai'i are much more than 20cm - that boat really seems like it will spend most of its energy just staying on course and fighting through the waves.  Does freeship help with that?  I'm not criticizing the model here - I just want to learn more about this.

 

Definitely going to follow this,

John



#5 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 03 January 2013 - 01:54 AM

First of all: thanks to everyone for the nice words - much appreciated!

 

Hi Chris, great first time post! One thing I would add is a hardware watchdog timer to reset the hardware if it fails to perform a periodic action. I would also have one in software too to verify you have coms. Hope to see many more updates - Paul

 

 

Yes, very good point. This was part of the original plans and somehow fell through the cracks. From what I've seen in the forums the built-in WDT on the board is not accessible - am I correct? Just go with custom external timer/counter listening to one of the vital I/O pins? 

 

 

Chris

www.projectpilotfish.com



#6 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 03 January 2013 - 02:33 AM

First, I would like to say this is a very cool project.  I'll definitely be following the blog and the project on Facebook.

 

Let me take a stab at some of the questions.  Maybe someone like Stefan can also chime in on the motors.  He's done some work with motor controllers.

 

 

1) In short... yes it does have protection.  This board can be used to drive any brushed electronic motor as long as it doesn't consume more than 2A at 5v.  The board does get very hot when operating above 1A and can certainly burn your hand as well as anything else in near contact.  The L298 Full Bridge Driver Chip does have over temperature protection.  Perhaps someone does make a similar L298 board using the Multiwatt version of the chip which allows for a heatsink to be attached.  This may help with the heat issue but you still are limited to 2A per motor channel.

 

2) By default you can expect a conflict running two or more of these boards side by side on the I2C bus as they use the same address of 0x28.  These boards do however allow you to change the slave address thanks to the onboard Atmel ATmega8L handling the I2C communications.  Of course you need to be careful of other I2C sensors you may have on the system and be sure you are not conflicting with those.  Probably sticking with addressing of 0x28, 0x29, 0x2A etc would be safe. ([color=#ff0000;]Side note:[/color]  be careful when buying boards from Sparkfun.  While they do make some great breakout boards for sensors, many of their boards do not have the pullup resistors for I2C to work which means more external circuitry.  Take a look at places like Adafruit and Parallax for equivallent boards.  Adafruit is very good about designing breakouts with both voltage regulation where the chipset requires 3.3v supply and logic as well as pullup resistors on board.)

 

3) Most of the Motor Controllers I have encountered are 2 Channel. I did however stumble upon a Cytron 4 Channel 5-26V, 3A Brushed DC Motor Controller at the RobotShop.com which may fit your need.  I would personally stick to two separate 2 channel boards for the heat issues, see if you can find one with the L298 or other H-Bridge chipset that allows for a heatsink and also has either address changable I2C support or other connection means to allow use of multiple boards.  The nice thing about the Grove board is that they have a detailed WiKi which also has the Eagle CAD files available.  If you are savvy with board design you can take this and change out the L298 package for the version with the heatsink, have the board made by someone like OSH Park for about $7.00 each (not including the parts) then reflash the firmware onto the Atmel ATmega8L and you have your own version of the board.

 

Hope this gives you a little more information to go on.  Good luck with the project and feel free to bounce ideas of the forum members.  Lots of smart people on here.

 

Hello Dave,

 

Thank you very much - wealth of very useful information! And I agree - lots of very smart people on here. Point taken on the Sparkfun modules. 

 

I did look at the Cytron controller you mentioned but it looks like it's limited to 3A current across all 4 channels. Two Seeedstudio Grove boards should give us total of 2 x 2A = 4A (although this is still questionable - the WiKi actually mentions 2A / channel rating in the Introduction section, yet only 0.7A / channel in the Specifications section). Our design is such that only two of the four motors (in pairs) will be on at any point in time, so pairing them accordingly on each board should lower the thermal footprint (and/or maximize utilization of of the bridge). Ventilation/cooling in general is a problem when surrounded by (lots of :) salt water so this will be a challenge. It will probably end up being a trial-and-error - I'll be ordering the boards later this week to play with. Will keep you posted.

 

Thanks once again for your input - very valuable!

 

Chris

www.projectpilotfish.com



#7 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 03 January 2013 - 03:25 AM

Great project!

 

I was curious about the 4 Banebots.  (the retired navy guy in me makes me ask about the boat more than the controllers :) )

 

How much speed do you expect to get from them and what do you hope to achieve for average speed?

 

Are they all expected to operate concurrently or are some of them there for backup?  Steering?

 

And finally, I'm not sure what advantage a deep V hull would have if the draft is only 20cm or so.  IIRC, the surface waves between the west coast and Hawai'i are much more than 20cm - that boat really seems like it will spend most of its energy just staying on course and fighting through the waves.  Does freeship help with that?  I'm not criticizing the model here - I just want to learn more about this.

 

Definitely going to follow this,

John

 

Hello John,

 

To a navy guy some of the aspects of our design might look ... ummm... unorthodox (that's an euphemism... the term I was looking for is insane  :)) but here we go...

 

We have two main (self-imposed) limitations: maximum size of 100 cm. in any dimension and 100% renewable energy sources. There is a brief discussion of the power budgeting here. And the reason for the 4 motors is that instead of trying to come up with a working self-righting catamaran design, we decided to build a cat which works upside down (or downside up - its fully symmetrical across both the vertical and longitudinal axes). More details here.

 

So to answer your questions: we need a 4 channel motor controller because we have 4 propulsion pods (two on each hull - one at the "bottom" and one at the "top" of the hull). At any point in time (based on orientation sensor readings) only one pair (the "top" or "bottom" pods) are operational. Steering is accomplished (for redundancy) both by manipulating propulsion and through rudder input (we have 4 rudders too). The idea being that we could keep limping with one working motor and one working rudder. And if we fail 100% on one of the surfaces ("top"/"bottom"), hopefully we'll get (periodically) flipped by waves and will have at least one working surface to keep moving.

 

By now you are probably having the laugh of your life :). But preliminary results indicate it's (somewhat) working. During the build we modified the original hull design - the "mule" is undergoing initial testing in the pool this week with much slimmer floats which reduced the drag (and maybe the bow wave - not clear) drastically - will post numbers and photos / video on the blog early next week.

 

You are absolutely correct - the majority of the time will be spent fighting waves and currents. This is where some of the navigation software tricks should come into play. With average continuous  propulsion budget of 45 W and total displacement of 16 kg our projections are for 4+ knots in calm water and an overall average of 1 knot over the course of the passage.

 

Apologies to all non-ocean-bound readers of the forum for the partially off-topic post.

 

 

Chris

www.projectpilotfish.com



#8 carb

carb

    Advanced Member

  • Members
  • PipPipPip
  • 352 posts
  • LocationCrystal River, Florida

Posted 03 January 2013 - 03:58 AM

PilotFish,

 

This company has a good selection of motor controls that may be of help. I have only used their servo control but have no complaint about their equipment.

http://www.pololu.co...alog/category/9

 

Chuck



#9 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 03 January 2013 - 09:33 AM

First of all: thanks to everyone for the nice words - much appreciated!

 

 

 

Yes, very good point. This was part of the original plans and somehow fell through the cracks. From what I've seen in the forums the built-in WDT on the board is not accessible - am I correct? Just go with custom external timer/counter listening to one of the vital I/O pins? 

 

 

Chris

www.projectpilotfish.com

There are lots of ways to acheive this.

 

At one extreme, you might consider a re-triggerable timer circuit using a 555 timer that monitors a GPIO which you already have to toggle from software (probably best not to use a PWM output as the software could stop - leaving the PWM part of the ARM running). If the 555 ever reaches its timeout point, it will be wired up to reset the Netduino. This will invlove expermientation getting the electronics working, so it might seem cheap and chearful, but may be difficult to get working correctly. Beware changes in timer duration with low battery or extreme temparatures!

 

At the other end, there are real time clock RTC chips that include configurable alarms/timers. Some of these have an external output pin that is used to interrupt a microprocessor when a timer expires. If you were going to have an RTC anyway, you might consider using one with alarms/timers and wire up the alarm output pin to the Netduino reset. The software can then re-start the alarm on a regular basis, if it ever fails to do so, the Netduino is reset.

A quick search on Google found me an I2C device the, 1339-2 which has an alarm output. Note I am not claiming to have used it.

(You might still have to use an analogue circuit to limit the duration of the interrupt pulse so that Netduino is not hed in reset fo ever.)

 

Since my last reply, I have read all you blog posts. Great story unfolding.

 

Have fun - Paul



#10 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 03 January 2013 - 05:04 PM

PilotFish,

 

This company has a good selection of motor controls that may be of help. I have only used their servo control but have no complaint about their equipment.

http://www.pololu.co...alog/category/9

 

Chuck

 

Hello Chuck,

 

Thanks - great link. I think (at least on paper) these guys have the best solution so far: RoboClaw 2 x 5A. Since the board is rated at 2x5A continuous / 2x10A peak (and has a small heat sink pre-installed), we might be able to get away with only one board and a couple of relays switching output voltage to the proper motor pod(s). Would have been great if it was I2C but it can be driven with 3/4 GPIO pins - not too bad.

 

Definitely worth a try.

 

Chris

www.projectpilotfish.com



#11 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 05 January 2013 - 05:48 PM

Chris

 

I don't see any navigation lights listed on the web page.

Are you required to have anything like that on an autonomous sea vehicle?

 

Paul



#12 thepilotfish

thepilotfish

    Member

  • Members
  • PipPip
  • 12 posts

Posted 06 January 2013 - 06:46 PM

Chris

 

I don't see any navigation lights listed on the web page.

Are you required to have anything like that on an autonomous sea vehicle?

 

Paul

 

Hi Paul,

 

We have budgeted 2 high-intensity LEDs in the power budget, but are still unclear about the full set of requirements for a vessel of this size. Our intrepid legal researcher is yet to schedule her meetings with the local coast guard office to try and obtain all those details - she's been preoccupied with upcoming SAT exams :)

 

Chris

www.projectpilotfish.com



#13 JohnGuin

JohnGuin

    New Member

  • Members
  • Pip
  • 8 posts
  • LocationRedmond WA

Posted 07 January 2013 - 03:24 AM

Be sure to double check, but vessels less than 7 meters in length only need a single 360 white light. 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.