Commit graph

25 commits

Author SHA1 Message Date
Thomas Kolb ec8770f399 sxceiver: make it run without crashing
Some checks failed
/ build-hamnet70 (push) Failing after 13s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
Had to fix multiple segmentation faults due to required by-reference
outputs that were set to NULL pointers.
2024-10-01 21:10:14 +01:00
Thomas Kolb fc9e5c5229 Combine layer2_rx and layer2_tx in a new connection module
The new module is not used yet, but this is a preparation for the future
multi-client networking support.
2024-08-25 22:26:56 +02:00
Thomas Kolb 017eb221f1 Integrate the interleaver 2024-08-16 22:14:07 +02:00
Thomas Kolb 576cdbfac5 Added ham64.c/.h to CMakeLists.txt 2024-07-20 22:32:01 +02:00
Thomas Kolb 9bbac6ae95 Add new files to CMakeLists.txt 2024-07-18 22:57:22 +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 a42d795002 Dump debug info from the RX via jsonlogger 2024-05-07 21:40:29 +02:00
Thomas Kolb dd5712eada Add options parsing module 2024-03-30 21:51:27 +01:00
Thomas Kolb 2b741acd8a Use libhackrf directly (not tested yet) 2024-01-02 22:49:16 +01:00
Thomas Kolb afb25a69d8 Use dynamic linking for liquid-dsp again 2023-05-12 13:47:05 +02:00
Thomas Kolb c8e0516e80 Implement time-based carrier sensing
In the following events, the modem cannot switch to transmit mode for the
given time:

- after a preamble has been received, for 500 ms
- after a packet has been successfully decoded, for 1 ms
- after receive mode was initially enabled, for 500 ms

Note that the times are that long to work around the RX/TX switching of
the hackrf and can be hopefully reduced to <10 milliseconds in a later
version.
2022-05-07 21:17:53 +02:00
Thomas Kolb 85663d5304 Added SDR abstraction layer 2022-03-03 22:19:03 +01:00
Thomas Kolb 934b18e382 Integrate TUN device interface
Packets are now read from the TUN device and transmitted. The signal
goes through a channel emulator and is then received + decoded. If
decoding is successful, the result is written back to the TUN device
(which does not make much sense, but works for testing).

Unfortunately, there still seems to be a problem in the receiver: packet
loss is very high even at extremely high SNRs.
2022-02-27 20:21:14 +01:00
Thomas Kolb 890baf577f Moved config.h to src/ top level 2022-02-27 18:41:16 +01:00
Thomas Kolb a60b8b1f87 Moved results.h to src/ top level 2022-02-27 16:02:51 +01:00
Thomas Kolb 1787d0d351 layer1: implement per-packet modulation/coding
This allows a higher layer to adjust data rate based on the current
channel conditions. For example, the SNR could be measured and if it
becomes too low for the current modulation/code, a lower-order
modulation or stronger code could be used.
2022-02-17 21:39:18 +01:00
Thomas Kolb 876bafd6f9 Moved receiver to separate module 2022-02-16 20:52:46 +01:00
Thomas Kolb a5634ed736 Move the transmission chain to a separate "tx" module 2022-02-13 21:29:35 +01:00
Thomas Kolb 513a399ae4 Refactoring: moved layer1-related stuff to subdirectory 2022-02-13 20:05:47 +01:00
Thomas Kolb eb3fc5f9c7 Use data whitening 2022-02-12 22:06:49 +01:00
Thomas Kolb 8060137c1d Move frequency estimation to separate module 2022-02-05 20:33:56 +01:00
Thomas Kolb c17c7e060f Integrate preamble search 2022-02-01 21:35:43 +01:00
Thomas Kolb d522a1d6bd Implemented pulse shaping
The pulse shaper currently uses an RRC filter with beta=0.2.
2022-01-29 22:05:17 +01:00
Thomas Kolb 9a1107ff38 Added correlator + small test program 2022-01-22 22:42:05 +01:00
Thomas Kolb 0b237a47cb Initial commit: infrastructure 2021-10-17 19:25:42 +02:00