Cross-platform Software Defined Radio application. Uses SoapySDR, and has support for a wide range of dongles and strange pieces of hardware. https://www.cubicsdr.com
Go to file
2015-08-17 21:52:38 -04:00
cmake/Modules Better initial sample rate setup, remove hard-coded default rate and use device info matching /w fallback 2015-03-22 20:47:07 -04:00
external MSVC fix-up 2015-08-10 17:27:48 -04:00
font Added frequency labels, 100khz intervals 2014-12-09 21:28:08 -05:00
icon exe / shortcut icon, NSIS branding header 2015-03-05 21:02:38 -05:00
src Spectrum peak and floor dB are now displayed 2015-08-17 21:52:38 -04:00
.gitignore Updated cmake for Visual C++ 12 2015-01-25 16:57:23 -05:00
CMakeLists.txt Move demodulator and main spectrum visual processors to threads 2015-08-16 18:12:12 -04:00
CubicSDR.desktop Add desktop launcher info for linux 2015-07-26 19:47:43 -04:00
cubicsdr.rc Set app frame icon 2015-03-07 20:29:25 -05:00
LICENSE Update LICENSE 2014-10-27 21:32:29 -04:00
README.md Update README.md 2015-08-14 21:50:44 -04:00

CubicSDR

Cross-Platform Software-Defined Radio Application

Utilizes:

Features and Status:

  • Simple UI
  • Devices
    • RTL-SDR
    • rtl_tcp client
    • gr-osmosdr
  • Basic Features
    • Device Selection
    • Bandwidth
    • Color scheme
    • Load/Save session
    • Audio sample rate
    • Device PPM
    • Default preferences
      • Audio defaults
      • Device defaults
    • Bookmarks
    • History
    • Run as rtl_tcp server and visualize control
  • Neat Visuals
    • 2D visuals
      • Y Scope
      • Spectrum
      • Waterfall
      • Add faint grid for sense of scale
      • Audio Spectrum
      • X/Y Scope
      • Indicate outer spectrum edges when zoomed
    • 3D visuals
      • I/Q helix
  • Demodulation:
    • Basic modular expansion
    • Multiple demodulators per IQ stream
    • Audio device selection
    • Modes
      • FM
      • FM stereo
      • AM
      • LSB
      • USB
      • DSB
      • I/Q
    • Controls
      • Display Frequency and allow manual adjustments
      • Allow selection of demodulation type
      • Display separate zoomed-in view of current waterfall and spectrum, allow adjustments
      • Display signal level and allow squelch control
      • Display audio output selection
      • Volume control
      • Direct frequency input
      • Mute
      • Waterfall speed
      • RTL-SDR Gain
  • Basic Input Controls
    • Drag spectrum to change center frequency
    • Hold shift and click on waterfall to create a new demodulator
    • Clicking waterfall adds new demodulator when none visible
    • Drag center of demodulator on waterfall to change frequency
    • Drag edge of demodulator on waterfall to change bandwidth
    • Double-Click to move demodulator to frequency within it's current range
    • Hold alt and drag range on waterfall to set demodulator frequency + bandwidth
    • Hold alt+shift and drag range on waterfall for a new demodulator
    • Hover demodulator on waterfall and press 'space' to toggle stereo
    • Hover demodulator on waterfall and press 'd' or 'delete' to delete it
    • Keyboard arrows adjust frequency, shift for faster change
    • Undo / Redo action
  • I/Q Recording and playback
    • Recording
      • Record waterfall output to PNG file chunks of desired height
      • Record I/Q input data
      • Simultaneously record demod decimated I/Q and audio
    • Playback
  • Audio
    • Recording
  • Implement digital demodulation supported by liquid-dsp: (http://liquidsdr.org/doc/modem.html)
    • Demodulator Lab
      • Demodulator I/Q input filtering
      • Audio output filtering
      • Toggle current demodulator exclusively into "Lab" mode
        • Additional visualizations for audio and I/Q stream
          • Audio Spectrum
          • Constellation / X-Y Scope
        • Digital demodulation status and controls
        • Demodulator AGC, Equalization controls
          • Lock AGC and Equalization when digital lock obtained
        • Digital output
          • Output console
          • Capture file (auto?)
          • Network output
          • Block device output
    • Digital modes available to implement
      • PSK
      • DPSK
      • ASK
      • QAM
      • APSK
      • BPSK
      • QPSK
      • OOK
      • SQAM
      • Star Modem
      • MFSK
      • CPFSK
  • Optimization
    • Eliminate large waterfall texture uploads
    • Update visuals to OpenGL 3.x / OpenGL ES
    • Resolve constant refresh on visuals that don't change often
    • Resolve all driver/platform vertical sync issues
    • Group and divide IQ data distribution workload instead of 100% distribution per instance

Advanced Goals and ideas:

  • Design a plan for expansion via modules (dylib/dll/lua)
  • Support shell-based stdin/stdout tools for direct output/playback to/from CLI audio processing apps (i.e. DSD on OSX)
  • Update visuals to support OpenGL ES
  • Basic demodulator filter(s) that can be enabled and tweaked visually
  • Support multiple simultaneous device usage
    • Categorize devices by antenna connections
    • Allow locked frequencies to activate unused devices to continue demodulation on same antenna
  • Integrate LUA
    • Expose liquid-dsp functionality
    • Scriptable liquid-dsp demodulation
    • Scriptable digital demodulation output handlers
      • Create block output devices on *nix?
      • Create socket outputs?
      • Visual outputs?
    • Take control of additional devices and spawning new demodulators (i.e. trunkers)
    • Script manager / live editor
    • Provide scriptable liquid-dsp modulation for trancievers?
    • Allow scripts to launch/run headless (no UI)
  • "PVR" like mode with waterfall time shifting
  • L/R and surround-sound balance settings for separating and listening to mono streams
  • Add tool for converting decimated I/Q recording to video
    • Select video features such as title/demodulation/scope/waterfall/etc
    • Render to video from GL frames->ffmpeg/mencoder /w demodulated audio
  • Accessability / Control
    • USB/MIDI control surfaces
    • Joystick / gamepad input
    • Vibration / force-feeback
  • Investigate compilation via emscripten using rtl_tcp for input
    • Create web server+rtl_tcp bundle for embedded devices
    • Use emscripten compiled CubicSDR via embedded web server

Target Platforms:

  • OSX
  • Windows
  • Linux
  • HTML5

License:

  • GPL