Entropy gathering with SDR

Working on something interesting? Share it with the community!

Moderator: robert.ghilduta

Post Reply
Posts: 2
Joined: Tue Jan 14, 2014 11:24 pm

Entropy gathering with SDR

Post by pwarren » Wed Jan 15, 2014 2:48 am

Hi all,

With a kind donation of hardware from Nuand, I've updated my rtl-entropy code to include a brf_entropy program. It's available as GPLv3 code at


Currently, I'm using the bladrf_rx() function, and it works well on USB2 ports providing around 14 MBits/s of entropy.

On USB 3 ports I get libusb errors:

Code: Select all

[ERROR] Error reading samples (-1): LIBUSB_ERROR_IO
Failed to read samples: File or device I/O failure
I'm not sure if that's my code, a problem with my setup, or a bladerf library bug :)

Other apps that use bladerf_stream() to get the data (such as gqrx/osmo_fft) work ok on my USB3 ports, and I'm attempting to recall my threading and async programming stuff to use that function in brf_entropy :)

Hope it's useful!

Posts: 2
Joined: Tue Jan 14, 2014 11:24 pm

Re: Entropy gathering with SDR

Post by pwarren » Tue Jan 21, 2014 9:52 pm

Well, I've made a release that uses the bladerf_stream() call, and it goes a bit faster, at ~20Mbits/s of entropy and works fine with USB3 ports.

Over the next few weeks, I'll be refactoring to make things a bit more modular, and hopefully improve the performance!

Code available at:


Release at:

And I also set up a website with mailing lists at:


Have fun :)

Post Reply