Arduino underwater ROV

Hi there. My first post on the board, so be gentle. :wink:

My project started with a droids muin (pic18). But i find very little usefull information for my usage. (i have no experience at all) Even no premade software (GUI) that serve my needs.

BUT... on arduino based boards, like the uno or mega. I find diy's for my sensors and even found a very nice open ROV software (GUI) made for the atmega 128. It even got joystick controll, lights etc etc.

ROV information:

tether = 300feet cat5e cable with rs232->rs485 converters. using 1 twisted pair

I have 4 high tourqe outrunner motors that im gonna run open, in salt water. (Changing to ss bearrings and cleaning with fresh water and oil after every run) They have direct shaft on brass 6blade props. Housing is only to keep dirt out of motors. Not water proof.
Motors are running with car/boat esc's. Im controlling them today via tx rx signals on the droids muin test GUI.

The two standalone video signals (color and IR) is sent via balun via 2x twisted pairs. This is working flawless now. I have servo controll up and down.

I have 2 Sensors i want to use (triple axis i2c and analog pressure) i have not managed to get up yet. (found diy's on both. for the arduino) I have absolutely no experience with microcontrollers or programming what so ever. :-[

The rov is going to use 7,4volt batteries total of 32amp. (lithium ions) One poweradapter for charging "in flight" is run on 1twisted pair (uncertain about this one)

So my questions for you guys. Is the arduino UNO enough? Is the atmega 128 software i already got, compatible with the UNO?

If any of you guys have better solutions for me please share. (feks video overlay for sensors. running without GUI and ps2 controller.)

Karl

Hi Karl,
Can i gve some input to your ideas, specifically one area. If i read things right, you are using the CAT5 cable as the umbilical and you want to try and charge the batteries on the 'fly' whilst using the ROV?

I dont know what charging circuits you have consiered to do this, but you couldnt effectively use a standard charger that is shore based to put anything other then a tiny trickle charge into the batteries for two reasons.

The CAT5 cable is very thin, and WONT have a very high current carrying capacity, the second is the resistance of the wire and the resulting voltage drop. A charger that would push out around 3 amps to charge your 32Ah battery pack when connected to the battery a few feet away, may only charge at a few tens of milliamps when connected via 300' of CAT5 cable.

There is a way around this. Basic OHMS law! What you need to do, is instead of feeding the low voltage DC down the CAT5 cable, feed a higher AC voltage down the cable instead, I dont know where you are from, so i dont know your mains supply voltage, so i will assume 230 volts. One effective way is to mount a charger inside the ROV, and using an ISOLATED low current mains supply and RCD/ELCB, feed the charger via the CAT5 observing usual safety precutions.

This way you wont get anywhere near the problematic voltage drop, basically the higher the AC feed voltage, for a given WATTAGE load in the ROV, the less is the voltage drop, and less of a problem.

PM me if you want any further help.

John

As always on these ROV threads - here is a good source of info:

No use reinventing the wheel too much, when someone else has done a lot of hard work.

Is the arduino UNO enough?

Almost certainly not: it's likely that that software you found needs the extra resources of the ATMega128. But the 1280 CPU in the Mega is probably close enough to the 128 to use it with few/no changes.

I'm not an expert, but I done a couple projects with the Arduinos and I work with serial communication devices often. Maybe we can break down the specifics of what you need. What I understand so far is that you will be using serial to interface from a top side computer that likely has a 232 output and would use 485 for 2 way communication and "hopefully" use a 485 to TLL for the arduino chip at the ROV. This ROV program you will be using outputs some kind of serial commands that you want the Arduino to interpret and flip I/Os that will interface with your motors. You also want to have the ability to interface with sensors on the ROV that in return would send data back to the topside computer.

You wold be making some electronics design and require more than one chip, or do you really plan on doing it all from the UNO? That would be messy...
Just tossing someone's invented wheel as someone suggested may not be the cleaner solution in your case.

power: im aware of the problems suplying power through a small cable like cat5. This is why i want batteries. Then i wont need to drag around with a heavy cable. I was thinking 48volts conversion to 12 in the rov would do the trick on charging. But as I mentioned, Im not shure if this can be done without more work, cash and hazzle.

breakdown:

I will be using serial to interface from a top side computer with 232 output. The signal will be converted on the top side to 485. In the ROV, the signal will be converted back to 232 so the microcontroller have a language it understands.

I have no ROV program that can be used. I have searched the web and found a couple of (what i think) good solutions for Graphical user interfaces. atmega 128 and fez.

The motors im using is brushless. And the ESCs are handled like servos. (they have their own well built programming) And i would like to have a couple of sensors on the ROV that in return would send data back to the topside computer.

This far, I have used the DROIDS Muin chip 900.005 (www.droids.it). it have worked very nicely for testing. I have controll over all motors and servos using the mouse. Problem is, it isnt used so much for these kind of solutions and the GUI is NOT open source. And i dont have a clue on how to set up a joystick and get the sensors working.

Im not trying to invent the wheel again. This is why im in your forum. Im not a programmer, and have no idea of what im doing. But spezialised in metalwork and my main hobby is diving. :smiley:

I have found solutions for the Atmega 128 (http://scini.mlml.calstate.edu/SCINI_2007/resources.html) and the FEZ (http://rov.cncbasics.com/index.php?option=com_content&view=article&id=10:rovcontrol&catid=10:begining-tips&Itemid=14). The atmega solution is very professional and well built. The fez system look easier to build.

Thanks for the replies so far. All what you guys said is very informative. And dont be afraid of judging my decisions and telling me whats good or bad solutions. I can handle it. :wink:

Im going to contact this FEZ-ROV guy and ask a bit on the solution he built.

signal will be converted back to 232 so the

RS-232 is a voltage standard, I assume you don't mean you're converting from 485->232->TTL on the ROV.

Just checking.


Rob

Im using cheapo rs485 converters on both sides of one of the twisted pairs to make the signal travel the 300feet distance without significant signal loss.

My main concern is solutions on the controlling. Ie getting good responses on servos end esc's using a joystick. Also having sensors giving me heading and depth.

Its also possible ill split my tasks. Run without a gui and rather use a video overlay card showing sensor signals on top of video. Still i need a good system for controlling 6 or several servos via joystick.

I assume your ROV is going to be fairly large to be able to pull cat5 cable around. You might want to consider using an ethernet connection (assuming it can operate on the 300' cat5 cable). Have a router and an arduino with ethernet shield in the ROV.

" I was thinking 48volts conversion to 12 in the rov would do the trick on charging. But as I mentioned, Im not shure if this can be done without more work, cash and hazzle."

Its quite easy to do,but i dont think 40 volts will be high enough, CAT5 cable is certainly rated up to 600 volts.

It all boils down to the average current you need at the ROV,average and not peak. If the CAT5 pair you want to use is rated at a nominal 1 amp and the voltage is 7.2v then 7.2 watts is the max you can send down the CAT5 (I will use simple figures and not take into account any conversion losses,for the sake of simplicity) however if you double the voltage (AC) to 14.4v the available wattage is now 14.4 watts and so on, so theoretically,if you used 220 volts at 1 amp,you will have 220 watts available at the ROV, step this down with a transformer to 11 volts,and you will effectively have 20 amps of current available inside your ROV,your only cost is the transformers at both ends,or isolating transformer on the land,and the charger inside the ROV.

Crosstalk between the CAT5 cables shouldnt be a problem,and can be simply removed from the data pairs with a simple filter.

I second what Graynomad mentioned, RS232 is a voltage standard, so you would really go from RS485 down to TTL on the Atmega chip.

Now what I understand is that you need the Arduino to actuate your 4 brushless motors, which have their own logic already. If that is the case, then all you need is for a way to turn interface a joystick/keyboard etc to move all 4 motors from a on, off reverse state.

The sensor part seems to me as a 2 part to this, you could just add a second design to this as for simplicity. Having a second Arduino do the sensing and sending of data for the topside seems like a logical step to me.

I am working on an ROV project (Projects) in which I am using an Arduino Pro ATmega328 in the ROV itself. I have it generating the control signals for 4 thrusters and returning telemetry to the surface over RS485. There is no shortage of CPU speed or memory for these tasks.

I am sending composite video over twisted pair.

At the surface I have another Arduino with analogue joysticks and an LCD display for the status and telemetry. I am not attempting OSD on the video as I do not believe the Arduino on the controller is fast enough to do both that and the necessary controller functions.

It is not hard at all to wire a MAX485 directly to the Arduino RxD, TxD and one other pin for transmitter control. You will find useful code examples for handling RS485. I have written a low budget serial packet protocol for my uses that I can share if anyone wants it -- just PM me.

I'm only part way along with this project, and the water around here is all frozen at the moment, so it's all kind of on the back-burner.

ROV size.

No the rov is going to be rather small. About 10 kilos. About 30cm HWL. Thruster props are 60mm diameter and motors are pretty compact. Have a couple of ideas of solving to big cable. Remember weight of the cable doesnt matter so much. Size does.

My rov is basicly going to be used searching for shipwrecks in the norwegian fjords in combination with my boat and a side scan sonar system. Look at www.deepvision.se

Jomac_uk

interesting. The 12v -> 230v is pretty easy to get. Isnt so pricey eighter.
Going to investigate this further. :slight_smile:

karl

I certainly considered using a commercial AC inverter to pump 300 watts down to my ROV using a handful of unused CAT5 pairs. In the end I decided to just use some 18AWG speaker wire instead. Putting 240V into the water creates a whole set of safety issues that I want to keep at bay until I'm closer to completing the rest.

My umbilical requirement is only for 15 metres at the moment and I think speaker wire carrying 12 VDC will do the job.

Any advice i can offer Karl and Gardner,feel free to PM me,i do have extensive experience in this area,in commercial applications,if common sense is used,this application is no more dangerous then any other electrical application,and is simple to utilise.

John

In the past I've used 7-core towing/trailer/caravan cable instead of CAT5 where my projects current requirements exceed what CAT5 could handle.

But there are a couple of problems with this, the first is finding someone to supply 100m+ reel of 7-core towing cable and the second is its not twisted pair so comms such as RS485 signals don't work very well (if at all). RS232 could be used but at the distance (300m) you'll want to control the ROV over it may be a problem.

I agree with gardner, I wouldn't consider using 220V/230V AC in the tether unless electrical safety circuits such as a GFCI (Ground Fault Circuit Interrupter) / Circuit Breaker and LIM (Line Insulation Monitor) are used.

I am not attempting OSD on the video as I do not believe the Arduino on the controller is fast enough to do both that and the necessary controller functions.

Have you consider using a Maxim MAX7456 OSD chip. I've used it with the Arduino and there's a thread discussing it here:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1220054359/0

l

If an inverter is used,then one side of the supply isnt connected to ground via the neutral, so a device such as a GFCI or ELCB/RCB will NOT work, earthing one side of the inverters supply to enable this to work, just increases the hazard in some area's

Commercially this sort of supply is used,and so is a GFCI or ELCB/RCB but the cable is shielded and the above devices are connected to the shield +unused cores and not to ground.

If you want to send data down ordinary cable, then a technique using an FM modulated signal, superimposed onto the supply will work,these devices are similar to the CAT5 range extenders that use the mains wiring.

I think the size of the ROV in this case is quite small and would even struggle to tow 100m of CAT5

John

Yes. My small rov will probebly strugle with a 100m tether. But thats absolutely maximum operating depth. Im only sertified down to 40 meter as a diver. And I wouldnt dream of going deeper than 50m on normal air.

So.. I will try to look at object as far as 70-80 meters down. But main operating area is 20-60 meters.

In my case even using the rov with the help of a diver is interesting. Iow the diver brings the rov down to the object. And penetration of the wreck is done by the rov, not the diver. And i think its possible the last 5-10 meters of the tether can be a high end cable for ultrasonics. This will surely limit the power going down to the rov. But this will dramaticly increase the movability and battery packs will give a minimum of 1,5-2 hours of operating time.

Using fisher connections, this cable can be attached or removed before the dive.

Think that the cat5 is not the best cable in the world for things like these. But probably the cheapest one for my aplication.

The one i got is 5e stranded ftp. (bit to stiff) will probably pay for a new cable when im starting the ROV diving anyways.

The video in my case is going to sent separate. But a video overlay is very intersting. :slight_smile:

Tnx again for informative posts.

Karl

Electricity plus salt water makes green.

I actually work for a offshore navigation company and we own/use some side scans on some hydrographic surveys we have done, never seen that one in particular. I would look into gardner's project suggestion more and a stronger cabling solution, I hope when you say cat5 you ain't talking about just plain regular cat5 cable and about some kind of marine cat5 etc.