{"id":13689745,"url":"https://github.com/free5G/free5GRAN","last_synced_at":"2025-05-02T06:31:15.287Z","repository":{"id":54443936,"uuid":"321605820","full_name":"free5G/free5GRAN","owner":"free5G","description":"free5GRAN is an open-source 5G RAN stack. The current version includes a receiver which decodes MIB \u0026 SIB1 data. It also acts as a cell scanner. free5GRAN works in SA mode.","archived":false,"fork":false,"pushed_at":"2021-10-06T16:32:50.000Z","size":4373,"stargazers_count":115,"open_issues_count":11,"forks_count":44,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-02-08T10:30:25.241Z","etag":null,"topics":["5g","sdr"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/free5G.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-15T08:44:39.000Z","updated_at":"2025-02-05T06:23:52.000Z","dependencies_parsed_at":"2022-08-13T15:50:36.093Z","dependency_job_id":null,"html_url":"https://github.com/free5G/free5GRAN","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5G%2Ffree5GRAN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5G%2Ffree5GRAN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5G%2Ffree5GRAN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5G%2Ffree5GRAN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/free5G","download_url":"https://codeload.github.com/free5G/free5GRAN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251998331,"owners_count":21677971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5g","sdr"],"created_at":"2024-08-02T16:00:24.039Z","updated_at":"2025-05-02T06:31:14.304Z","avatar_url":"https://github.com/free5G.png","language":"C++","funding_links":[],"categories":["RAN","Open Source RAN"],"sub_categories":["5G"],"readme":"# free5GRAN\n\nfree5GRAN is an open-source 5G RAN stack. The current version includes a receiver which decodes MIB \u0026 SIB1 data. It also acts as a cell scanner. free5GRAN works in SA mode.\n\nfree5GRAN includes a library which can be reused for further developments. Documentation is available https://free5g.github.io/free5GRAN-documentation/.\n\n**free5GRAN is under active developments. A full 5G SA PHY layer should be released in Q1 2022.**\n\n## LGTM scores\n\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/free5G/free5GRAN.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/free5G/free5GRAN/alerts/)\n\n[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/free5G/free5GRAN.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/free5G/free5GRAN/context:cpp)\n\n## Codacy score\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/81153c8875f147b3aa9565b8ea5e56b6)](https://app.codacy.com/gh/free5G/free5GRAN?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=free5G/free5GRAN\u0026utm_campaign=Badge_Grade)\n\n## Installation \u0026 Running\n\n### Requirements\nBefore compiling, make sure that the following libraries are installed:\n* cmake\n* libfftw3\n* libconfig++\n* boost\n* cpufrequtils\n\nOn ubuntu, those libraries can be installed via:\n```\nsudo apt-get install cmake libfftw3-dev libconfig++-dev libboost-program-options-dev libboost-log-dev cpufrequtils\n```\n\n### Radio frontend\n\nWe currently support USRP B210, N210 and X310 natively. `libuhd-dev` is required. It can be installed on Ubuntu via:\n```\nsudo apt-get install libuhd-dev\n```\n\nUSRP N210 is partially supported (it can be unstable) and `free5GRAN` requires Liquid SDR library for sampling rate resampling : `https://liquidsdr.org/doc/installation/`. To build `free5GRAN` with USRP N210 support, just run the `cmake` command with option `-DINCLUDE_N210=ON`.\n\n### Compiling\n\nfree5GRAN executable can be compiled from sources with the following commands:\n```\ngit clone https://github.com/free5G/free5GRAN.git\ncd free5GRAN\nmkdir build\ncd build\ncmake ..\nmake\nsudo make install\n```\n\n### Configuration and running\n\nTwo functions are supported by free5GRAN.\n\n#### Cell search\nSearching a cell with pre-defined parameters. Example config file is provided (`free5GRAN/config/search_cell.cfg`).\n\n#### Band scanning\nScanning one or more 5G NR bands. Example config file is provided (`free5GRAN/config/scan_band.cfg`).\n\n#### USRP configuration\n\n##### Pre-defined USRP device\nIf you want to use a pre-defined RF device, USRP device has to be configured:\n* Run `uhd_find_devices`\n* Find the device you want to use\n* Copy the `serial` field of the device and paste it in the config file.\n\n##### USRP network configuration\nTo run `free5GRAN` with USRP X310, set mtu size to 8000: `ifconfig ETHERNET_INTERFACE mtu 8000`.\n\nTo run `free5GRAN` with USRP N210, set mtu size to 1500: `ifconfig ETHERNET_INTERFACE mtu 1500`.\n\n#### Running\n\n`free5GRAN` should be available globally after installation. Configuration files are located in `/root/.config/free5GRAN/config`. There is two possible options for running free5GRAN:\n* Run `sudo free5GRAN` to run `free5GRAN` with default config file `/root/.config/free5GRAN/config/free5GRAN.cfg`.\n* Run `sudo free5GRAN RELATIVE_CONFIG_FILE_PATH` to run `free5GRAN` with a specific configuration file.\n\n### Debugging\n\nfree5GRAN writes logs in `/var/log/free5GRAN/free5GRAN.log`. It can be used for debugging. Foremost, free5RGAN writes some data files in `/root/.files/free5GRAN/execution_raw_files/` directory (if it exists). For plotting those files, run `python analyse.py` in `/root/.files/free5GRAN/`. This python script generates files that are stored in `/root/.files/visualization_files/` directory.\n\n## Testing note \n\nfree5GRAN has been successfully tested on Ubuntu 18.04 with USRP B210. It is currently under active development, which means that it might not be fully stable. \n\n## Issues\n\nAll the issues have to be reported in the `issues` page of this repository. Some known issues about the current version are already detailed in `issues` section.\n\n## 5G NSA support\n\nAs 5G NSA uses 4G cell for attachment, SIB are transmitted on a 4G cell and this receiver won't be able to decode SIB1 data from 5G NSA mode. However, this receiver should be able to detect 5G NSA cell and decode MIB data.\n\n## Supported bands\n\nA number of bands are already supported by free5GRAN. New bands can be added in `free5GRAN/lib/variables/common_structures`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree5G%2Ffree5GRAN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffree5G%2Ffree5GRAN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree5G%2Ffree5GRAN/lists"}