RTL-SDR IndieGoGo sprint

RTL-SDR homepage Experimental Github Repo Windows Builds IndieGoGo project Featuritis home page
T#100 (8) Work on rtl_fm
Rtl_fm already supports a lot of features,
but there is still lots to do.
T#113 (7) Trunking support
No one in my area uses trunking.
I may need interested people to provide recordings.
T#112 (7) Multiple dongles (rtl_fm)
Demodulate any number of channels, anywhere in the spectrum.
Basic antenna diversity could come out of this too.
T#111 (7) Multiple demodulators
Demodulate any number of channels that are within 2.4MHz.
T#194 (7) Left+right mix
Demod two channels simultaneously.
One goes to the left stereo channel, the other to the right.
T#110 (7) FIFO input/output
Also known as named pipes.
T#193 (7) Arbitrary translation [commit]
Rtl_fm uses a fixed 90 degree translation.
Multiple channels will need different amounts of translation.
T#105 (3) Better squelch
Lots of room for improvement here, probably the #1 area of complaint.
T#107 (3) Carrier/noise squelch
Only one type of squelch is supported,
other types exist and should be options.
T#191 (2) Limit open squelch
A time maximum that a carrier can hold the squelch open.
T#180 (2) Per-channel squelch
This might require using a channel configuration file.
T#167 (2) Generate null audio on squelch [commit]
Normally when squelch kicks in, the output is stopped.
This causes issues with streaming programs.
T#106 (2) Linear squelch [commit]
The present squelch option is dependent on every other option.
Make the squelch math unit-less and more consistent.
T#157 (3) Networked rtl_fm
Allow rtl_fm to support all rtl_tcp features.
T#158 (3) Clean up and merge rtl_udp
T#160 (2) Modular engine and modular config
Allow DSP to be chained together in an arbitrary fashion.
T#154 (2) Fix oversampling
Oversample mode requires extra lowpasing in order to be effective.
T#114 (2) Port to non-rtlsdr hardware
First, I would need access to the hardware in question.
Second, this could easily get very complicated very fast.
T#109 (2) Carrier tracking
Signals with a well-defined carrier can be automatically tuned.
This could correct for thermal drift, doppler shift, or small typos.
T#108 (2) RAW processing
Load and process pre-recorded raw iq streams.
T#196 (1) Report scanning info
Some way of identifying which station is received.
T#187 (1) Improve WBFM
WBFM support is currently the lowest quality to confirm a dongle is working.
T#189 (1) Improved resampler
The present resampler is a pretty terrible boxcar filter.
Replace it with (at least) a CIC filter.
T#188 (1) WBFM stereo mode
T#182 (1) Detailed logging
Various levels of freq, timestamp, power, squelch.
T#179 (1) Timestamped files
Create files such as 'freq_date_time.wav/raw'
(Only works with squelch.)
T#178 (1) Track more information about channels
Information like last time seen, power level, per-channel squelch.
T#177 (1) Fix '-F 9' filter
Produces a ticking sound in the audio at the buffer boundary.
T#166 (1) Optional wav header [commit]
Generate a header to make post-processing easier.
T#148 (1) Better AM demod [commit]
The AM demod is literally weak. Almost silent.
Mostly this requires some form of auto-gain.
T#115 (1) No-copy architecture [commit]
Drastically reduce the amount of memory transfers performed.
T#186 (1) Perform everything in-place [commit]
Most of the code functions in-place, but none of the demodulators do.
T#164 (6) Work on misc utilities
There are some gaps in the SDR tool chain.
T#165 (6) Generic fsk/ask/ook demodulator
Audio stream in, raw bits out.
T#104 (6) Work on librtlsdr
This is probably my weakest area and the most difficult section of code.
But I've written a bunch of usablity improvements and there are plenty more to do.
I can also do the boiler plate coding to transform your proof-of-concept patch into something likely to be merged.
T#146 (3) Port reset/re-init on disconnect
Sometimes the USB will flake out.
Wouldn't it be nice if the library could power-cycle the USB port, restore the dongle's state and continue where it left off?
(Detected and handled automatically of course.)
T#142 (3) 'auto' as a valid gain value
There is no standard way to select automatic gain from the command line.
By using '-g auto', automatic gain can be forced.
T#143 (2) Update safe max to 2.4MS/s
When most of rtl_foo was written, 2.8MS/s was the safe upper limit.
Now it has been found to actually be 2.4MS/s and everything requires small tweaks.
T#192 (0) Gain options
T#190 (0) Quiet mode for tuning errors
The new range tests generate hundreds of harmless errors.
T#169 (0) Report true frequency when dithering
The PLL has a resolution of 439.45Hz when not dithering.
T#144 (0) Warn when sampling above safe limit
During verbose operation, the library should produce a warning when sampling is dangerously high.
T#138 (0) Man pages
I enjoy writing groff by hand and think everything should have a manpage.
This might be split into two subgoals, for the rtl_foo commands and rtl-sdr.h
T#176 (0) merbanan's r820t range test [commit]
Find upper and lower limits of the tuner.
T#168 (0) Rebase old patches to HEAD [commit]
Make things easy for the Osmocom guys to merge
T#145 (0) Dithering option [commit]
By default, the r820t will dither the PLL for more exact tuning.
Disabling this is required for phase-aligning multiple synchronized dongles.
T#141 (0) Add units to rtl_sdr -n [commit]
This option is missing K/M/G support.
T#140 (0) Tejeez's retuning patches [commit]
By reducing the amount of I2C overhead, tuning can happen 2.5x faster.
This will mostly benefit rtl_power and rtl_fm.
T#173 (0) i2c repeater toggles [commit]
Keep the i2x channel open while in use, instead of toggling.
T#172 (0) i2c batching [commit]
Send all changed registers in a single burst
T#171 (0) Register caching [commit]
Only update registers when they are changed
T#139 (0) Tejeez's filter patches [commit]
Tejeez has done a lot of great work with finding optimal filter registers for various bandwidths.
These might be chosen automatically or given a new API call.
T#103 (5) Work on rtl_sdl
This was originally a little demo thrown together in three days.
It has the potential to be the fastest, lightest and easiest to build waterfall ever.
screenshot 1 screenshot 2
T#135 (4) Constellation display
One of the simplest ways of ID-ing a modulation.
Plots the IQ pairs on an XY plane.
T#133 (5) Band selection
Turn rtl-sdl into a real waterfall.
Mouse/keyboard controls to select a channel's freq and width.
T#137 (3) Audio output
SDL provides a nice cross-platorm audio library.
Basically would merge rtl_fm into the waterfall.
T#133 (5) Band selection
Turn rtl-sdl into a real waterfall.
Mouse/keyboard controls to select a channel's freq and width.
T#195 (2) Remote control UI
Yes, the useless one.
(Feature may be linux-only, we'll see how WinLIRC goes.)
T#136 (2) Autocorrelation display
Calculates the self-symmetry of a signal.
Very handy for deciding if a signal carries useful information.
T#134 (2) Channel manager
Save your channels and quickly restore them.
T#132 (2) Keyboard controls
Originally it was designed for a touch screen.
There are some non-sensical keybinds that map to the touch screen's hardware buttons.
T#131 (2) Mouse zoom
There is no way to change the on-screen bandwidth.
Should also report the displayed bandwidth as well.
T#130 (2) Window size detection
The screen size is fixed to the original demo hardware.
It does not yet detect full-screen or window resizing.
T#101 (5) Work on rtl_power
A waterfall power logger, without the burden of a GUI.
T#122 (3) Heatmap improvements
Heatmap was originally supposed to be a proof of concept.
It needs some work to become a serious plotting tool.
T#149 (2) Stdin renders
Convert rtl_power output directly to a heatmap
without saving the CSV to disk.
T#151 (2) Automatic image chunking
Every Y pixels, automatically save the image and start fresh.
T#150 (2) Provide db limits on CLI [commit]
Normally the min/max range requires a preliminary pass
Let the user provide the range and skip this pass.
T#123 (2) Plot sub-sections
Given a frequency or time range, draw only that section of the data.
Should be capable of relative time, such as "last hour".
T#121 (1) DLBB's satellite features
Places marks around where and when a satellite should be detectable.
T#175 (1) pksato's time stamps [commit]
Provide an interval and get time-ticks along the Y axis.
T#174 (1) Up/down converter shift [commit]
A command line option to offset the frequencies.
T#159 (1) Tholin-style labeling [commit]
Just the top 'tape measure', though the bottom could be scripted.
T#153 (1) Heatmap 24h rollover [commit]
Runs that cross over midnight report an incorrect duration.
T#124 (1) Smarter labeling [commit]
Automatically scale the density/resolution of frequency labels
so there are always some visible and no overlap.
T#161 (2) GNUPlot integration
Produce files that can be read directly by gnuplot.
T#126 (2) Multiple dongles (rtl_power)
There are three cases to consider here:
1. Dongles == bands. Monitor all bands without hopping.
2. Dongles < bands. Hop in rotation.
3. Dongles > bands. Continuously monitor with most, hop with the remainder.
(It might be worthwhile to specify which dongles do which bands, for better antenna use.)
T#125 (2) Multi-threading (rtl_power)
Right now rtl_power drops data while the FFT is being processed.
T#163 (1) HDF5 support
HDF5 is a popular binary format for scientific data.
Most likely this would be a stand-alone filter and not integrated into rtl_power.c
T#118 (1) Radio astronomy features
A lot of astronomy is measuring signal power, but rtl_power is not really suited for RA yet.
T#119 (1) Linear output option [commit]
Rtl_power only support a logarithmic db output scale.
An option for a linear scale would help with quantitative measurements.
T#117 (1) Interactive heatmap
Wouldn't it be nice if a program could read the CSV directly,
without a length and memory-intensive conversion process?
Most importantly, it would give the exact time and frequency of a signal under your cursor.
T#184 (0) Rtl_power activity summary
Convert an rtl_power CSV file into a time/freq/duration activity log.
Possible sub-task for making it operate real-time?
T#183 (0) Flag for bandwidth control
There are several sample rates to meet a given FFT.
Default is fastest, make option for slowest.
T#181 (0) Activity log
An external script that converts the csv to active timestamped frequencies.
T#185 (0) Field for max sample rate [commit]
A higher sample rate means less hops, a lower sample rate might have less imaging.
T#162 (0) Measure multiple frequency ranges [commit]
Multiple -f options should allow scanning of non-contiguous bands.
T#120 (0) Fixed bins (variable crop) [commit]
Rtl_power should give you the exact size of bin you ask for,
instead of fudging it to make the math easier.
T#116 (0) Guide with examples [commit]
A big long document with lots of pictures and examples of the most common use cases.
T#102 (4) Work on rtl_adsb
A very small ADS-B demodulator.
Normally the output is piped to a plotting program.
T#129 (3) 2MS/s oversampling
Doubling the sample rate would improve the SNR by half a bit and pick up weaker, more distant signals.
It will also increase the CPU use 3x or 4x so this will be optional.
T#127 (3) Message decoder
Right now it can only produce the raw ADS-B hex.
Instead, fully decode the message.
T#128 (2) CRC corrections
At present it does no CRC checks.
If there are very few errors, it is possible to fix them and recover the message.
T#152 (1) Network output for adsb
Provide an option to send output directly to an ip/port.
T#155 (3) Work on rtl_tcp
Rtl_tcp lets remote control dongles and stream across networks.
T#170 (2) GZ compress stream
Typically compresses by 7x.
T#156 (2) Sharing/sniffing connections
Provide a mechanism for 3rd party programs to follow dongle state.
For example, to automatically switch antennas based on tuning range.
T#147 (0) Automatic Windows build [commit]
I occasionally make windows DLLs for those without compilers.
This could be done continuously and automatically for each commit.
(They'll be built with Mingw32. Maybe 64 bit as well.)