We’re discussing various ways to transfer files using the Iridium satellite network from our gizmo floating around in the ocean to shore. We have a lot of experience with Iridium and it is pretty much the only choice for our needs. Speed isn’t the issue since Iridium is only 2400 baud. We do need robust error detection and re-transmission of bad packets. Our files are typically in the 40KByte to 100KByte size range. We do lose the Iridium connection for minutes at a time on a regular basis so being able to pick up a transfer without starting at the beginning after losing the link is important. Another factor is Iridium probably has an error rate several orders of magnitude higher than most other connections.
We’ve looked at a variety of protocols and are leaning toward porting Industrial ZModem ( http://www.omen.com/ind.html ) to C#. This is do-able but won’t be easy because iZModem uses a variety of tricky bits that work in C but aren’t available in C#.
We haven’t been able to find a C# version of ZModem, does anyone know of one?
Is NETMF FTP a better choice for Iridium? (maybe the one under discussion in https://www.ghielectronics.com/community/forum/topic?id=14270 )
I’d value any input.
Is this a serial data call or an IP call to an static IP address?
@ hagster - Kind of both. As far as the NETMF hardware and software know, it is just a series of reads and writes from a file to a serial port. However, Iridium delivers the data to an IP address where we need to be running the necessary receive software.
@ gene I haven’t heard of this issue before. I’ve know lots of sessions to be dropped, but generally data that gets through is correct or nothing.
Having a good antenna located as high as possible with a good view to the horizon helps. As well as having a short good low loss rf cable.
@ hagster - You are probably right. We know we drop connections regularly however the actual Bit Error Rate is pretty much a guess on our part.
Our geometry is as far from optimal as you can get. Our float is about 20cm in diameter and will pitch and roll +/- 20 degrees with a 10-20 second period. The antenna is less than 30 cm off the sea surface. The only good news is that makes the coax cable run short.
What sort of antenna are you using. The GPS style patches have a null at 0degrees elevation. A more monopole(quad helix) style might be better.
Here’s the antenna we’re currently using.
This is one of the very few commercially available submersible antennas and it uses 2 helix antenna elements stacked vertically with the Iridium on top. Not a great orientation but it is what’s available.
I’m building my own submersible antennas now since the choice of COTS antennas is so limited. I’m using this
The reduced gain of a patch at angles between 0 and 20 (or so) degrees above the horizon isn’t much of an issue for us since the platform pitching and rolling pretty much negates the use of any satellites near the horizon.
You don’t get a choice of only using high elevation says with iridium. They are LEO birds so the elevation changes very quickly and handovers are very frequent. This is especially a problem nearer the equator where you can be between orbital planes. In these cases the sats might never get very high at all.
Antcom antennas are very good and completely waterproof. I doubt the quality of some cheaper ones(I’ve not tried the ones you are using), especially when it comes to achieving good circular polarisation. It doesn’t matter too much these days with GPS as the receivers are so good now you can get away with anything, but iridiuim is a bit more fragile.
Have a look at page 81 of the antcom iridium antenna catalogue. Designed for “high degree of movement applications”. They have a nice cardiod pattern and good gain+polorization down to 0deg.
Thanks for the input. I’m very familiar with Antcom and use them when I have a surface only application. The Tallysman antennas are equally well engineered at least to my eye and designed to be embedded in a customer’s housing which is our situation. Unfortunately in this case, the antenna has to survive 100s of dives to 500 meters and Antcom doesn’t really have an antenna that can survive the pressure. I completely agree, GPS is pretty much routine these days. Iridium is a PITA.
I would like to get back to the original question of what, if any, existing protocol makes sense for a 2400 baud satellite link. If anyone has input on FTP, ZModem or whatever on NETMF, I’d like to hear it.
@ Gene - just curious… did you consider Inmarsat - C as an alternative to Iridium?
@ jasdev - Yup. We use Inmarsat in a variety of ways on our research vessels. The equipment is way too big for our itty-bitty floats.
Doesn’t FTP use TCP and doesn’t TCP use a CRC?
And another question: Industrial ZModem requires the ability to deal with a break character. I can’t tell if the NETMF serial port driver handles break characters. Does anyone know?
OK, thanks for all the input. I’m leaning toward Industrial ZModem primarily because I think it will be the simplest more robust approach after we suffer through the one time pain of porting it to C#. Thanks to C# I barely remember what a pointer is and now I’ll have to deal with them again.