aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
blob: ce997d67987d46acd8ac0dc87c9471894166948d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
This TODO file lists ideas and features for future developments. They are
more or less ordered according to their benefit, but that is subjective
to some degree.

Unless written, no activity has been started on the topics.

TODOs for ongoing SDR output refactoring
----------------------------------------
Currently, all the frontend tuning and timestamping settings are UHD-specific.
To make it possible to run with synchronous=1 using Soapy, refactoring the
output to share the parts that are common.

This would go towards SFN support with LimeSDR devices, under the condition
that the LimeSDR gets support for a HW timestamp that can be set from a PPS
signal. Discussion ongoing here
https://discourse.myriadrf.org/t/synchronize-two-limesdr/1714


Move dpd port from uhd section to somewhere else.

Clean up and separate GPS and refclk checks.
 * *done* handle UHD GPSDO and time
 * handle SoapySDR time
 * Add refclk stuff and timestamps to Soapy.
 * Ensure muting is set properly at startup.

Add antenna selection to config.

Portability: replace clock_gettime with std::chrono

*done* Make an abstraction for the DPD feedback server, use it for Soapy and UHD.

*optional* Move staticdelay into a new process block

Double-check all #includes

Move other non SDR outputs to the output folder.

Tests, both with B200 and LimeSDR:
- No timestamps
- with timestamps
- LO offset
- muting through RC
- proper muting in absence of timestamps
- GPS lock loss behaviour
- All RC commands
- Underrun recovery
- Proper teardown
- DPD server


Finalise EDI input
------------------
The EDI input, based on work started in http://git.mpb.li/git/odr-edilib/
is not complete:

 * Add option to define max fill of input udp buffer.
 * Flag and present errors in some way (packets missing, RS faults, sequence errors, etc)
 * Detect and handle changes in mux composition
 * Fix misbehaviours when packets are intentionnally interleaved
 * Fix hangup where it tries to decode old PSEQs for too long


Resampler improvements
----------------------
 * Assess quality of window currently used.
 * Evaluate usefulness of other windows.
 * Distribute energy of Fs bin equally to both negative and positive
   frequencies in the back buffer.


Review CicEq
------------
The CIC Equaliser was used for the USRP1 to compensate for spectrum flatness.
It is not documented, and its effect poorly explained. Review if still needed,
and document appropriately.


Add metadata to flowgraph
-------------------------
The flowgraph does not support metadata. This is why the timestamp has this
kludge with the delay queue, so that the timestamps are delayed properly
depending on what is included in the flowgraph.

Without metadata inside the flowgraph, it is more difficult to pipeline the DSP
processing to make use of many-core systems, because the timestamp cannot be
carried alongside the data it corresponds to.