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.
Really cool hack - nice to see it's progressing :)
Some extra comments below.
On 08.07.2017 20:45, Vadim Yanitskiy wrote:
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
Is there some wiki page or readme somewhere which can be used as more detailed reference? I'm sure people trying to replicate your setup would appreciate it.
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.
Also, what are you plans regarding upstreaming osmocom-bb changes?
baseband-devel@lists.osmocom.org