Home        Store        Docs        Blog

Parallel Raspberry Pis for TMS tether control

I’m building a custom cage TMS system, and I am utilizing a DC motor controlled drum. Almost everything is in place, my last obstacle is to find a way to reroute telemetry data to a second Raspberry Pi in the TMS, to control the tether drum with a PWM signal.

Has anyone tried anything like this before? I can’t seem to find anything like it on the forum. So my question is simple:

What’s the best way to intercept a PWM signal from the main telemetry, for use in a cage (secondary vehicle)?

My first guess would be to “clone” the incoming telemetry on the ROV’s RasPi, and reroute it to the Cage RasPi’s IP address. Is it possible to get a PWM signal directly from the RasPi’s pins built-in using ArduSub?, or do I need to use a flight controller in the cage as well? I’m hoping I can execute a custom python script on the cages Raspberry Pi when I press a button on my custom topside controller.

A rough diagram of the required telemetry:

Anyway, if anyone has any tips or experiences I would love to hear them.

1 Like

I would just use an Arduino with Ethernet shield and Ethernet switch. You’ll also need another pair of fathom PCB.

The Arduino will be able to control your motor and lights.

With the Ethernet switch you can add more devices as well such as IP cameras.

I was thinking about using an arduino with an ethernet switch, but it wasn’t clear to me how I would get an input signal from QgroundControl to execute a program on the Arduino.

This is true, I have 3ch ethernet switches in the TMS and in the ROV. Almost all my internals are network connected :slight_smile:

However, I don’t have thrusters or lights on the cage, I only have a drum motor that needs a PWM, here’s my concept render if anyone is wondering:


It’s a 149Kv BLDC with a 1:30 planetary reduction gear on the front.

Thanks for your reply and I will look further into the use of an Arduino, but I still believe that a Raspberry Pi will be easier.

1 Like

Hello again,

Nice looking gear reducer.

You won’t be able to talk to 2 RPi via qgroundcontrol.

You could have another arduino on the surface and put buttons or joystick etc and get it to talk to the arduino subsea. You would be sorted in under 50USD.

You could also make a simple software solution and have buttons on your UI and use this software to talk to the Arduino subsea.

Its not overly complex and there are a lot of code examples etc…

Good to see another TMS project, whats your plan in regards to sealing of the gear/motor?

@etienne maybe not the way that you have in mind, but QGC certainly can communicate with multiple clients on the network.

@ChristopherLyon The raspberry pi and qgc talk to each other on a network (ethernet) connection. You could add another raspberry pi to the network with an ethernet switch. You can write a program that runs on the bluerov2 and forwards any joystick inputs to the raspberry pi in your tether. Like etienne pointed out there are a variety of other approaches you could take to accomplishing this.

You will need to write some code in any event.

You mentioned using a slipring on your cage tether drum. I wonder how you intend to waterproof that.

I avoided a slipring by making my drum stationary, and winding the tether onto it with a rotating arm, like a modern fishing reel. The tether goes through the back of the drum, up inside onto the drum surface, then is wound round and round onto the drum. The arm freewheels when not powered, allowing the ROV to unwind tether from the spool. A set of rollers on the arm grip the tether gently, preventing it from birdnesting on the spool.

Since the ROV is in storage 650miles away, and the laptop i was using at the time is now a paperweight, i can’t show any build pictures. But here is a crude drawing of how my cage system looks.

I’m replacing the stock planetary gear axle with a Stainless Steel modified version. This also gives me the wiggle room for a custom shaft seal on the oil compensated motor bottle. The housing will need to be CNC’d in a Polyoxymethylene material, although I might get one made in Stainless if thermal conductivity becomes an issue. (Doubt it.) Have you also made a TMS? What was your experience?

Awesome! I’ll have a deep-dive into the Mavlink documentation asap.

That is so cool! I think that’s a very elegant solution, and had never even crossed my mind.

A healthy amount of engineering and money (unfortunately) is the answer, my friend. The TMS system is completely oil-filled and hydraulically compensated. All moving shafts have double isolated shaft-seals and the power/serial data cables are routed through flexible oil-filled Parflex tubing. It means you need to keep an eye on the compensator levels and top them up every now and then, but it gets the job done.

I’ll send some photos when the last parts of the assembly arrive from Amsterdam.