Skip to content

spectriclabs/IQEngine

 
 

Repository files navigation

www.iqengine.org

A web-based SDR toolkit for analyzing, processing, and sharing RF recordings

  • Spectrogram-based visualization and editor tool, built on SigMF
  • Share your RF recordings or RFML datasets with others, without them having to download files or install any software
  • IQEngine only fetches the portion of the samples you're viewing, allowing you to quickly browse very large RF recordings
  • Test signal detection algorithms and visualize results
  • Interactively learn about different Fourier and wavelet transforms and filters by applying them to interesting signals
  • Organize and search through millions of RF recordings via metadata queries

Try IQEngine now using the canonical instance at www.iqengine.org hosted by GNU Radio and connected to the official SigMF examples repository. You can use the same website to open local RF recordings, the processing is all done client-side.

IQEngine is rapidly evolving, so sign up for a once-a-month email update, including new features, demos, and more! There is also an IQEngine Discord chat channel if you want to get involved in the development. You may also contact Marc at [email protected] for questions/comments/suggestions.

Plugins

Through the optional backend API, IQEngine supports three different classes of plugins (signal generation is not yet released). The signal detector (with optional classifier) can be triggered in the main spectrogram page, which will display the output annotations as soon as it finishes, convenient for testing new detection/classification algorithms. The DSP module runs prior to the FFT calculations, letting you perform a variety of signal processing functions and other sample manipulation. It currently only supports Python snippets, where the samples out must be the same length as samples in (for now).

Local Install

(Note that there's no need to run your own instance of IQEngine, unless you are messing with the code, or want to use it in a sensitive environment. The canonical instance at www.iqengine.org can be used to view local files or your private storage account.)

  1. Install Node for your OS from https://nodejs.org/en/download/
  2. npm install react-scripts
  3. Create an .env file using the example.env and paste in your SAS token for the container, or leave blank to do local-only
  4. npm start to run app in development mode, it will auto-refresh when you change the code
  5. Open local browser to the ip/port displayed in the terminal, typically http://localhost:3000/
  6. (Optional, and likely not needed) npm run build to use production mode (e.g. to make sure all the deps still work when bundled).
    • You can serve the built files with:
    • npm install -g serve
    • Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    • serve -s build

 

IQEngine is Supported By:

Docker Install

The IQEngine frontend is a React app and can be deployed many different ways, the canonical instance at iqengine.org is deployed in Azure using an App Service (serverless computing) with the Node stack, but if you prefer to run it containerized, here is an example to get you started:

docker build . -t iqengine
docker run -p 3000:3000 -d iqengine

The build step will take 3-5 minutes. After running it you should be able to access IQEngine in a browser at http://localhost:3000/.

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 87.1%
  • Python 10.0%
  • CSS 1.7%
  • HTML 1.1%
  • Dockerfile 0.1%