Show HN: I built a Iridium/LTE satellite GPS tracker and took it to the Arctic
211 points
2 months ago
| 12 comments
| github.com
| HN
KMnO4
2 months ago
[-]
For anyone else wondering, the satellite transceiver is a RockBoard, which charges:

- $302 for the hardware

- $17/month for a “line fee”

- $0.20/message (50 characters)

Would be nice if there was an actually affordable, programmable Iridium device.

reply
wkat4242
2 months ago
[-]
The keyword of the problem there is Iridium. Their SBD (short burst data) and in fact all their services are just extremely expensive. This reseller doesn't really seem to put much margin on it.

When I had a sat phone (needed to travel sometimes to questionable places for work) I used Thuraya which is much cheaper for airtime. 40€ gets you a whole year's worth of inbound service (airtime) and about 15 mins of call credit for outbound. With iridium that gets you about one month.

But Thuraya only had 2 active sats. One geostationary over the middle east and one over the far east. No service over the Americas. The Asian one failed early this year and the coverage for the region which can't be met by the other one is now inoperable.

The middle east sat is actually beyond its planned service life and if it goes down there's no immediate backup. Though a replacement is ready for launch according to Wikipedia. You also need visibility of the southern horizon (or northern, if you're in the southern hemisphere). So for hiking in valleys it's not a good bet. The same goes for Inmarsat for that matter. But they do have more sats.

Iridium in contrast is fully worldwide, has a robust constellation of many low earth orbit sats that move across the sky so you don't need to see a fixed point. It's more robust for emergencies. But the price is much higher. It's a trade-off. You get what you pay for.

As I no longer travel for work but do hike, I ditched the Thuraya and got a Garmin InReach which runs on iridium. But that costs more than Thuraya even though it can only send messages. Though with their latest cost increase I might just drop it and find something cheaper. Maybe Starlink direct to cell.

reply
myself248
2 months ago
[-]
It's really a shame. Iridium could sell best-effort hobbyist-grade service in their excess capacity, which would get the hardware into people's hands, but they don't.

Cynically I assume this is because it would be no different than their expensive service in practice, and cannibalize their premium offerings.

reply
wkat4242
2 months ago
[-]
Yeah there were some other hobbyist-friendly budget offerings like swarm but they were acquired by starlink and pretty much deprecated.
reply
causal
2 months ago
[-]
I've been wondering how Iridium costs are tallied.

Recently had two calls with an Iridium phone, one sent and one received, about 1 minute each. T-Mobile charged me $50 for those.

I found it very odd - it seemed like Iridium was somehow passing the call fees onto me, but I can't be sure because the T-Mobile rep I chatted with was unable to comprehend the situation (I suspect I was talking to an LLM, but it ultimately gave me a $30 rebate at least).

reply
lxgr
2 months ago
[-]
Receiving calls from Iridium should be free – the caller usually pays for the satellite portion of the call.

That usually makes Iridium -> terrestrial calls much more economical than the other way around, as telcos usually use the opportunity of terrestrial -> satcom calls to add on ridiculous margins. Conversely, satellite -> terrestrial calling is usually around a dollar per minute or less, these days.

In your situation, that would come out to a $50 (or maybe $25) charge per minute. Hefty, but that indeed seems to be at least in the ballpark of their listed rates (for prepaid here, for example: https://prepaid.t-mobile.com/connect/international-calling-r...).

reply
causal
2 months ago
[-]
Nice - thanks for digging. I'm guessing you're right, iirc it rounded up the number of minutes.
reply
slaucon
2 months ago
[-]
I’ve had to make and pay for an unfortunate number of Iridium calls. They can be crazy expensive depending on carrier, who all bill them as a call to an international line in the country of “Satellite”. Usually you pay your carrier’s fee for outgoing and it’s cheaper/free to receive the calls.

It seems like cell carriers always charge more per minute for satellite calls than any satellite provider does, so I’m guessing they just set their rates conservatively to always make a profit on their end. And the demand for satellite calls seems like it would be pretty inelastic.

reply
Scoundreller
2 months ago
[-]
This is why iridium supports calling their regular PSTN gateway and then dialing the satellite number recipient, then the satellite recipient pays a more palatable $1.50/minute:

https://apollosat.com/support/iridium-two-stage-dialing/

reply
0xffff2
2 months ago
[-]
I've always assumed that answering a phone call would be free for me (excepting the dawn of cell phones when they had a limited number of minutes per month). If answering a sat-phone call is "cheaper" rather than free, does anything warn me that I'm incurring extra charges?
reply
LeoPanthera
2 months ago
[-]
Paying to receive a call seems to a mostly American phenomenon. In most (all?) of Europe, receiving calls is always free, no matter where or how they originate.
reply
themoonisachees
2 months ago
[-]
I think now this is correct due to European laws, but not that long ago, if you were not in your home country and someone called you, you could be billed for the international part of the call. Nowadays the agreements telcos were forced to put in place means this is largely solved in the EU, and quite cheap outside of it.
reply
therein
2 months ago
[-]
You can actually achieve this even with Iridium Go. I tried it years ago and it worked.

It isn't too documented, or let me say it isn't documented at all but you can write AT commands and start raw TCP connections and read and write to that socket.

And it is actually reasonably priced. I tried to open SSH connections and it was barely usable. You get a very small number of bits per second.

Edit: Found the private repo I had created back then in case anyone has any interest. It looks like I did something like this:

    func (sess *IridiumGoSession) ActivateDataWithCustomSettings() (*PerformTaskResponse, error) {
     return sess.PerformTask("2",
      MakeOption("set state", "true", "bool"),
      MakeOption("Firewall allow all traffic", "false", "bool"),
      MakeOption("Firewall exceptions", "XXX.XXX.XXX.XXX-all-tcp", "bool"),
      MakeOption("Enable DNS forwarding", "false", "bool"),
      MakeOption("Dial number", "0088160000330", "bool"),
     )
    }
Need to replace `XXX.XXX.XXX.XXX` with the IP you want to establish a connection to. And I don't know where I got 0088160000330 from. I guess that's the internet call number.
reply
anthk
2 months ago
[-]
Mosh will be much faster.
reply
GlibMonkeyDeath
2 months ago
[-]
Indeed - a Garmin InReach is about US $500 and already ruggedized and tested. I understand the DIY aspect of this project is the fun part, but it definitely isn't a way to save money.
reply
stilldavid
2 months ago
[-]
With a robust used market, as well. I laughed at the battery life goals for this - the inreach mini I use lasts _days_.
reply
matrix2003
2 months ago
[-]
Depending on how you look at it, Starlink can be incredibly cheap compared to Iridium. It’s still not cheap from where I’m sitting in my clapped out Honda Civic, though.

Edit: I think $250 for 50GB of truly global data. I can’t do the math right now, but it seems like a better deal at face value.

reply
lxgr
2 months ago
[-]
$50/month, these days, if I'm not mistaken. (You can only use it abroad for two months at a time, but you can update your location as as far as I'm aware, and it's $/€ 50 in most places.)

Price wise, it's no comparison, but the two don't directly compete yet – power usage and antenna size of Iridium and Starlink are orders of magnitude apart (largely due to the L-band spectrum available to Iridium globally).

reply
matrix2003
2 months ago
[-]
The higher rate gets you oceanic use, which is a big benefit of iridium.

You are correct that it can be $50, but AFAIK that’s a different plan that is land or near-land only.

reply
lxgr
2 months ago
[-]
Ah yes, good point.

I believe the $50 plan used to have a pay-per-GB option for offshore use – $2 or so per GB, compared to $5 and more per MB for the competitors. But even at 300 or so, it’s orders of magnitude better for high-bandwidth use cases.

reply
cyberax
2 months ago
[-]
> Depending on how you look at it, Starlink can be incredibly cheap compared to Iridium.

They don't have sat-to-sat communications deployed yet, so they can work only near the ground stations.

reply
dotnet00
2 months ago
[-]
Hmm? Starlink has had sat-to-sat active for a while now. They've been making a killing selling services to ships and planes lately.
reply
matrix2003
2 months ago
[-]
The laser interlinks have been turned on.
reply
nirav72
2 months ago
[-]
They have sat-to-sat now. I was on a cruise ship this past summer that used starlink. I was able to get a consistent 3-5 mbps up/down in the middle of the ocean with nearest land at least several hundred miles away.
reply
matrix2003
2 months ago
[-]
> Would be nice if there was an actually affordable, programmable Iridium device.

I remember reading about this a while back, but doesn’t SpaceX offer some kind of IoT modem for a low cost (not the Starlink dishes)

reply
atlgator
2 months ago
[-]
Where did you buy Iridium access for $17/month?
reply
ac29
2 months ago
[-]
reply
jviotti
2 months ago
[-]
Great stuff! I'm starting to work a lot on the satellite space (https://www.sourcemeta.com), building a binary serialization format around JSON called JSON BinPack (https://jsonbinpack.sourcemeta.com) that is extremely space-efficient to pack more documents in the same Iridium uplink/downlink operation (up to 74% more compact than Protocol Buffers. See reproducible benchmark here: https://arxiv.org/abs/2211.12799).

It is still a heavy work in progress, but if anybody here is suffering from expensive Iridium bills, I would love to connect and discuss to make sure JSON BinPack is built the right way!

reply
thadt
2 months ago
[-]
Hey Juan, this looks promising - using a pre-shared schema would allow you to reduce payload sizes in the same way using pre-shared dictionaries makes compression more efficient (such as with zstd or brotli). Having worked on exactly this space in the past (sending and receiving messages from a microcontroller that eventually go through an Iridium SBD modem), some feedback:

After spending a few minutes poking around your landing page, I'm not sure how JSON BinPack works. I see a JSON Schema, a JSON document and then a payload, but I'd be interested in the low level details of how I get from a schema to a payload. When I'm on a microcontroller, I'm going to care quite a bit about the code that has to run to make that, and also the code that's receiving it. Is this something I could hand-jam on the micro, and then decode with a nice schema on the receiving side? Understanding the path from code and data to serialized payload would be important to me.

One thing that was nice about using ProtocolBuffers for this was that I had libraries at hand to encode/decode messages in several different languages (which were used) - what is the roadmap or current language support?

I can understand how ProtocolBuffers handles schema evolution, but I'm still not sure how JSON Schema evolution would work with JSON BinPack. An example would move mountains.

Finally, if I were digging into this and found it had switched from Apache to AGPL, and required a commercial license, it would be a hard sell vs all the permissively licensed alternatives. At the end of the day, Iridium SBD messages are like 270 bytes and even hand rolling a binary format is pretty manageable. I think I could swing budget for support, consulting, maintenance or some other service. But if I were evaluating this back when I needed a serialization format, and ran into AGPL, I would bounce almost immediately.

reply
jviotti
2 months ago
[-]
Thanks for the very valuable and honest feedback. All really good points, mainly how lacking the website is in terms of documentation at the moment. Making notes and plan to address all of it!
reply
thunder-blue-3
2 months ago
[-]
Hearing about Iridium reminded me of how excited I was to take on a job managing 5 engineers for them, until they offered me a base salary of $135,000 in Phoenix. They work on incredibly cool technology—I'm bummed I had to pass it up to work for some garbage web-focused tech company becayse Iridium pays pennies on the dollar to their engineering department.
reply
diggan
2 months ago
[-]
> until they offered me a base salary of $135,000 in Phoenix

It's crazy to me that $11,250/month could be considered low for a comfy job like engineering manager, especially if the work is interesting. The cost of living in Phoenix must be through the roof?

reply
hollerith
2 months ago
[-]
If he has a wife and dependent children, he probably cares more about always being able to provide for them than about how appealing or satisfying his work is -- regardless of the cost of living in Phoenix.
reply
diggan
2 months ago
[-]
Can you not survive (and even live a pretty above average/good life) with a family on $11,250/month?
reply
hollerith
2 months ago
[-]
Yes, one can, but--

You don't have children, do you?

reply
diggan
2 months ago
[-]
I don't, but I have friends with families that survive on way less than half of that.

You're never experienced life within working/middle class, have you?

Maybe, just maybe, we live in different parts of the world with very different levels of salary and/or cost of living.

reply
hollerith
2 months ago
[-]
This conversation started[1] as an attempt to understand why a particular person made a particular choice about a job. You are letting your emotions (or maybe your social ideals or ethical principles) prevent you from understanding the situation from this particular person's point of view. Even if his annual income is $135,000, it can be rational and ethical to sacrifice some aspects of job satisfaction for even more income, e.g., if he is responsible for the economic security of an entire family.

[1] https://news.ycombinator.com/item?id=41769450

Money is very useful, particularly for avoiding or recovering from the 100s of kinds of catastrophes than can befall a person, and even in the wealthiest parts of the world, most people's lives would be more secure and better if they had more money.

reply
diggan
2 months ago
[-]
> prevent you from understanding the situation from this particular person's point of view

I'm not, because you're not that person, you're a different person, who for some reason is trying to answer for them, while not actually knowing the reason. What's preventing me from knowing the reason is that person not answering to the question. Then it's not a life-or-death situation for me if they answer or not.

> Even if his annual income is $135,000, it can be rational and ethical to sacrifice some aspects of job satisfaction for even more income, e.g., if he is responsible for the economic security of an entire family.

Absolutely, I don't disagree with that. I disagree with the notion that this person cannot answer for themselves, and you have to somehow assume how my living situation is, when that's pretty far away from the topic.

I did lose my cool a bit when you asked me an irrelevant question, and then I replied with an irrelevant question myself just to show how off-topic all of that is. I'm sorry for letting my emotions get the best of me.

reply
0xffff2
2 months ago
[-]
Is it just me, or does the wording of this comment imply that you passed up the Iridium job to work somewhere else that underpays their engineers? Seems like you meant to imply the opposite.
reply
supportengineer
2 months ago
[-]
I think it's clear he has to work for the "garbage" company because it paid more than Iridium did
reply
barkerja
2 months ago
[-]
The opposite. Op would have preferred to work at Iridium, if only they offered higher pay compared to where they are currently.
reply
thunder-blue-3
2 months ago
[-]
yeah I meant Iridium pays pennies on the dollar -
reply
amlozano
2 months ago
[-]
This is a very cool project, happy to see the costs of this stuff coming down a little bit.

When I was an intern 15 years ago I worked on a software library for this https://www.embeddedts.com/products/TS-IRIDIUM Board that does a similar thing (though you would need to stack on a cellular board if you wanted cell modems).

We used them to help Arizona Department of Transportation collect traffic data in remote locations.

We had big plans at that company to make a much smaller, much cheaper 9602 transceiver replacement, but the company got bought out before that could launch.

reply
xadren
2 months ago
[-]
Very cool project! The company I work for is building a similar sat/cell GPS tracker for civil aviation. In fact we're using the same GPS and Iridium modules.

The costs for satellite SBD messages is definitely eye-watering though. Our device transmits position data every 2 minutes while relying on satellite connections, which we definitely notice the costs of during development. We'd like to look at other providers, but for various reasons (excluding costs) they end up being less ideal than Iridium.

reply
thadt
2 months ago
[-]
Ah, that's cool. We built a similar system using Iridium SBD and LTE for controlling drones a few years back. SBD isn't the fastest comms around, and it can get rough if you don't have clear sky view, but it works pretty much everywhere, with a small antenna. If you don't have line of sight or LTE, it's a solid fallback.
reply
LeoPanthera
2 months ago
[-]
If you have an amateur radio license, a small HF transmitter would probably successfully send a signal to a receiver on land most of the time, and of course wouldn't cost anything.

HF propagation does vary over time, but you could send a signal far more often to make up for it.

reply
fellerts
2 months ago
[-]
Fun project! Did you look into NTN (Non-Terrestrial Networks) capable modules as an alternative to Iridium? I haven't played with NTN myself, but it seems modules such as SIM7070G-HP-S support LTE-M/NB-IoT as well as NTN networks, and could in theory serve the purpose of your Iridium tranceiver as well as your LTE module. This technology hasn't matured yet, and I suspect the roaming tarriffs are expensive, but I don't know how it compares to Iridium.
reply
lxgr
2 months ago
[-]
NTN seems to be only offered by geostationary satellite operators at this point, which unfortunately puts the use case from TFA out of coverage. See for example Inmarsat's coverage: https://www.inmarsat.com/content/dam/inmarsat/corporate/core...

I'm not even sure if Skylo is live with Inmarsat at this point, or if there are any other NTN providers covering oceans.

reply
polishdude20
2 months ago
[-]
>The ultimate motivator for building this project was the opportunity to join the crew of the S/Y Southern Star yacht, which sails in the Arctic.

Anyone know how he got this opportunity? I'd love to join something like this if all I had to do was make a cool Iridium transmitter!

reply
tylergetsay
2 months ago
[-]
saveitforparts on youtube recently setup an old satellite terminal and went through the pricing of doing so, its expensive.

https://www.youtube.com/watch?v=yzTPZLtmSOM&t=664s

reply
keepamovin
2 months ago
[-]
This is so cool! Thanks for sharing and creating something like this :) BTW do you use Iridium handsets? Do you have recommendations?
reply
lxgr
2 months ago
[-]
OP is using Iridium SBD according to the article, specifically this modem: https://www.groundcontrol.com/product/rockblock-9603-compact...
reply
keepamovin
2 months ago
[-]
Oh ok, I mean I got they were using some special build for the project. But based on them saying "I often go all around the world" (to the effect of that), seemed they'd probably be using handsets, outside of the article.
reply
lormayna
2 months ago
[-]
Why not trying using something like WSPR? It really depends from the propagation conditions, but it would be interesting IMHO
reply