ModemManager and the Iridium satellite network
I recently sent a new ‘iridium’ plugin for review upstream, this time for Iridium modems. The plugin was developed using a Iridium 9522B Satellite Transceiver modem connected through RS232, properly handled by ModemManager’s plugin system thanks to the extended RS232 support available in git master. The ‘iridium’ plugin handles these modems as any other GSM modem, even if it has nothing to do with GSM technologies.
Iridium is a constellation of 66 active (plus spares) LEO satellites orbiting at an altitude of 781 km, which gives phone and network coverage to every point in Earth. It was initially thought to be a constellation of 77 satellites, therefore named ‘Iridium’ after the chemical element with atomic number 77. The name didn’t change to ‘Dysprosium‘ when it was redesigned to maintain only 66 active satellites, no wonder why.
Even if the Iridium modems expose a GSM-modem like AT command set, several special things needed to be considered. For example, IP address setup via PPP needed more than the 20s hardcoded in NetworkManager, due to the extreme latency of the satellite network. Therefore, NM was also updated to allow ModemManager plugins to specify a specific ‘IpTimeout’ value.
See my email to the NM mailing list for further information on how to use ModemManager with Iridium support.
Ammonit Measurement GmbH sponsoring some hardware for ModemManager development
In Lanedo we have worked with Ammonit Measurement GmbH to help them with the improvement of ModemManager to handle Wavecom, Cinterion and Iridium modems. The guys at Ammonit were kind enough to sponsor some modems, so that I can spend my free time in developing and improving ModemManager, as well as in testing the modems before stable releases (Dan will probably be happy for that):
- Sierra Wireless Fastrack Xtend FXT009 (GPRS modem, USB, handled by the ‘wavecom’ plugin)
- Cinterion TC63i (GPRS modem, RS232, handled by the ‘cinterion’ plugin)
So, thanks Ammonit!
I tried to write a tutorial focusing on the type of memory leaks as detected internally by Valgrind and the generated output leak reports.
The PDF is available in the following URL:
And the simple C tester to generate each type of memory leak (cases 1 to 9 in the Valgrind Manual) is available here:
Comments, fixes, whatever… highly appreciated. You could even send me a diff file to the original LaTeX source, available in:
The document is licensed under the GFDL 1.3, and the tester is published in the public domain.