Over on his YouTube channel TechMinds has uploaded a new video showing how to decode signals from Orbcomm satellites. Orbcomm run a global network of low earth orbit satellites that perform services such as Internet of Things (IoT), Machine 2 Machine (M2M) communications, asset tracking, utilities telemetry, government communications and much more. The signals can be received at around 137 MHz.
In the video he explains how the private client data is encrypted, however it is possible to at least see the encrypted data coming down, and decode some of the data management information such as the transmitted uplink frequencies using a program called Orbcomm Plotter. Ultimately, the data available is quite boring to monitor, however decoding these satellites is still an interesting exercise.
Decoding Orbcomm Satellite Transmissions Using Software Defined Radio
Thank you to Frank for submitting his new RTL-SDR compatible Orbcomm Satellite monitor software called "Orbcomm Receiver". Orbcomm is a low earth orbit satellite communications system that operates in the 137 - 138 MHz frequency range. The satellites specialize in remote IoT and machine to machine (M2M) connectivity, an example use case being a GPS tracker on a shipping container regularly uploading GPS coordinates from anywhere in the world via the Orbcomm satellites. Orbcomm satellite signals are fairly strong and can easily be received with an RTL-SDR and V-Dipole antenna.
We haven't posted about Orbcomm on this blog since 2015 since there is not many interesting things to say about it. The data is all encrypted, and the only information you can really see is Orbcomm satellite ID, frequency and positioning data. Franks software doesn't change this fact, but his software is all open source, so it may be a useful tool for learning about satellite signal DSP processing. Frank writes:
There are a couple different projects out there to decode ORBCOMM signals (Orbcomm-Plotter and MultiPSK). What makes my project different from these is that I wrote it as a learning project. So all of the signal processing, written in Python, is available to the user and is decently documented. I hope this can be a good learning resource for people who want to see a practical example of satellite communications signal processing. Also, my software is open source and free to use.
Currently, the software can do offline or real-time decoding of a single ORBCOMM downlink channel. The transmitted bits of the ORBCOMM signal are demodulated and when the packet type is known, the packet information is decoded. There are a lot of ORBCOMM packets that can't be decoded and of course the message data is encrypted so that information is not available. But, there is still a ton of interesting information available.
The project is still in development so it has some limitations. For real-time recordings, I only support RTLSDRs currently. Also, I'm having trouble getting the real-time processing to work on mac OS, so currently that mode is only supported on linux. However, I have included a couple data files in the repo, so even without an SDR, users can experiment with the signal processing. I welcome any bug reports or suggestions.
MultiPSK is a signals decoding program with many available decoders to choose from. It is also able to directly connect to the RTL-SDR, or be used via a virtual audio cable. The latest beta version (available on the MultiPSK Yahoo mailing list) now allows for decoding of Orbcomm satellites which transmit at around 137 MHz. While it is not possible to decode the encrypted messages, it is still possible to decode pieces of telemetry data from the satellites. MultiPSK writes the following information about Orbcomm:
This system has been developed by the ORBCOMM society which disposes of a constellation of about 28 active LEO (“Low Earth Orbit”) satellites, transmitting between 137.2 and 137.8 MHz (+/- 2.5 KHz maximum of Doppler shift).
This system permits:
to handle messages (encrypted) from ground users (ships, trucks, oil wells…) until other ground users, through the ORBCOMM satellites, the cover being worldwide. These frames are decoded by Multipsk but not deciphered.
to broadcast identification, frequencies, position and orbital elements pieces of information, not encrypted. These frames are decoded and interpreted by Multipsk.
This mode is available for licencied copies, only (otherwise, the decoding is stopped after 5 minutes).
One user of MultiPSK has uploaded a video showing the Orbcomm decoding in action.
YouTube user Drvarnick has uploaded a video showing how he receives Orbcomm satellite data with the RTL-SDR. To do this he uses a a homemade 1/4 wave antenna, SDR# and the Orbcomm-Plotter software by COAA.
COAA describes Orbcomm satellites as
a satellite communication system (www.orbcomm.com) providing two-way data and positioning service to small, portable user terminals in the VHF frequency bands. You can use a simple VHF radio receiver (scanner) tuned to the band between 137 and 138 MHz to pick up the strong signals from these satellites. With OrbcommPlotter you can decode the telemetry and find out the positions of the satellites, their operational status and their uplink and downlink channels. Unlike most satellite signals, there are so many Orbcomm satellites that there is likely to be one within range of almost any spot on Earth at any time of the day or night.