ArduRover + PixHawk + GPS RTK WITHOUT telemetry: 4G connection

At the risk of beating a dead horse… (and hopefully to help someone who comes along afterward and reads this thread),

str2str -in serial://ttyUSB1:115200 -out ntrips://:12345/BASE

will set up an ntrip server on a local port - to which an ntrip caster can connect to source the corrections which str2str is reading from the serial port. This is useful if someone has an ntrip caster they need to feed data to and that ntrip caster will make an outgoing connection request to the str2str machine. Which as I understand it is not very common.

To push corrections to rtk2go.com using str2str, these flags worked for me. These flags cause str2str to initiate a connection request to the rtk2go.com caster and start pushing rtcm data to that caster, and that caster published those corrections on the “SandySpringMD” mountpoint.

str2str -in serial://ttyUSB0:115200:8:n:1 -out ntrips://username:password@rtk2go.com:2101/SandySpringMD

Note: I abandoned this approach (so, the SandySpringMD mountpoint on rtk2go.com isn’t present any more).

When I took rtk2go.com out of the loop(as discussed above) I used these flags:

str2str -in serial://ttyUSB0:115200:8:n:1 -out tcpsvr://:2101

will set up an tcpip server on a local port - to which any program can connect using plain old tcp socket - and str2str will push the correction data over that tcp socket. As described above I wrote a python program which runs on each rover, opens a tcpip socket to the str2str machine, reads data from that socket, and forwards it to the mavproxy instance running on the rover (… and mavproxy forwards that info to the pixhawk+ardurover).

Indeed, I do understand the architecture, I just thought I stumbled upon a way to leverage str2str in a way that cut out the middleman (via suggestion on another forum that was in error). It was a really weird way to use str2str.

Glad you found a way around it. TCP or UDP are certainly preferable for the local use case. I usually just use socat or ser2net (or an internal library with direct port access, in the case of Python or NodeJS) for that rather than bothering with streaming via str2str.