Ryan Turner
d2ddddf478
Fix incorrect include paths for platform-unique header files
2025-10-02 19:43:55 +02:00
Ryan Turner
00a4dbb063
style: resolve ambiguous paths on include macros
...
Update meson and cmake config to only include openrtx and platform paths.
Update files to use <..> for system and external libraries, ".." for
project files and new relative paths as necessary.
Did not attempt to fix areas where includes that should be <..> were
previously ".."
Inspired by #96 , closes #359 .
Acked-by: Silvano Seva <silseva@fastwebnet.it>
2025-09-28 17:27:45 +02:00
Silvano Seva
6db558e89c
core: dsp: refactor DC block filter implementation
...
New DC block filter implementation using fixed-point math and guaranteeing
zero DC component on the output signal.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
2025-09-28 14:12:20 +02:00
Silvano Seva
03d1ae5546
Updated year in copyright headers
2025-04-04 21:15:39 +02:00
Jim Ancona
b16c3c0fd1
M17: replaced std::experimental::array with std:array
2025-03-01 20:01:08 +01:00
Silvano Seva
4f791a8f09
M17: FrameDecoder: decodeLich: added validation of LICH chunk number
2025-02-11 19:01:34 +01:00
Wojciech Kaczmarski
9786e80e72
M17: FrameEncoder: fixed wrong frame number mask
2024-10-25 18:54:42 +02:00
Silvano Seva
a6f01c3e55
Small refactoring of M17 modulator.
...
- made start() function return a boolean indicating the actual modulator status
- moved sending of preamble to a dedicated function
- renamed send() function to sendFrame()
2024-07-12 11:11:44 +02:00
Silvano Seva
dc930f4a4b
Added CONFIG_M17 macro to enable M17 support on each target
2024-02-01 11:07:20 +01:00
Silvano Seva
598f1c4523
M17: deeply restructured the demodulator code
...
Restructured the M17Demodulator class and rewritten the
demodulator logic to have a more solid lock on the
baseband stream. This fixes the long standing bug of the
demodulator causing random losses of lock even when
receiving a solid baseband stream.
2024-01-27 15:15:37 +01:00
Silvano Seva
7ccfbe62c8
Fixed compilation errors in M17 demodulator logger
2023-11-12 12:41:35 +01:00
Marco
74f7912b4c
Fix M17 callsign decoder sometimes causing crashes
2023-09-12 17:47:49 +02:00
Silvano Seva
7d90d15a5f
Adapt code to the new audio stream API.
2023-08-30 18:04:25 +02:00
Silvano Seva
1011dd1081
Moved audio_stream.h from interfaces to core headers
2023-08-30 18:04:24 +02:00
marco
7b64fca573
M17: change BROADCAST to ALL for decode callsign
2023-08-28 10:31:09 +02:00
marco
f40ecc60db
M17: change decode callsign x to space
2023-08-28 10:30:51 +02:00
Silvano Seva
e93b461beb
Added phase inversion setting to M17 modulator
2023-05-29 22:12:40 +02:00
Silvano Seva
4a3bc93fa4
Always send an M17 EOT frame as the last frame before terminating baseband output
2023-03-12 16:27:31 +01:00
Silvano Seva
a89a7523cb
Updated year in copyright headers
2023-02-08 16:33:02 +01:00
Silvano Seva
f24699f14e
Fixed bug in M17 demodulator causing it to sometimes take more than 20ms to process a block of baseband samples when, in unlocked state, a valid syncword is searched.
2022-10-31 08:41:31 +01:00
Silvano Seva
9d021b7557
Fixed bug in M17 modulator and demodulator making them not releasing their audio paths on termination thus locking up the thread on M17 mode re-entering.
2022-10-31 08:41:31 +01:00
Silvano Seva
21481072e7
Moved audio management in M17 opmode handler to audio path system
2022-10-28 09:47:47 +02:00
Silvano Seva
b5fc9b252d
Moved code of compensating filter for MDx PWM-based DAC to a dedicated class.
2022-08-28 12:17:04 +02:00
Silvano Seva
d11bb903b1
Made public the M17Modulator.stop() function, added macro to enable the transmission of an M17 EOT frame (disabled by default).
2022-08-28 12:00:36 +02:00
Jacob McSwain
fa33f15417
Implemented M17 EOT marker
2022-08-28 11:59:31 +02:00
Silvano Seva
a22aceb576
Reorganized code for M17 transmission: removed M17Transmitter class, use M17FrameEncoder to assemble LSF and data frames, modified API of M17Modulator class.
2022-08-28 11:59:31 +02:00
Silvano Seva
9c2091c060
Changed M17 RX behaviour so that received stream data is forwarded to codec2 decode only when a full valid LSF is received.
2022-07-21 22:14:55 +02:00
Silvano Seva
eda835ee0b
Tightened locking conditions for M17 demodulator: now lock is acquired only when there is an exact syncword match (zero hamming distance)
2022-07-11 10:37:58 +02:00
Silvano Seva
54aa794bf8
Changed file extension of all C++ only header files from .h to .hpp
2022-07-09 18:22:36 +02:00
Silvano Seva
d2e0b7d940
Improved heap memory management in M17 modulator class
2022-06-05 12:27:25 +02:00
Silvano Seva
a1888ae19e
Improved heap memory management in M17 demodulator class
2022-06-05 12:24:43 +02:00
Silvano Seva
4d4ebae2f3
Added configurable phase inversion to M17 demodulator. Forced enabling of phase inversion for MD3x0 VHF radios.
2022-05-30 19:19:01 +02:00
Silvano Seva
bfa3494777
Fixed bug in M17 demodulator causing the M17Demodulator::getFrame() function to return the frame currently being processed instead of the fully demodulated one.
2022-05-27 21:49:33 +02:00
Silvano Seva
63f4c787c0
Moved helper functions for M17 Golay to a dedicated source file
2022-05-27 21:49:33 +02:00
Niccolò Izzo
6322cb49a4
Cleanup demodulator, improved quantization log
...
Unified offset and phase variable to reduce the chance of off-by-ones
between buffers. Improved logging on linux and module17 adding
quantization indices.
TG-81
2022-05-27 21:49:33 +02:00
Silvano Seva
46c988bdc2
Restoring priority level of output streams to PRIO_BEEP when the stream terminates, made M17Modulator::emitBaseband() wait for effective stream termination before returning when transmission stop is requested. Fixes #76
2022-05-27 21:49:33 +02:00
Silvano Seva
76be50db61
Improved debug log in M17 demodulator, changed trigger condition for log dump, re-enabled audio reproduction when logging.
2022-05-27 21:49:33 +02:00
Silvano Seva
4304013d62
Updated M17 demodulator debug logger: now log data is continously updated and dumped only in case of a missed sync after lock has been acquired.
2022-05-27 21:49:33 +02:00
Niccolò Izzo
29ad0830f0
M17 demodulation improvement
...
Add logging in syncword sweep, fix unsigned underflow bug,
fixed symbol average computation for quantization.
Do syncword sweep whenever available.
TG-81
2022-05-27 21:49:33 +02:00
Silvano Seva
d17d683b2d
M17 code cleanup pass: reorganised data type definitions and constants
2022-05-27 21:49:33 +02:00
Silvano Seva
5b27e6b692
Ensure proper termination of baseband sampling when M17Demodulator::terminate() is called.
...
Solves #74 .
2022-05-27 21:49:33 +02:00
Silvano Seva
7aff678069
Improved robustness of frame type detection, now based on minimum hamming distance between syncwords
2022-05-27 21:49:33 +02:00
Niccolò Izzo
115982d279
Add demod log script
...
Add script to receive the demodulated data from Module17/radio, to use
it you need to add in meson.build:12 the ENABLE_DEMOD_LOG define.
Build and flash into the platform, build and run scripts/get_demod_log,
turn on the radio, remember to turn of radio before you terminate
get_demod_log, print the output with
`scripts/plot_m17_demod_csv.py serial_demod_log.csv`.
TG-81
2022-05-27 21:49:32 +02:00
Niccolò Izzo
c987848382
Add syncword hot re-sync fix DC removal
...
DC removal filter had a bug that created weird positive spikes on
Module17, add a syncword hot re-sync to be able to correct small phase
errors that appear every five seconds more or less.
TG-81
2022-05-27 21:48:47 +02:00
Silvano Seva
1f77c2af6c
Reorganised logging inside M17 demodulator, logging is disabled by default.
...
On non-linux devices log data is printed on the serial port in raw binary format.
2022-05-27 21:48:47 +02:00
Niccolò Izzo
ef61c532a3
Cleaned up quantization average
...
Now average is computed over all the syncword symbols, for each syncword
as a simple average.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
5fe5b0e578
Refactor M17 logging
...
Refactored logging functions to enable in-system logging on Module17 and
MDx radios.
TG-81
2022-05-27 21:48:47 +02:00
Niccolò Izzo
c3c984d504
Add syncword fuzzy detection
...
Frame decoder now tolerates bit error in syncword, removed syncword type
detection in demodulator code.
TG-81
2022-05-27 21:48:47 +02:00
Silvano Seva
6b31a73f42
Corrected RRC gain and changed HR_C5000 modulation factor and input gain to have the correct 2.4kHz deviation when transmitting M17 with an MD3x0 radio
2022-05-27 21:48:47 +02:00
Niccolò Izzo
b1f2cb109f
Switch M17 Rx sample rate to 5SPS
...
Due to the RRC computation sometimes violating the timing constraints,
we switched the M17 demodulator to 5 samples per symbol (24KHz), thus
dividing the processing time by four ar the number of samples halves as
well as the number of taps of the RRC.
Minor adaptation on the code followed.
TG-81
2022-05-27 21:48:47 +02:00