Thomas Kolb
0fc63f5f69
HAM-64 address format implementation
2024-07-01 20:58:20 +02:00
Thomas Kolb
b6f040ebc7
Implement layer 2 header packing and unpacking
2024-06-30 17:39:56 +02:00
Thomas Kolb
cadfd63997
Start defining layer2 structures
2024-06-30 16:18:11 +02:00
Thomas Kolb
2fefbc7f8c
doc: ignore generated diagrams
2024-06-30 15:57:47 +02:00
Thomas Kolb
1840b3099c
doc: add some message sequence charts
...
- Connection establishment
- Connection close
- Packet transfer
2024-06-22 01:29:29 +02:00
Thomas Kolb
95d9eda0a0
doc: add introduction + some more ideas
2024-06-08 11:49:43 +02:00
Thomas Kolb
dde4e5ba7d
doc: moved CRC from layer 1 to layer 2
2024-06-08 11:34:52 +02:00
Thomas Kolb
c45eb4e334
doc: define connectionless frame type
2024-06-08 11:34:52 +02:00
Thomas Kolb
6fe9fdbe2b
doc: minor clarifications
2024-06-08 11:34:52 +02:00
Thomas Kolb
8fb345b27c
doc: automatic packet repetition algorithm
2024-06-08 11:34:52 +02:00
Thomas Kolb
6065157023
doc: added Makefile
2024-06-08 11:34:52 +02:00
Thomas Kolb
698cf74f3a
doc: document data whitening procedure
2024-06-08 11:34:52 +02:00
Thomas Kolb
ccc4e452ff
doc: start defining the layer 2
2024-06-08 11:34:52 +02:00
Thomas Kolb
fe5bcabd14
doc: document burst format
2024-06-08 11:34:52 +02:00
Thomas Kolb
be0cac13c1
Starting to write the documentation with AsciiDoc
2024-06-08 11:34:52 +02:00
Thomas Kolb
fd17ef3c1e
Use full preamble for frequency estimation
2024-06-08 01:57:43 +02:00
Thomas Kolb
26a2558535
Add differential part to coarse frequency control
2024-06-08 01:54:42 +02:00
Thomas Kolb
2f2834026e
Fix size of transmitted packets
2024-06-01 16:47:10 +02:00
Thomas Kolb
de0f3620e6
Move hexdump() function to utils
2024-06-01 16:04:17 +02:00
Thomas Kolb
692780b313
setup_tundev.sh: fix shebang
2024-05-31 20:09:53 +02:00
Thomas Kolb
24bc1f8140
Fixed packet size with appended CRC
2024-05-31 18:36:16 +02:00
Thomas Kolb
f6404dd0ea
Move payload CRC to layer 2
...
Layer 1 only does decoding of the FEC, but the CRC check for data integrity is
done in layer 2 now.
2024-05-31 17:25:50 +02:00
Thomas Kolb
0e8e049e0a
Replace all perror() calls with LOG()
2024-05-30 11:02:08 +02:00
Thomas Kolb
65daa182ef
Use the new logging system everywhere
2024-05-30 10:49:43 +02:00
Thomas Kolb
d6eaef91cd
Switch to new logging system
...
The new system supports:
- time-tagging of log messages
- message priority levels with a threshold below which they are not printed
- colored output of the message priority for easy identification
- compile-time disabling of all logging per C module
So far, it is integrated in the main and rx modules which generate most
messages. Other modules will be migrated in the future.
2024-05-28 23:53:11 +02:00
Thomas Kolb
d60788b6ad
Config changes known to work with two directly connected HackRFs
2024-05-28 20:00:46 +02:00
Thomas Kolb
91facbf699
rx: reset internal state when restarting after a transmission
2024-05-28 19:55:21 +02:00
Simon Ruderich
d5aeb6c0bc
visualizer: make it optional to dup JSON to file
2024-05-28 08:59:06 +02:00
Simon Ruderich
570c379bc5
visualizer: always use === for comparisons
2024-05-28 08:51:56 +02:00
Simon Ruderich
21220deed7
visualizer: draw marker in history plot after selecting a packet
2024-05-28 08:51:56 +02:00
Simon Ruderich
7024964cae
visualizer: use multiple plots for history
2024-05-28 08:51:56 +02:00
Simon Ruderich
a2e23fceff
visualizer: limit history plot to 300 packets
...
The drawing gets slow with too many points.
2024-05-28 08:51:56 +02:00
Simon Ruderich
bc2f5ca76c
visualizer: assign id to identify packets
...
The id is displayed in the graph, the packet information and in the
trace (on mouse over).
2024-05-28 08:51:56 +02:00
Simon Ruderich
c5024a0b30
visualizer: skip redraws when they take too long
2024-05-28 08:51:56 +02:00
Simon Ruderich
c63f7e8b57
visualizer: treat -1e38 as NaN
...
I considered updating jsonlogger.c to represent NaN as "null" in the
JSON. However, this makes the hand-written JSON generator much more
complicated.
2024-05-28 08:51:56 +02:00
Simon Ruderich
53190cd17c
visualizer: don't use fixed scales
...
We might get (unexpected) input which is outside of the usual range.
2024-05-28 08:51:56 +02:00
Simon Ruderich
6fc4df205c
Add HTML/JS visualizer with plots and graphs
2024-05-28 08:51:56 +02:00
Simon Ruderich
5fb5a2908d
jsonlogger: increase pipe buffer to reduce likelihood of corrupted messages
...
Our JSON messages can get rather large which can cause a buffer overrun
when the reading program is not scheduled at the same time. When the
kernel returns EAGAIN we abort writing the current JSON message.
However, the unfinished (and thus invalid) JSON message is still in the
pipe and will be processed by the reading program.
Increase the pipe buffer from the default 65536 to reduce the likelihood
of this happening. It's difficult to completely prevent the issue as we
don't want to slow down the main program due to slow logging.
2024-05-28 08:51:56 +02:00
Simon Ruderich
657ac4faa3
test_rx_file: add JSON logging (controllable via JSONLOGGER define)
2024-05-28 08:51:56 +02:00
Thomas Kolb
33df7132ef
rx: tag most debug messages with the sample index
2024-05-25 18:24:40 +02:00
Thomas Kolb
5f8346d290
agc: update squelch threshold more often
...
This fixes the noise level tracking in test cases like the loopback
test where the signal has already ramped up before the first noise level
update.
2024-05-25 18:16:24 +02:00
Thomas Kolb
ca241f266b
rx: add monotonic sample counter for debug messages
2024-05-25 18:15:23 +02:00
Simon Ruderich
0237ea6494
tests: fix compile
2024-05-09 18:32:51 +02:00
Simon Ruderich
a4e55f781b
Always NUL-terminate path in jsonlogger_init()
2024-05-09 18:32:26 +02:00
Simon Ruderich
f689c4ec15
Fix compiler warnings
...
- implicit declaration of built-in function 'strncpy'
- control reaches end of non-void function
- assignment to 'void (*)(int, siginfo_t *, void *)' from incompatible pointer type 'void (*)(int)'
2024-05-09 14:37:39 +02:00
Thomas Kolb
a42d795002
Dump debug info from the RX via jsonlogger
2024-05-07 21:40:29 +02:00
Thomas Kolb
5bcd3a6933
jsonlogger: add test file and improve open/close behaviour
2024-05-05 18:40:50 +02:00
Thomas Kolb
251aca7738
Basic implementation of a JSON logger module
2024-05-05 18:09:00 +02:00
Thomas Kolb
033c26bcae
preamble: invert symbols to match BPSK convention
2024-04-27 22:42:32 +02:00
Thomas Kolb
c6ea578808
sdr: fix loss of samples due to unaligned buffer reads
...
sdr_rf_to_baseband() processes samples in blocks of size SDR_OVERSAMPLING. If
the total number of samples does not align with this block size, the leftover
samples are lost and phase and timing glitches result.
To mitigate this, sdr_receive() now has an additional parameter that specifies
the alignment of the returned data. The number of samples returned is always a
multiple of this alignment factor. This feature is used to ensure that the
number of returned samples is a multiple of SDR_OVERSAMPLING and therefore no
samples are lost in sdr_rf_to_baseband().
sdr_rf_to_baseband() now has an additional check that makes the function fail
if the alignment is incorrect.
2024-04-27 20:08:04 +02:00