Dear Osmocom community,
I would like to share some good news about development of SDR PHY for OsmocomBB. In a few words: I was managed to make xCCH and SCH decoding work, so the ccch_scan application works now!
As already pointed out, I use GNURadio and GR-GSM as a back-end for signal processing (burst detection and demodulation). Despite GR-GSM provides some blocks for decoding bursts into L2 packets, there are some reasons why I don't use them:
- First of all, I would like to keep OsmocomBB compatible with OsmoTRX, which can only work with raw GSM bursts. Moreover, one already has TX capability and better stability.
- GR-GSM is only capable to decode xCCH and TCH/F. Other logical channels (like TCH/H and PDTCH) aren't supported yet.
- GR-GSM uses decoding implementation from OpenBTS project, which has lower performance / code quality than implementation from libosmocoding. BTW: Piotr Krysik was working on this issue, and some work, related to libosmocoding migration, already done, but not finished for now.
So, we have a simple GR-GSM follow graph, which sends GSM bursts and some corresponding info (RSSI, frame number, timeslot index) to the application I am currently working on - trxcon. I have migrated and a bit modified TDMA scheduler from OsmoBTS project. At the moment, the application is capable to collect xCCH and SCH bursts, decode them and send to higher layer applications (L2 & L3) via L1CTL link.
Regarding to L1CTL protocol, trxcon handles the following requests:
- L1CTL_RESET_REQ - L1CTL_FBSB_REQ - L1CTL_CCCH_MODE_REQ - L1CTL_ECHO_REQ
All the results of my work may be found here:
https://github.com/axilirator/gr-gsm/tree/fixeria/trx http://git.osmocom.org/osmocom-bb/log/?h=fixeria/sdr_phy
If someone would like to test, one will need:
- GNURadio framework - gr-osmosdr - Custom GR-GSM with 'TRX Interface' block (link above) - fixeria/sdr_phy branch of OsmocomBB (link above) - SDR device supported by gr-osmosdr
Regarding to the latest requirement, UmTRX board requires external power source / active cooling, and takes some space on my table, so I use RTL-SDR. Sounds crazy, but OsmocomBB works on RTL-SDR ;) One could be used until TX capabilities are implemented.
With best regards, Vadim Yanitskiy.