-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This project is a fork of https://git.osmocom.org/osmo-fl2k. It aims to provide SoapySDR support to osmo-fl2k. You can read more about osmo-fl2k on Osmocom's web page on the topic.
I started this fork because I couldn't find anyone else who had written a SoapySDR driver for osmo-fl2k.
The code compiles, but the SoapySDR driver doesn't actually work. At best, it'll send a garbage signal out the VGA dongle. At worst, it'll crash.
This is how I made this repository (for better or for worse) using these instructions:
git clone --bare https://git.osmocom.org/osmo-fl2k/
cd osmo-fl2k.git/
git push --mirror https://github.com/watkipet/osmo-fl2k.git
cd ..
rm -rf osmo-fl2k.git/
# Setup my local repo so that pushing pushes to GitHub, but pulling still pulls from osmocom
git remote set-url --push origin https://github.com/watkipet/osmo-fl2k.git`
I don't quite have the sample rate handling correct. The FL2K will only support certain sample rates. I try to pick the closest based on what's requested, but it's way off.
There are glitches in the output. This is roughly a 1kHz cosine wave, but almost every wave peak has a glitch. (TODO: add a scope image when I can figure out how).
You can test using the following (JSON) flow (TODO: upload flow somehow):
PothosUtil --run-topology fl2k_test.json
It should output a 1kHz cosine wave out the red channel.
Most scopes, ham radio antennas, the RTL-SDR, etc. use a 50 ohm input impedance. The FL2K chip is meant to drive a VGA cable which has a characteristic impedance of 75 ohms. It appears that the FL2K uses a IDACS for each channel and the dongle PCBs use a 75 ohm resistor to ground to achieve the 75 ohm output impedance. You can remove the 75 ohm resistors and replace them with 50 ohm ones to get a 50 ohm output impedance.
You can also use an adapter board with a resistor divider to get the proper output impedance.