pico-sdr/README.md

36 lines
1.2 KiB
Markdown
Raw Normal View History

2024-06-04 19:27:58 +02:00
# Pico SDR
Using RP2040 / Raspberry Pi Pico as a software-defined radio receiver.
2024-06-06 22:58:36 +02:00
See the [blog post](https://blog.porucha.net/2024/pico-sdr/) for more information. Older code the article is mostly referring to can be found in the branch `old`.
2024-06-04 19:29:35 +02:00
2024-06-05 14:27:46 +02:00
## Circuit
![](circuit.svg)
2024-06-05 14:35:05 +02:00
## Software
2024-06-05 14:27:46 +02:00
2024-06-04 19:27:58 +02:00
1. Clone using `git clone --recursive` as this package is using a custom USB
stdio library for better throughput and to avoid deadlocks.
2. Build and flash the firmware as usual:
```bash
export PICO_SDK_PATH=/path/to/pico-sdk
cmake -B build src
cmake --build build
picotool load -f build/pico_sdr.uf2
```
3. Start the USB serial to TCP bridge:
2024-06-04 19:27:58 +02:00
```bash
python util/bridge.py
2024-06-04 19:27:58 +02:00
```
2024-06-06 22:58:36 +02:00
You need to have PySerial and Click packages installed.
4. Open `grc/PicoSDR-WBFM.grc` in GNU Radio Companion, adjust carrier frequency to match your favorite FM radio station and press `F6`.
2024-06-04 19:27:58 +02:00
5. Alternatively [gqrx](https://www.gqrx.dk/) works fine with `rtl_tcp` input mode. Maximum sample rate seem to be 400 ksps, above that the samples are dropped. Make sure to adjust LNA gain to +30 dB. It's not accurate, but it does control bias strength which in turn does affect analog gain.