GithubHelp home page GithubHelp logo

pothosware / pothossoapy Goto Github PK

View Code? Open in Web Editor NEW
25.0 25.0 10.0 182 KB

Pothos framework support for software defined radio hardware.

Home Page: https://github.com/pothosware/PothosSoapy/wiki

License: Boost Software License 1.0

CMake 3.46% C++ 96.54%
soapysdr pothos dataflow sdr samples modulation radio-frequency spectrum pothos-framework

pothossoapy's Introduction

pothossoapy's People

Contributors

guruofquality avatar ncorgan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pothossoapy's Issues

GPIO access support

Blocking on pothosware/SoapySDR#22

  • register a probe to query GPIO state
    • (optional bank name parameter)
  • registered calls to set mask, ddr, value
    • calls work with an without a named GPIO bank
  • GPIO setter parameter
    • dictionary specifies mask, value, ddr -- operates on all banks
    • or dictionary of dictionaries (where each key is a bank)

error using sync block

Hi I'm new on pothos and I'm having a problem for using the sync block. I need to transmit a chirp signal using a usrp. Does anyone now how to fix it?
captura de tela 6

multi-channel time alignment block

A block with N input and N output streams that uses time labels and selective dropping to ensure that the output stream is time aligned.

  • This is a zero-copy block. Passively forward buffers.
  • This is a zero-conf block, because the sdr source provides the sample rate through labels
  • Provide probes for drop counts (per channel)

LimeSDR TX bandwidth setting incorrect

For an application that I am currently working on I need to transmit chirp signals with a bandwidth of 15MHz.
The setup consists of a transmitting LimeSDR and a receiving LimeSDR that both operate at a sample rate of 32Msps.

I always set the RX bandwidth to 16MHz. Now, the waveforms and the spectrum that I expect look like this:
correct spectrum cutout
To achieve this, I usually set the TX bandwidth to 100e6.

However, if I assign TX bandwidth the values 16e6 or 32e6, I will get the following:
incorrect spectrum cutout

Can you please help me investigate that issue. It probably occurs at the interface of Pothos and the LMS7 module.
Thank you very much.

Normalize Labels for Compatibility

I propose that the label names be changed so as to match tag names found in gnuradio, so that someday some compatible behavior or even standard may evolve.

The following tag names are used in gr-uhd and gr-osmosdr/bladerf:

txTime -> tx_time
txEnd -> tx_eob
rxTime -> rx_time
rxEnd -> rx_eob
rxFreq -> rx_freq
rxRate -> rx_rate

Support for Pothos::Packet in source/sink blocks

  • SDRSink checks for Pothos::Packet based messages and treats them as stream + labels.
  • SDRSource uses the SOAPY_SDR_ONE_PACKET flag to produce the buffer as a packet message and not into the stream.

buffer integration - zero copy support

One of the strengths of the Pothos Framework is the advanced buffer integration. Naturally, we would like the source and sink blocks to provide scheduler access to underlying buffers provided by the hardware driver.

Currently blocked by a need for a demonstration driver to motivate the SoapySDR API: pothosware/SoapySDR#8

Apply cahced setting calls ASAP

The SDR block will cache any settings calls while the future is busy setting up the device handle. Currently, these cached calls are forcibly applied when the block is activated. However, they should really be applied ASAP when the device handle is setup.

Meaning that the std::future task should run through all settings calls after its finished getting a device handle. Some extra synchronization will be needed to protect the cached settings while the future is processing them because additional settings could potentially be made. Possibly, we can just make a dedicated execution thread in the place of using std::future.

Fixing this issue means that the block will continue to set itself up while the topology activates, but without blocking calls. This is because talking out to hardware can be a costly or long operation, such as calibration and waiting on time-outs. A block, its stream, and configuration will be fully setup by the time activate() is called.

Updates for latest SoapySDR 0.5 series

  • parameterize setHardwareTime(), deprecate setCommandTime() In SoapySDR, we have a parameterized setHardwareTime() call for setting arbitrary timestamps. Recently, setCommandTime() has been deprecated in favor of using the parameterized setHardwareTime(). Do the matching work in SDR blocks by given setHardwareTime a "what" parameter as well.
  • mark setCommandTime() deprecated
  • switch to bandwidth range over bandwidth list of doubles. See getBandwidths() call in SDRBlock.cpp

demo control block

A demo control block ships with the sdr package. It has hooks to read the hw time periodically through the signals and slots, print info from a receive channel, and send TX bursts. Timed tuning.

random sample dropper - for testing

The random dropper has a chance (configurable) of dropping a random chunk of samples. After a drop, a new time stamp will be output. This block will be used for internal tests, however, users may find it helpful to test their systems in the presence of overflows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.