Search results for: FL2k

Setting up and Testing Osmo-FL2K

A few days ago we posted about Osmo-FL2K, which is a newly released piece of software by Steve M from Osmocom that turns a common $5-$15 USB to VGA adapter into a transmit only capable SDR. It is very complimentary to the RTL-SDR.

Any USB to VGA adapter that contains a FL2K chip appears to be compatible and yesterday we received one and have been playing with it. This post is a demonstration of some of the results.

Hardware Used

  1. The cheapest USB to VGA adapter found on the market. It seems all of the low cost $5 - $15 adapters that indicate "USB 3.0 to VGA", and max resolutions of 1920 x 1080 are compatible as they use the FL2K chip. More expensive units are not compatible. Compatible units all have a similar design (box at the end of a short USB cable, although there are other types too). The brand does not matter. (Amazon) (eBay) (Aliexpress)
  2. A VGA to BNC breakout cable to connect the FL2K SDR directly to an RTL-SDR  (via a BNC to SMA adapter) without illegally transmitting over the air. The Red color breakout is the one connected to the TX pin. (Amazon) (eBay) (Aliexpress)
  3. A low cost 20dB or more attenuator to avoid overloading the dongle. (Amazon) (eBay) (Aliexpress)
FL2K Test Hardware
FL2K Test Hardware


Note that you must have a USB 3.0 port to use Osmo-FL2K, although a USB 2.0 might work although at significantly reduced bandwidths.

Osmo-FL2K is Linux only at the moment, but it may be possible for someone to compile a Windows version, just like with RTL-SDR. Instructions for downloading and compiling the software are available on the official wiki. It is a standard git clone, cmake, make type procedure which can be done in 2 minutes. You'll also need to probably do an 'sudo apt-get install sox pv' if you want to run the WBFM example. 

First we tried to boot into the GNU Radio Live Linux bootable image on a tablet like laptop that only has USB C 3.0 ports. Unfortunately while the FL2K-SDR was recognized, and Osmo-FL2K detected it, there was no signal coming out during test transmissions. It seems that there may be issues when a USB C to USB Type A converter is used. 

Next we tried the GNU Radio Live Linux bootable image on a desktop PC and this time Osmo-FL2K worked fine when plugged into a USB 3.0 port. However, plugging it into extended ports seemed to cause it to not be detected.  So if you're having trouble getting Osmo-FL2K to work, try other USB 3.0 ports on your PC, and avoid USB C adapters if possible.

We also tried Virtual Box, however the FL2K-SDR wouldn't connect to the Linux guest system, even though USB 3.0 was enabled and the extensions were installed. For VMWare it appears only that the paid versions support USB 3.0.



Following the instructions on the official Osmo-FL2K page we were able to get an WBFM transmission up and running almost instantly. The provided example routes audio from your soundcard into the FL2K-SDR, causing it to transmit WBFM audio at 95 MHz. With this we were easily able to broadcast audio from YouTube to another PC via the FL2K-SDR although there is about two seconds of delay.

To choose the frequency you choose the carrier frequency and the sample rate, and then the transmit frequencies will be the sample rate +/- carrier frequency + harmonics.

FL2K broadcasting WFM with fl2k_fm.
FL2K broadcasting WFM with fl2k_fm.
fl2k_fm help screen
fl2k_fm help screen


Speaking of the harmonics we had a look at them using an Airspy and the SpectrumSpy software. The image below shows that the harmonics of a signal transmitted at 95 MHz extend all the way up to the maximum range of the Airspy at 1.8 GHz, and probably further. So filtering is very necessary if you ever want to transmit over the air.

Note that when broadcasting at 95 MHz (sample rate 130 MHz, carrier 35 MHz), there is also a strong signal at the carrier frequency. So band pass filtering would be required. 

Harmonics when transmitting at 95 MHz
Harmonics when transmitting at 95 MHz


We also tested the DVB-T example found at, which worked flawlessly. By using the connected RTL-SDR dongle with the original DVB-T drivers we were able to receive a transmitted stream at 490 MHz using the ProgDVB software.

To do this follow the instructions in the fl2k-examples/DVB-T readme file to generate samples which Osmo-FL2K can transmit. Then on another PC install the DVB-T drivers for the RTL-SDR, and use ProgDVB to scan 490 MHz by manually editing the multiplexes options.

Osmo-FL2K transmitting DVB-T.
Osmo-FL2K transmitting DVB-T to a Laptop running an RTL-SDR.

CPU Usage

Osmo-FL2K is quite CPU intensive, especially if higher sample rates are used. For this reason it might struggle on singe board computers that support USB 3.0. The images below show some CPU usage examples for sample rates of 20, 55, 130 and 155 MS/S. The test PC uses a fairly powerful i7-6700 CPU.

20 MS/S
55 MS/S
130 MS/S
150 MS/S
20 MS/S 55 MS/S 130 MS/S 150 MS/S

Osmo-FL2K: A TX-Only SDR Hacked From Commodity $5 USB to VGA Adapters – Demos Available for Transmitting WBFM, GSM, UMTS, GPS

Osmocom are some of the people behind the original discovery and development of the RTL-SDR (in particular Steve M), and today it looks like they have done it again by releasing exciting news of a way to turn a commodity $5 USB to VGA adapter into a TX-only capable SDR. They call their discovery 'osmo-fl2k', as the magic chip that makes it all happen is a Fresco Logic FL2000.

Examples of compatible Osmo-FL2K USB to VGA Adapters.
Examples of compatible Osmo-FL2K USB to VGA Adapters.

The discovery is based on the fact that the VGA specific HYSYC/VSYNC synchronizations on the FL2000 chip can be disabled, allowing for a continuous stream of samples to be sent to the VGA digital to analog converter (DAC). The FL2000 also implements a cheaper method of streaming data compared to other devices which allows these to be $5 devices.

The supported hardware appears to be any USB to VGA adapter that uses the FL2000 chip. They note that these are often advertised as "USB 3.0 to VGA" adapters with a maximum resolution of 1920 x 1080 for USB 3.0 and 800 x 600 for USB 2.0. Over on Amazon the cheapest one we've found (note not yet confirmed to be compatible) that meets the Osmocom description appears to be going for $7.49 and is fulfilled by Amazon.  We've seen prices of $5.11 on Aliexpress and $5.99 on eBay too. There appears to be no difference between the brands of these units, as the 'brands' are just private labelled from the same factory, as anyone can add a brand to a generic product.

Once sellers catch on to the fact that these devices are going to be popular we expect them to most likely start raising prices.

The Fresco Logic FL2000 Chip
The Fresco Logic FL2000 Chip

In terms of TX performance and functionality, osmo-fl2k should be better than RPiTX as it uses an actual DAC, instead of just PWMing a pin. It appears that the device can transmit on a fundamental frequency anywhere from HF up to about 157 MHz, and then signal harmonics can be used to extend the range all the way up to around 1.7 GHz or maybe even higher. Having harmonics does mean that like other cheap TX methods, the signal is not clean and so proper filtering would be required before any sort of higher power transmission would be legal.

The highest fundamental frequency available also appears to be related to the performance of your PC's USB 3.0 controller. The worst USB 3.0 controller that they tested maxed out at 115 MS/s, whereas the best was 157 MS/s (theoretical max should be 160 MS/s). A USB 2.0 controller only gets a maximum sample rate of 14 MS/s.

So far the team have released software examples for transmitting DVB-T, GSM, UMTS (3G) and GPS, and have mentioned that they have also successfully transmitted LTE and DAB too. There is also an example for transmitting WBFM audio with RDS via the pacat Linux command and sox. The image below shows the FL2K-SDR working as a GSM base station. 

Osmo-FL2K being used as a GSM Basestation
Osmo-FL2K being used as a GSM Basestation

If you're interested in more information, Osmocom have released the slides from a presentation that they made at a OsmoDevCon presentation on April 22. The video presentation is also expected to be released soon at

Reminder: Register for the GNU Radio Online Conference on September 14-18

This is just a reminder that the 2020 GNU Radio Conference will be held online in a few days time starting on September 14 and ending September 18 2020. Viewing the live talks and participation in the discussion forums is free for everyone around the world, however you must register first via their site. The paid $50 workshops are all currently booked however you can go on the waiting list in case more spaces are opened.

GNU Radio Conference (GRCon) is the annual conference for the GNU Radio project & community, and has established itself as one of the premier industry events for Software Radio. It is a week-long conference that includes high-quality technical content and valuable networking opportunities. GRCon is a venue that highlights design, implementation, and theory that has been practically applied in a useful way. GRCon attendees come from a large variety of backgrounds, including industry, academia, government, and hobbyists.

GRCon20 will be held starting September 14, 2020 online as a virtual event. The organizing team is hard at work to create a fun and interactive experience.

Our keynote speakers include: Becky Schoenfeld W1BXY, managing editor of QST magazine, Oona Räisänen [ windytan ] hacker of signals and computer programmer, and Jim St. Leger, Director Open Source, Intel.

With an annual program that has broad appeal, GRCon attracts people new to Software Radio just looking to learn more, experts that want to keep their finger on the pulse & direction of the industry, and seasoned developers ready to show off their latest work.

Titles of the talks scheduled are shown below. The full list of talks, workshops and descriptions can be found here

  • Oona Räisänen - Video Decoding Adventure
  • Introducing OpenCPI as an Infrastructure for GNU Radio and GNU Radio Companion
  • How Strong is my SDR Signal?
  • Introducing the Radio Resiliency Competition
  • Are We Alone? How GNU Radio Can Help Us Find ET
  • A Conversation with the Ettus Research / NI SDR R&D Team
  • Enabling Performance Portability of GnuRadio on Heterogeneous Systems
  • Architecture Update - Marcus Mueller
  • Becky Schoenfeld - Keeping Ham Radio Alive and Well: ARRL’s Education Initiatives
  • ESA's OPS-SAT Mission: Powered by GNU Radio
  • Designing a Narrowband Radar using GNU Radio and Software Defined Radio for Tomography and Indoor Sensing
  • The De-Swiggification of GNU Radio
  • Exploring RFNoC with the UHD Python API
  • Teaching the Principles of Time Delay Spectrometry Ultrasound with GNU Radio
  • Ultra-cheap SDR Digital Television Transmission: ISDB-T with an osmo-fl2k and an RTL-SDR
  • Software defined radio based Synthetic Aperture noise and OFDM (WiFi) RADAR mapping
  • Community Continuous Integration (CI) for GNU Radio
  • RadEOT: The Radio Education Outreach Tool
  • Software defined radio based Global Navigation Satellite System real time spoofing detection and cancellation
  • SDR to GPU Peer-to-Peer Data Streaming for Cognitive Radar and EW Use-Case
  • Security Analysis of Zigbee Networks with Zigator and GNU Radio
  • Using GNU Radio in Amateur Radio
  • GR Wiki Block Docs: What's Important?

moRFeusQT Updates: Automatic Tracking Generator Plotting with Airspy

Outernet's moRFeus is a signal generator and frequency mixer that can be controlled either by it's built in LCD screen, or via software on a Windows or Linux PC. It can generate a clean low phase noise tone anywhere between 85 to 5400 MHz. Because it can be computer controlled it is possible to use moRFeus as a tracking generator for characterizing filters and measuring antenna SWR. A tracking generator is just a signal generator that can be set to output at the same frequency that the measurement receiver is tuned to.

In the past we've posted about some software developed by Ohan Smit, which allows a moRFeus to be controlled on a Windows/Linux PC via a nice GUI. Recently he's updated the software and it can now draw power (dbFS) graphs for characterizing filters when combined with an Airspy and TCP comms to GQRX. Ohan writes:

So when you press sweep, it detects if there is any TCP servers on port 7356 and if so tunes the radio and gets a power measurement and after the sweep is done, morfeusqt renders a graph on the fly.

It now also supports multiple devices, no configurations required. It just opens another window for the second device.

These features thus far work on both Windows 10 and Ubuntu 18.04.1, these are my two testing environments with GQRX and the Airspy.

Ohan also notes that he's working on several new features such as the ability to plot VSWR, remote control of the moRFeus via TCP, support for multiple SDR TCP protocols such as rtl_tcp, soapytcp etc, threading and progress bars, as well as possibly support for cheap Osmo-FL2K devices as a tracking generator.

You can follow his developments live on the Outernet forums.

moRFeus used as a tracking generator with an Airspy with the morfeusQT software
moRFeus used as a tracking generator with an Airspy with the morfeusQT software

Using a Cheap USB to Serial Port Adapter as a Transmitting SDR

A while ago we posted about Osmo-FL2K which is a Steve M Osmocom project that allows you to use a cheap $10 USB to VGA adapter as an HF - 1.7 GHz transmitting SDR. Now another similar project by Ted Yapo has been released which allows the use of a low cost FT232RL based USB to Serial Port adapter as a transmit capable SDR. It appears that the FT232RL via harmonics is able to transmit up to at least 27 MHz, and possibly higher.

A USB To Serial Port adapter being used as a transmitting SDR
A USB To Serial Port adapter being used as a transmitting SDR

The basic implementation is similar to the idea used by RPiTX - that is to modulate the square wave output of a TX pin to generate an arbitrary signal at a desired frequency. Of course this results in numerous harmonics which must be heavily filtered if ever actually transmitting with some power or high gain antenna.

In his project log, Ted shows that he's been able to transmit AM audio at 1 MHz, and has also been able to control an RC toy at 27 MHz. For the RC toy controller he's also created a simple BPF in order to reduce the harmonics. In addition to the FT232RL chip, he's also tried other serial chips like the CP2102N but found that the signal produced was not as clean.

More information about the hack can be found on his project log, and on a recent Hackaday post.

Serial Port SDR: 27 MHz RC Truck

CrowPi: Raspberry Pi Experimenters Kit Review (With RTL-SDR and RPiTX Tests)

CrowPi is a Raspberry Pi all-in-one experimenters kit that is currently crowd funding on Kickstarter. The idea behind CrowPi is to combine a touchscreen, various sensors, actuators and interfaces into a clutter free kit mounted on a PCB in an easy to carry hard shell case. It's mostly intended to be used in STEM learning environments, however it could also be used for rapid prototyping of Raspberry Pi based ideas, or simply as a portable computer. 

The CrowPi
The CrowPi

The kit has 4 days left on Kickstarter and has already met its minimum goal. Pledging $1,169 HKD (~USD $150) gets you the basic kit which does not include a Raspberry Pi. Higher pledge levels (up to US$250) get you models that include a Raspberry Pi as well as extras such as a 5V power supplies, earphones, heatsinks, keyboards, game controllers etc. Shipping of the units is expected to commence in July.

Elecrow, the Shenzhen based company behind CrowPi kindly sent us a free kit for an honest review. While not directly related to RTL-SDR or RF, we thought that there might be several applications that might make the CrowPi kit useful for prototyping some simple low cost RF based ideas. For example:

  • Prototyping IoT based modules that use the RTL-SDR as a receiver. For example receiving a 433 MHz ISM signal and writing received information to the LCD/LED array or activating the relay.
  • Similarly, using FL2K-SDR or RPiTX to transmit a signal when a sensor is activated, or to transmit telemetry from that sensor (e.g. distance data from the ultrasonic sensor, humidity levels from the DH11 sensor, or light levels from the light sensor)
  • Using an RTL-SDR to prototype an ADS-B plane camera tracker using the two servo module interfaces.

To get an idea of what's packed into the CrowPi, the kit includes the following modules:

  • Everything that came with our CrowPi Demo Kit (Except the Raspberry Pi)
    Everything that came with our CrowPi Demo Kit (Except the Raspberry Pi)
    1920 x 1080 Capable HDMI 7" Touch Screen
  • LCD Module
  • 8x8 Matrix LED
  • Breadboard
  • 4 character 7-seg LED
  • Vibration motor
  • Light Sensor
  • Buzzer
  • Sound Sensor
  • Motion Sensor
  • Ultrasonic Sensor
  • Servo Interface
  • Step Motor Interface
  • UART
  • Tilt Sensor
  • IR Sensor
  • Touch Sensor
  • DH11 Humidity Sensor
  • Relay
  • Matrix of buttons
  • RFID Module

With our kit we also received:

  • 2x GPIO Flex Cables
  • 1x Stepper Motor
  • 1x Servo
  • 1x Charger
  • 1x IR diode
  • 1x NFC Tag
  • 1x Mini HDMI for the Raspberry Pi Zero
  • 1x IR Remote control

Setup, Initial Testing and Thoughts

Setup: Setup was simple and consisted of downloading their customized Raspberry Pi image onto an SD card, connecting the Raspberry Pi to the HDMI, USB and GPIO pins, and then powering it up using the power jack on the CrowPi Board. A user manual is available for download.

Initial Testing: CrowPi provide a set of lessons that show how to use each of the modules on the board. All modules also have Python code examples that are ready to run as soon as you boot up. Immediately after booting up we were able to run their demo code which allowed us to test all the various sensors, print text to the LCD module, activate the 7-seg display, and actuate a servo and stepper motor. 

The tutorials are easy to understand and provide a good basic rundown of the sensors. You will need to have some basic Python skills to understand the Python code however.

Thoughts: The CrowPi is built sturdy, and is definitely easy to use. The touch screen is bright and clear. It is capable of running in 1080P mode, but is a bit too small and hard on the eyes to use at this resolution. We kept the screen in 720P mode. In order to use the Raspberry Pi, you'll need to plug in a USB keyboard and mouse which is not included in the basic kit. A wireless keyboard/mouse combo is ideal. There appear to be speaker holes next to the monitor, but it seems that our demo model is the basic model which does not include built in speakers. The kit is impressive looking and appears to be priced reasonably for what you get.

RTL-SDR and RF Testing

Unfortunately when it came to run the RTL-SDR we instantly ran into a problem. With the one 5V 3A power supply running the Pi, HDMI Screen and modules, it seems that there just isn't enough power budget left over to run the RTL-SDR which draws about 270 - 290 mA current. The RTL-SDR connects fine, but when trying to run GQRX, the Pi 3 shuts down. To get around this problem we have to connect a second power supply directly to the Raspberry Pi 3's input. After doing this the board and kit runs smoothly with the RTL-SDR. Using a powered USB hub would also work.

RPiTX is software for the Raspberry Pi that allows you to transmit RF signals directly via PIN12 or PIN7 from the GPIO ports. On CrowPi PIN12 is already connected to the buzzer, and PIN7 is connected to the humidity sensor. Using PIN12 causes the buzzer to sound, so we tried PIN7. Even though it's connected to the humidity sensor, it doesn't seem to mind the GPIO bit flipping going on. The traces within the board and cable radiate sufficiently to transmit signals strongly enough to use within a room, so no external antenna is needed. Use of PIN7 can be activated in RPiTX by using the "-c 1" flag.

Using our Replay Attacks with an RTL-SDR, Raspberry Pi and RPiTX tutorial, we copied  the signal from the remote control of a 433 MHz alarm/door bell, and used RPiTX to replay the signal. Then by modifying some of the supplied CrowPi Python code we were able to get the doorbell to sound on a touch of the touch sensor, activation of the sound sensor and via activation the RFID sensor. We could see the CrowPi being used as a general tool for learning how to prototype simple IoT or home automatic devices. The video below shows a brief demonstration. 

It would have been nice if these RPiTX GPIO pins could have been exposed, and not connected to a sensor, but the developers of the board had probably not heard of RPiTX as the goal is for a more general classroom application.

CrowPi Demo


If you're looking to get kids or STEM students/hobbyists interested in what Raspberry Pi's can do, then this kit couldn't make it simpler. The single board and briefcase design makes the whole thing very tidy and portable and the kit looks and feels sturdy and professional. If you know a kid interested in electronics, then this kit would make a great present.

You could probably purchase all the components cheaper individually, but at the end of the day an all-in-one kit just makes sense as it is a lot tidier, and much easier to get up and running quickly.

For RF experiments, it's possible to use the RTL-SDR with the minor annoyance of having to connect two power supplies or use a powered USB hub. RPiTX also functions fine on the device and can be used to transmit an RF signal on activation of any one of the sensor modules. This could easily be used to prototype simple home automation or IoT ideas.

Osmocom now accepting Donations

Osmocom, the team behind the original RTL-SDR driver project, the Osmo-FL2K discovery, OP25, gr-osmosdr, gr-gsm and various other open source cellular phone projects is now accepting monetary donations. If you weren't already aware, it was the efforts of Antti Palosaari and Eric Fry who made the original tests on DVB-T dongles, and then Osmocom who wrote the first RTL-SDR driver and software that is still currently used in the RTL-SDR project today. If you're interested, there is a full write up on the history or RTL-SDR at the bottom of

Recently Osmocom have begun accepting donations via Open Collective. They write

The Osmocom project (if you count its predecessor OpenBSC) have been running for close to 10 years, creating a large number of Open Source projects related to mobile communications. We have never needed nor wanted any legal entity for it. It's a pure/classic FOSS project, open to contributions from anyone.

Until today, you could only contribute in one of the following forms:

  • by writing code (bug fixes, new features, etc) and submitting it (which means you need to be a developer)
  • by writing documentation / improving the wiki
  • helping other users on the mailing lists, IRC, or in other forums
  • donating cellular equipment (which many don't have)
  • hiring a freelancer or a company to write code and contribute to Osmocom on your behalf 
  • buying products or services from companies who dedicate lots of work to Osmocom

However, we've repeatedly getting requests from some individuals who wanted to contribute to the project in an easy way, even if they are not a developer, and/or don't have time, and/or don't have the size of a budget to fund development of entire new features or sub-systems.

Today, Osmocom announces that we have joined Open Collective in order to enable you to make financial contributions, either one-off or recurring.

We'll be using the funds (if we get any!) according to our funding policy outlined at in order to pay for expenses such as hosting costs for our servers / IT infrastructure, travel funding for the annual developer conferences, etc. Any and all expenses paid from those funds will be visible on the OpenCollective website. You cannot ask for more transparency than that :)

Thanks in advance for your kind assistance!

So if you've ever enjoyed the RTL-SDR project, and how much it's improved your access to the RF spectrum, please consider donating via Open Collective or contributing back in other ways. Donations may help Osmocom to continue making new and interesting discoveries, such as Steve M's amazing FL2K-SDR discovery that was released back in April this year.