Overview on OsmocomBB software stack

The big picture

For simplicitly, this description only mentions the receive path of a GSM signal into our software. The transmit part is left out, as is the bootloading/bootstrappig part, and the various control paths especially from layer1 into the RF hardware.

First, we receive the RF signal at the antenna, pass it through the Rita mixer which does direct down-conversion into analog I/Q baseband. This in turn is sent into the baseband ADC of the Iota ABB. The resulting signal is passed to the BSP (baseband serial port) of the Calypso DBB.

GraphViz image

Inside the Calypso DBB, the digital baseband samples are passed from the BSP into the DSP core, where they are processed, demodulated, deinterleaved, decoded, etc. before being passed onto the ARM core using a shared memory interface. On the ARM core we have the OsmocomBB layer1 that processes the MAC blocks and sends them via L1CTL to the UART.

GraphViz image

On the PC itself, the L1CTL messages are received on the serial port by the osmocon program, which demultiplexes the different sercomm streams and passes L1CTL on via a unix domain socket into whatever layer23 program you may be running (e.g. mobile).

GraphViz image