“I became interested in radio communication back in the beginning of the 90s,” recalls engineer Andreas Eversberg. “Making long distance calls was very expensive in Germany, so I became interested in hacking the two existing car phone networks: B-Netz, C-Netz, and later the Danish NMT.” That interest continues to this day, though with a motivation that’s no longer financial: “Nostalgia,” Eversberg admits of the reason behind his continued experimentation in the field, “and mostly because these networks were analogue.”
That experimentation led to the creation of Osmocom-Analog, which implements a range of now long out of service analogue cellular networks as part of the wider Osmocom open-source mobile communications project. “When I started the project, I had one old B-Netz car phone in my attic. For ten years, or even more, I thought about making a base station for it. Finally, I decided to see if it is possible. I found a page on the Internet – www.oebl.de – that describes how the signalling worked on this network. I started writing a hack to send a broadcast signal using a sound card and a radio transmitter. When I picked up the car phone it started transmitting. From that point I began to develop the Osmocom-Analog software.
“It was so much fun, so I started to implement other networks. Most of my source code can be re-used for different networks, so development became faster and easier. The most challenging part was to research documentation for cellular networks. Some information I found in old documentations, books, and archives, and some were lost so I had to reverse-engineer them. Now I have dozens of old car phones and handheld phones.”
In its original incarnation Osmocom-Analog was entirely software-based, using a sound card connected via analogue audio cables to external transmitter and receiver devices. That didn’t prove the easiest approach, however. “It is hard to get a transmitter or receiver that are suitable for emulating a specific mobile network,” Eversberg explains. “Transmitters are usually made for a specific purpose (HAM, taxi) and not for setting up a base station, so a transmitter that transmits on a certain frequency is sometimes hard to find. Also, the mobile network may have different bandwidth, frequency deviation and other characteristics than the transmitter/receiver.”
Software Defined Analogue Cellular
The solution was, in hindsight, obvious: Software Defined Radio (SDR). “SDR does not have these limitations,” says Eversberg. “Also, there are some unknown parameters that must be adjusted when connecting a transceiver to a sound card. With SDR most parameters are defined by software.”
Eversberg picked the USB-connected LimeSDR, an open hardware design powered by a Lime Microsystems LMS7002M field-programmable radio frequency (FPRF) integrated circuit, to power his project. “Not many SDRs were able to transmit and receive simultaneously,” he explains of the reasons behind his choice of SDR. “If they could, they were expensive. LimeSDR was a cheap solution that covers all frequencies of all mobile networks.” Since its launch, the project has also expanded to support the smaller and lower-cost LimeSDR Mini to drive down the cost of running a base station still further.
The end result: a tool which is capable of serving as a base-station for A-Netz, B-Netz, C-Netz, NMT, AMPS, TACS, JTACS, and Radiocom 2000 analogue cellular devices, spanning the glove from German and Scandinavia to the US, UK, and Japan, long after official support for the devices had been retired. Impressively, the system allows for multiple channels while using only a single LimeSDR or LimeSDR Mini: “The I/Q data of an SDR allows to shift the frequency,” Eversberg’s documentation for the project explains. “By adding multiple frequencies, shifted by different offset, [this] allows to transmit multiple downlink channels at a time. By using a filter, the mix of received uplink channels can be separated.”
The SDR-based implementation of Osmocom-Analog is built around SoapySDR and Lime Microsystems’ open-source Lime Suite package. While running, the software can display useful information to the user including a spectrum frequency graph and an IQ view in data and vector modes – all rendered in multi-colour ASCII art at the user’s terminal. When making a call using a headset connected to the host PC, other modes display the audio waveform or the frame quality; calls can also be made from handset to handset using the Osmocom-Analog system as a pure base station.
For Eversberg, the Osmocom-Analog project is likely complete, bar one small itch. “I think it is finished,” he explains, being satisfied with its current functionality. “I still want to implement the pre-cellular MTS/IMTS networks that were used in the United States, but due to lack of hardware and documentation I was not yet able to work on it.” As for his project’s popularity: “I hope it is popular enough so that the information about analogue networks will not be forgotten.”
More information on the project can be found on the official website or the Osmocom project page, while the source code – made available under the GNU General Public Licence Version 3 – can be found on the Osmocom git repository.
Article main image © Rama (via Wikimedia-Commons), used under the