Hacker Newsnew | past | comments | ask | show | jobs | submit | NoiseBert69's commentslogin

Can you tell us some war stories about the software your group wrote for the satellite?

Stacks? Testing? Firmware Updates? Programming languages?

Thank you!


First - they never want to use someone else software framework again (an early SW architect decided that would accelerate things but we ended up re-writing almost all of it) and it was all C++ on the satellite. We ran linux with preempt_rt.

We wrote everything from low level drivers to the top level application and the corresponding ground software for commanding and planning as well. Going forward, we're writing everything top to bottom, just to simplify and have total ownership since we're basically there already.

For testing we hit it at multiple levels: unit test, hardware in the loop, a custom "flight software in test" we called "FIT" which executed a few different simulated mission scenarios, and we tried to hit as many fault cases as we could too. It was pretty stressful for the team tbh but they were super stoked to see how well it worked on orbit.

A big one for us in a super high resolution mission like this is the timing determinism (low latency/low jitter) of the guidance, navigation, and control (GNC) thread. Basically it needs execute on time, every cycle, for us to achieve the mission. Getting enough timing instrumentation was tough with the framework we had selected and we eventually got there, but making sure the "hot loop" didn't miss deadlines was more a function of working with that framework than any limitation of linux operating well enough in a RTOS fashion for us.


Moving fast to make launch, we had missed a harness checkout step that would’ve caught a missing comms connection into an FPGA, and it was masked because our redundant comms channel made everything look nominal.

On orbit, we fixed it by pushing an FPGA update and adding software-level switching between the channels to prove the update applied and isolate the hardware path — which worked. Broader lesson, it is possible to design a sw stack capable of making updates to traditionally burned-in components.


> it was masked because our redundant comms channel made everything look nominal.

Hah, this has bitten me often enough I check for it in test suites now - ok, you’ve proven the system works and the backup works, have you proven the primary works? Another in the long list of ways you don’t expect a system to bite you until it does…


That's why starfleet always has a secondary backup /s

>On orbit, we fixed it by pushing an FPGA update

How does that work? Do you actually VPN into an orbiting satellite? If so, how do you get a public IP for a satellite? Do you just ask an average ISP?


Why would you need a public IP? Why would you want to expose something like this to the public internet?

I have no idea what they use but there are various commonly used radio communication methods for talking to satellites.


I'm just saying that if they use a traditional IP VPN over the Internet, traffic is of course encrypted, but the two endpoints terminating the VPN must have a public IP.

Of course, this is not necessary if they simply use UHF radio signals encoding bits with pulse modulation, or whatever.

Indeed, that's indeed what I was curious about (Internet vs other channels), since at least part of their tech stack in orbit is relatively straightforward (e.g. linux with preempt_rt).


Why would you VPN here? If you did, why would you do so over the public internet? You can route IP packets over internal links, including via radio (that is the entire point of WiFi after all).

Although it occurs to me that "does your network stack employ either ethernet or IP (and what were the considerations)" might be an interesting question.


Let me dream about the one guy working remote for a satellite company and just jumping into a direct VPN with a satellite, won't you? :)

All kidding aside, there are some protocols, like FTP or RTSP, which don't play well with NAT because they include IP addresses in the payload itself. Some solutions exist (so called ALG) but they are often fragile. If the satellite was using some of these protocols to talk to something on a public cloud platform (say, send images via FTP to an EC2 VM), satellites could have a public address to avoid NAT issues, and that point you could also use it as a management address (although maybe only as a backup path).

It's a bit far fetched, but when it comes to satellites, you could say "sky is the limit" :)

EDIT

I admit public IP addresses are a bit unlikely (but... who knows!). However, this picture on their website (https://cdn.prod.website-files.com/64529e978a785fb5da715f99/...) clearly shows a Grafana dashboard.

Ignoring for a moment the fact that Grafana could be self-hosted or in SaaS, Grafana is heavily used to collect logs and metrics from standard servers.

Of course, maybe they built their own integrations to convert raw logs and metrics sent via plain pulse modulation to plain syslog and Prometheus metrics, but maybe it's just that they're using (probably private) IP addresses on board and they are simply streaming logs and metrics to the ground using standard TCP/UDP protocols.


> it is possible to design a sw stack capable of making updates to traditionally burned-in components.

This is interesting - is the software stack essentially acting as "light" translation layer or abstraction layer on components?


Journalism at its best.

Beautiful pictures and an interesting text.


Meshtastic has a reliability problem. We often cannot get beyond one hop - and our network isn't too loose nor too dense (60 stations).

Cross test with Meshcore doesn't show any issues. Chats over 5 hops have almost a 100% success rate.

Long time I avoided MC because of its closed source client - but a Opensource Flutter app for Apple/iPhone is slowly getting usable and stable. (https://github.com/zjs81/meshcore-open)


Honest question, as I've just recently started fiddling with Meshtastic: could it be that the mesh is not set up correctly for a dense environment? (e.g. using LongFast rather than MediumFast, or not having more nodes configured as client_mute?) I know the conditions may be wildly different, but just as an example, the guy in this video says he saw no big issues on a hamvention with 300+ nodes: https://www.youtube.com/watch?v=aBfHAPpjtk4

We are not seeing a correlation between channel saturation and/or alien non-related stations.

IMHO MT has a fundamental algorithmic flaw when it comes to dealing with very unreliable and lossy links.


Sounds good. But there are ~10x fewer nodes in my area :(

The nearest Meshtastic and Meshcore nodes to me are 20 km away over hilly granite terrain.

Anyway how would either network fare in the Iranian situation where the authorities are actively trying to shutdown communications? Sure the authorities could simply flood the network with traffic.


I've tested >60km links with Meshtastic without problems and had plenty of SNR left.

You can build a Meshcore/-tastic station for less than 15€ if you are into PCB design. It's like fighting against off-the-shelf drones.

The decision that every station is always a (delayed) router was a bad one. Also the old firmware was super chatty eating a lot of valuable ISM TX time.

They must clean up their role mess and switch to a "all clients are totally quiet - until they are set to a different mode for a reason"-strategy.


FYI: Meshtastic has "CLIENT_MUTE" and "CLIENT_BASE" roles to help with this, though they do recommend using the normal "CLIENT" role (which routes traffic) as the default. https://meshtastic.org/blog/choosing-the-right-device-role/

Eh, Meshtastic was originally for sparse off grid comms less than big public networks. In that role (which is still what I mostly use Meshtastic for) every client repeating messages makes more sense.

All Semtech LoRa modems are wide-range modems. You can switch to basically every other frequency.

An idea would be to move to SX128x modems with work around 2.4GHz. You recycle Wifi-gear for directional stuff. This also enabled you to hide below Wifi traffic.

Still jammable - but much much more difficult.


There is Mesh(core|tastic) around. Both use LoRa.

With tiny solar repeater that placed on a strategic hill you can cover lots of kilometers. Being sensitive down to -145dBm opens a lot of doors.

I was able to build energy harvester nodes that fit into 5cm x 5cm x 4cm boxes that roughly cost around 20€. Without energy harvesting capability with a normal TI BQ wide range charge controllers (that stuff costs $1.5-2.5@pcs and eats every power source up to 18V! With pseudo-MPPT!) you can bring the entire thing down to <<15€. That's mass producable throw-away stuff.

Currently available LoRa-gear is either USB-power optimized (looking at you Heltec) or just awfully overpriced as soon as a solar panel is attached to it.


You also make yourself a bright shining beacon to anybody looking for a resistance network because Lora operates on very specific frequencies. It would be easy to spot you with an RF scanner.

Obviously, put that relay node on a hill, on some structure where you don't live. Or maybe on the roof of your tall apartment building, among all the satellite dishes and their associated boxes. Pretend to be one of those.

If it's a self-contained, solar-powered node, it needs not be next to you, or to anyone. It should be safe and secure, to be of use during a natural disaster, or an outburst of violence.


Until you actually need to use it. You need to get the data you want to transmit over to it. Where you'll either have another transmitter at your location. A cable snaking back to your location. Or a directional antenna pointed at your location.

Unless you plan to manually go up the hill with a flash drive each time.


Any licensed wireless networking gear is going to operate in very specific frequencies. The government requires it! If we were going for "the best" gear for avoiding detection you would have frequency hopping with jumps far enough apart that a listener has a harder time pinpointing a transmitter. Making repeaters roving makes it even harder for your adversary.

The same government can trivially make these frequencies completely unusable by just blasting noise across all the ISM frequency bands. As far as I read, it is already happening in Russia, making LoRA anything but long-range...

If the place you are at is at that point in the conflict, RF scanners are the least of your worries.

Semtech LoRa Modems are wide frequency range modems. Latest generation also supports (non-LoRa) frequency hopping.

The signals are difficult to spot once you are in some distance to the transmitter.


I guess if you're protesting against the government, you don't have to comply with regulations and can use more power and basically the entire spectrum :)

But better having the government shooting down your 10€ ballo.. node with a F-35 instead of a 50€ node.

If you have the government as adversary and no military force to back it up, you might want to reconsider doing that as it makes you very detectable from far away.

And instead of "just" getting teargassed and sent home, you get thrown to a concentration camp for organizing communications for the domestic terrorists there to overthrow the government, attack ICE, <insert whatever you want here, something you're pro- or against>.

Meshtastic citywide nets use a single frequency. Jamming it is trivial.

Even more trivial to flood with garbage traffic, as the whole network will amplify your attack.

LoRa locally is often installed/managed by municipal governments.

It's mostly LoRaWAN which is great for very-low-rate telemetry and very simple control tasks.

Chinese + ESA contributions


China + ESA + Max Planck Institute for Extraterrestrial Physics (MPE) + Centro Nacional de Estudios Espaciales (CNES) contributions


I've - sadly - seen different things in Germany a few times.

Lots of students have basically zero interest in that stuff. With the exception of the usual group of nerds.

Radio call at a school with an Arctic research station? The organizers from our local club even begged members to come.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: