Skip to content

Commit b5a2ec3

Browse files
committed
update README
1 parent 500fa88 commit b5a2ec3

File tree

1 file changed

+52
-6
lines changed

1 file changed

+52
-6
lines changed

README.md

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ This project is a GPS receiver testbed with antenna array, built based on USRP X
77
## Hardware
88
The hardware used in this project includes:
99
- **USRP X310:** a software-defined radio platform (RF_front_end) for receiving and transmitting radio signals. My USRP X310 has two TwinRX-80MHz daughterboards with 4 RX channels in total, which can be connected to 4 antennas.
10-
- **GPS active antenna**: 4 active GNSS antennas, which have internal LNA and need to be powered with 3~5 V DC.
11-
- Antenna array: using above described 4 active GNSS antennas fixed on a line with $\frac{\lambda }{2} \approx 9.5cm$ spacing among them.
12-
- **Bias-Tee**: a RF Bias Tee is used to feed DC power to active antenna.
10+
- **GPS active antenna**: 4 active GNSS antennas, which have internal LNA and need to be powered with 3~5 V DC. Due to that signal strangth is too weak, I do not recommand to use passive gps antennas, which don't have LNA within and only a patch antenna wrapped with a plastic casing.
11+
- **Antenna array:** using above described 4 active GNSS antennas fixed on a line with $\frac{\lambda }{2} \approx 9.5cm$ spacing among them. In this project, I build a 1x4 antenna array. To build an array with more elements like 2x4, you need two synchronized USRP X310 with 8 RF channels.
12+
- **Bias-Tee**: a bias tee is a three-port network used for setting the DC bias point of some electronic components without disturbing other components. In this project, this RF Bias Tee is used to feed DC power to active antenna.
1313
- **GPSDO:** a GPS disciplined oscillator is used to provide a stable reference clock for the USRP X310. And this GPSDO need to connect a passive GPS antenna. Once it runs correctly and shows GPS locked, 10MHz signal and 1PPS signal will be generated and provided to USRP X310.
1414
- **PC:** a computer with GNSS-SDR installed, which is used to configure and control the USRP X310 and GNSS-SDR. I use a compact industrial computer: IPC-240 with Ubuntu 20.04. To have enough communication bandwidth to aviod overflow error, I have a 10Gbps Ethernet controller in my PC and use a 10Gbps Ethernet cable to connect the PC and the USRP X310.
1515

1616
## Software
1717
The software used in this project includes:
1818
- **GNSS-SDR:** an open-source software defined radio receiver for GNSS signals.You can install the gnss-sdr following the instruction in https://gnss-sdr.org/.
19-
- **UHD:** a driver for USRP X310 to communicate with the USRP hardware.
19+
- **UHD:** a driver for USRP X310 to communicate with the computer.
2020
- **GNURadio:** a software development toolkit that enables the creation of radio communications applications using GNU Radio blocks.
2121

2222
## Testbed Overview
@@ -32,9 +32,55 @@ You can install gnss-sdr following the instruction in https://gnss-sdr.org/. Aft
3232
- UHD 4.0
3333
- GNU Radio 3.9
3434

35-
If using Ubuntu 20.04 or 22.04, I provide the optimal install steps as follow:
36-
(1)
35+
If using Ubuntu 20.04 or 22.04, I provide the optimal install steps as follow:<br>
36+
**(1) install all dependencies**
37+
```
38+
sudo apt-get update
39+
```
40+
```
41+
sudo apt-get install build-essential cmake git pkg-config libboost-dev libboost-date-time-dev \
42+
libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev \
43+
libboost-serialization-dev liblog4cpp5-dev libuhd-dev gnuradio-dev gr-osmosdr \
44+
libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \
45+
libgnutls-openssl-dev libpcap-dev libmatio-dev libpugixml-dev libgtest-dev \
46+
libprotobuf-dev protobuf-compiler python3-mako
47+
```
48+
**(2) build and install gnss-sdr from source code**
49+
```
50+
git clone https://github.com/gnss-sdr/gnss-sdr.git
51+
cd gnss-sdr
52+
git branch -a # check the different version/branch
53+
git checkout next # switch to the 'next' branch
54+
git status # check the current branch
55+
mkdir build
56+
cd build
57+
cmake ..
58+
make
59+
sudo make install
60+
```
61+
>[1]: Before I install this gnss-sdr, I have already installed gnuradio and uhd. I have tested these two versions:
62+
> - gnss-sdr 0.19 + gnuradio 3.9 + uhd 4.0 on Ubuntu 20.04
63+
> - gnss-sdr 0.19 + gnuradio 3.10.7.0 + uhd 4.1.0.5-3 on Ubuntu 22.04
64+
>
65+
> If you don't have them, you can install them by following the instruction in https://wiki.gnuradio.org/index.php/InstallingGR.
66+
>
67+
>[2]: In above command, I use the 'next' branch. This is because after using `git clone https://github.com/gnss-sdr/gnss-sdr.git`, you are in the 'main' branch by default. However, I met so many problems when I use the 'main' branch to build and install. Here are some detailed errors:
68+
> - Using the 'main' branch: https://github.com/gnss-sdr/gnss-sdr/issues/829#issue-2730121561
69+
> - Build and install on MacOS: https://github.com/gnss-sdr/gnss-sdr/issues/835#issuecomment-2560897806; https://github.com/gnss-sdr/gnss-sdr/issues/829#issuecomment-2558781142
70+
>
71+
> [3]: Usually, when using `cmake ..` and `make`, a lot of errors will appear and most of them result of lack of some dependencies or the version of some dependencies is not compatible with gnss-sdr. You need to fix that by yourself. Using Linux is much easier than MacOS. Never try to waste time to install it on the MacOS. It's stupid and I have tried that 🤮.
3772
73+
**(3) test and make sure if install successfully**
74+
According to the instruction in gnss-sdr(https://gnss-sdr.org/my-first-fix/), you need to run two executable files, go to the folder: `gnss-sdr/install` and run the following commands:
75+
```
76+
volk_profile
77+
volk_gnsssdr_profile
78+
```
79+
Then, you can run the following command to test if the installation is successful:
80+
```
81+
gnss-sdr --version
82+
```
83+
If you see something like: `gnss-sdr version 0.0.19-xxx`, which means everything is great.
3884
### 2. Build this testbed
3985

4086
### 3. Matters need attention

0 commit comments

Comments
 (0)