Control system options using PLC and 2-wire tether
Posted: Aug 1st, 2023, 5:29 pm
Hi,
For my latest ROV, I have invested into 100m of purpose-built ROV tether with 2 copper core wires. I used hacked PLC modules (https://hackaday.com/2019/11/14/ethernet-over-dc-power/) to convert Ethernet signal from Raspberry Pi 3B on the ROV, and then the same on the topside controller. I really love that tether, and I want to re-use it on my next ROV, which means using PLC modules and Ethernet connection again.
Thing is, I really hate Raspberry Pi. It's a nightmare to develop on, is unpredictable, power-hungry, expensive, and bulky, forcing my ROV to be far larger than I want to. I chose Pi because at the time it seemed like the only option to have low-latency camera stream (<150ms) and simultaneous recording via Ethernet link to the controller board. I used V3 camera, and frankly the quality is horrible compared to cameras like GoPros used on other ROVs, and video stream latency is still quite large. Also, I would much more like to develop the ROV with a more compact, robust and predictable microcontroller, such as Arduino/Atmega, NodeMCU or ESP32. The problem with these is that they don't have enough processing power for cameras (ESP32-CAM does, but with unacceptable delay and bad quality), and they don't have Ethernet ports, so I can't connect them to the PLC module.
So I am thinking, perhaps I could use some IP camera, which has an Ethernet port by default - but then, how would I patch into that Ethernet connection with microcontroller to receive command signals from the topside, and transmit telemetry? I can't find any info if that is possible with IP cameras. I don't want to have a router onboard the ROV, since that would take up even more space than Raspberry Pi.
Another option I am considering is having two cameras - one for high quality recording (Go-Pro or similar), and one for low-latency streaming, but then again, I don't know how to interface that with microcontrollers and Ethernet output.
Can anyone advise on how to solve this? To summarize, my design goals are:
1) Having electronics as compact as possible;
2) No Raspberry Pi, but using a flash-able microcontroller, such as Arduino, NodeMCU or ESP32;
3) Low-latency stream and high quality video recording (recording can be done either on ROV or on topside controller)
4) Communication via 2-wire tether via PLC module that requires Ethernet as an input.
For my latest ROV, I have invested into 100m of purpose-built ROV tether with 2 copper core wires. I used hacked PLC modules (https://hackaday.com/2019/11/14/ethernet-over-dc-power/) to convert Ethernet signal from Raspberry Pi 3B on the ROV, and then the same on the topside controller. I really love that tether, and I want to re-use it on my next ROV, which means using PLC modules and Ethernet connection again.
Thing is, I really hate Raspberry Pi. It's a nightmare to develop on, is unpredictable, power-hungry, expensive, and bulky, forcing my ROV to be far larger than I want to. I chose Pi because at the time it seemed like the only option to have low-latency camera stream (<150ms) and simultaneous recording via Ethernet link to the controller board. I used V3 camera, and frankly the quality is horrible compared to cameras like GoPros used on other ROVs, and video stream latency is still quite large. Also, I would much more like to develop the ROV with a more compact, robust and predictable microcontroller, such as Arduino/Atmega, NodeMCU or ESP32. The problem with these is that they don't have enough processing power for cameras (ESP32-CAM does, but with unacceptable delay and bad quality), and they don't have Ethernet ports, so I can't connect them to the PLC module.
So I am thinking, perhaps I could use some IP camera, which has an Ethernet port by default - but then, how would I patch into that Ethernet connection with microcontroller to receive command signals from the topside, and transmit telemetry? I can't find any info if that is possible with IP cameras. I don't want to have a router onboard the ROV, since that would take up even more space than Raspberry Pi.
Another option I am considering is having two cameras - one for high quality recording (Go-Pro or similar), and one for low-latency streaming, but then again, I don't know how to interface that with microcontrollers and Ethernet output.
Can anyone advise on how to solve this? To summarize, my design goals are:
1) Having electronics as compact as possible;
2) No Raspberry Pi, but using a flash-able microcontroller, such as Arduino, NodeMCU or ESP32;
3) Low-latency stream and high quality video recording (recording can be done either on ROV or on topside controller)
4) Communication via 2-wire tether via PLC module that requires Ethernet as an input.