Silvano Seva
35c1f062c6
Implementation of M17 frame encoder
2022-05-27 21:48:46 +02:00
Silvano Seva
5fbd39959c
Implementation of M17 frame decoder
2022-05-27 21:48:46 +02:00
Niccolò Izzo
3163dd49d7
Add M17 demodulator code and tests
...
Added implementation of the M17 4FSK demodulator, including clock
recovery, phase detection, and quantization algorithms.
A testsuite is also included to do regression testing against a
reference baseband pre-generated and the corresponding reference
bitstream.
A 1% BER is still present due to a fault likely in the RRC filtering,
since the eye diagram of the filtered stream is bad.
TG-81
2022-05-27 21:48:46 +02:00
Silvano Seva
396f66a1f3
Implementation of M17 Viterbi decoder and associated unit test
2022-05-27 21:48:46 +02:00
Niccolò Izzo
876cb87d57
Move rrc filter into separate compilation unit
...
By moving the rrc filter into a separate compilation unit with its own
header file, we can use it both in the modulator and in the demodulator.
2022-05-27 21:48:46 +02:00
Niccolò Izzo
df5a35e843
Adapt M17 Golay Test to Unit Test Infrastructure
2022-05-27 21:48:46 +02:00
Niccolò Izzo
ce10edfb47
Fix GD77 build, add windows tools
...
GD77 build was broken because of missing binary tools, Windows had no
dedicated option for wrapping the GD77 firmware.
TG-303
2022-05-03 12:53:11 +02:00
Silvano Seva
ab3d148449
Implemented activation of external flash backup and restore via menu entries
2022-03-22 15:10:52 +01:00
Silvano Seva
e56cf52f28
Partial implementation of xmodem protocol: function for transmission of xmodem packets and small testsuite for dumping the content of external flash memory via xmodem
2022-03-11 19:28:45 +01:00
Silvano Seva
052580df3a
Implementation of CCITT CRC16
2022-03-05 11:08:31 +01:00
Silvano Seva
b97d1154d5
STDIO redirection to USB virtual COM port disabled by default, can be enabled by defining the ENABLE_STDIO macro
2022-03-05 10:40:41 +01:00
Silvano Seva
3588f351a1
Created 'core' subfolders inside openrtx/include and openrtx/src containing main OpenRTX source files
2022-03-05 10:39:35 +01:00
Silvano Seva
624dca2b97
Renamed macro DISABLE_KEEP_ON to RUNNING_TESTSUITE
2022-03-05 09:09:25 +01:00
tarxvf
9297c08b05
Add a menu for clearing settings and vfo to sane defaults ( #67 )
2022-02-26 12:42:28 +01:00
Silvano Seva
24464a66a8
Integration of tinyusb driver into OpenRTX, old driver still kept active
2022-02-26 12:29:28 +01:00
Federico Amedeo Izzo
8df0ce2f2f
Add tinyusb library as meson subproject, providing USB drivers.
2022-02-26 12:23:27 +01:00
Silvano Seva
3fb93f0a86
Updated CMSIS header files for STM32F4 to version 2.6.7
2022-01-15 14:55:59 +01:00
Silvano Seva
3776b30121
Automatically disabling the power keep switch when running testsuites, as those may never call platform_terminate()
2022-01-03 14:49:25 +01:00
Niccolò Izzo
cc2677f8f9
Add Module17 flashing target
...
Add target openrt_mod17_flash that will invoke dfu-util to flash
Module17.
TG-398
2021-12-28 21:41:24 +01:00
Alessio Caiazza
18fb916834
Remove all tabs
2021-12-23 14:52:25 +01:00
Alessio Caiazza
82699f3d07
Implement an SDL main loop inside the Main Thread
2021-12-23 14:52:25 +01:00
Niccolò Izzo
2fdbf0f236
Initial support for I2C soft pots on Module17
...
Initial support for I2C soft pots on Module17, ADC1 driver for input voltage
reading. Cherry-picked from Mathis DB9MAT repo.
TG-398
2021-12-23 14:52:25 +01:00
Silvano Seva
d4ba8a5b9c
Moved new display driver for Module_17 to 'SH110x_Mod17.c', restored and kept old one
2021-11-27 10:10:12 +01:00
Mathis Schmieder
e9a6b0261e
Fixed compilation for Module17
2021-11-27 08:09:39 +01:00
Silvano Seva
83b0182057
Implementation of audio output stream driver for Module 17
2021-11-24 19:53:48 +01:00
Silvano Seva
cc00cce982
Driver for input audio stream on Module17
2021-11-24 19:53:48 +01:00
Silvano Seva
38231e3a53
Driver stubs for keyboard and non volatile memory on Module17
2021-11-24 19:53:48 +01:00
Mathis Schmieder
7bfa2336d7
Driver for SSD1306 SPI display driver on Module17
2021-11-24 19:53:48 +01:00
Silvano Seva
a0d9161e1d
Very preliminary support for Module17, providing only the files and configurations essential for a minimal bootstrap of the OpenRTX firmware
2021-11-24 19:53:48 +01:00
Silvano Seva
691b388228
Implemented load/save of settings and VFO configuration for MDx devices
2021-11-09 19:28:23 +01:00
Silvano Seva
756812ca31
Created function for writing settings and VFO status to NVM, starting of temporary implementation writing data to the MCU's internal flash
2021-11-08 22:22:26 +01:00
tarxvf
45228e226e
just the emulator shell broken out
2021-11-03 19:20:42 +01:00
Niccolò Izzo
efb549731c
Improve unit testing infrastructure
2021-11-03 19:04:44 +01:00
Niccolò Izzo
5040d6e900
Add unit test example
2021-11-02 19:42:16 +01:00
Silvano Seva
6fd53d1917
Updated version number in meson.build and added libcodec2-dev dependency to CI script
2021-10-08 19:28:59 +02:00
Silvano Seva
42e7521205
Fixed compilation error with GDx targets
...
Added codec2 as a dependency also for GD77, DM1801 and MD9600 targets to allow compilation of OpMode_17.cpp file
Stub input audio stream driver for GDx targets
2021-10-06 21:43:07 +02:00
Silvano Seva
952ce4b38f
Added codec2 as meson run time dependency when compiling for linux target, substituting the static library compiled from sources.
...
Stub input audio stream driver for linux x86/x64 platform.
2021-10-06 19:35:46 +02:00
Federico Amedeo Izzo
118c514081
UI: Add digital mode screen
...
Use main screen bottom bar in mode screen
mode screen: Move frequency and channel name to center
Show S-meter without squelch bar for digital modes
Change S-meter for digital modes, add audio level meter
Print FM information in mode screen
Add mode screen fonts
2021-09-03 16:44:57 +02:00
Silvano Seva
92ea1535ff
Moved definition of 'PLATFORM_LINUX' macro from hwconfig to meson.build, added '-std=c++14' compilation flag to compile arguments for linux platform, added missing includes to M17Utils.h
2021-09-03 16:44:57 +02:00
Silvano Seva
c8d62ff47f
Initial implementation of M17 operating mode handler
2021-09-03 16:44:57 +02:00
Silvano Seva
9e5c689bf3
M17 protocol data structures
2021-09-03 16:39:06 +02:00
Silvano Seva
98ab11d7a9
Added Codec2 dependency as meson subproject
2021-09-03 15:46:13 +02:00
Niccolò Izzo
110a922534
Add radio_tool as a submodule
...
Now radio tool is checked out, compiled and used as a submodule,
removing the need of installing it as an external dependency and
ensuring consistency in the tool version.
2021-08-26 08:22:30 +02:00
Silvano Seva
f3c6e92911
Driver for input audio stream on MDx
2021-08-25 18:34:41 +02:00
Silvano Seva
379b487f64
Added macro allowing to enable the SWD debugging interface on MDx devices (TG-272 #closed)
2021-08-12 19:46:41 +02:00
Silvano Seva
eb474d6bee
Driver for STM32F4 USART3, can be used as a debug serial interface on MD3x0 devices without GPS and is enabled by defining the macro MD3x0_ENABLE_DBG
2021-07-09 08:53:12 +02:00
Silvano Seva
4d68f02ab4
Updated documetation for radio.h API, removed old baseband C source files.
2021-05-29 08:20:12 +02:00
Silvano Seva
2d517d5bf8
New radio driver for GDx. Renamed some entries in GDx calibration data structure
2021-05-29 08:20:12 +02:00
Silvano Seva
e7b48b14a5
Updated radio driver stub for linux platform
2021-05-29 08:20:12 +02:00
Silvano Seva
f1a01d7613
New radio driver for MD-UV3x0, testing required
2021-05-29 08:20:12 +02:00
Silvano Seva
f0dfd7036f
Fixed bug in OpMode_FM.cpp which prevented entering in RX mode, removed code for setting input gain in HR_C5000 driver, modified meson.build to make it compile the new sources
2021-05-29 08:20:12 +02:00
Silvano Seva
d95e36f43b
Moved to C++ and refactored AT1846S driver, grouping common code. A C-callable wrapper is also provided. TG-37
2021-05-29 08:19:47 +02:00
Niccolò Izzo
e3a128f035
Add DSP code with DC removal and FIR PWM filter compensation
...
Add generic FIR implementation, specialized to compensate the PWM filter
applied by STM32 targets when modulating M17 signal.
Add DC bias compensation to normalize audio signal received from STM32
ADC.
TG-85 #ready-for-test
TG-199 #ready-for-test
2021-04-16 09:46:32 +02:00
Silvano Seva
63e68b642a
Audio management module for x86/64 target, only providing empty stubs since there is no hardware to control
2021-04-12 19:16:47 +02:00
Silvano Seva
c0ecf2e13f
Basic audio management module, controlling only speaker PA and microphone preamplifier. TG-61
2021-04-12 19:10:13 +02:00
Silvano Seva
60defbedc0
Implemented stack and heap memory profiling functions. TG-47
2021-04-12 12:03:15 +02:00
Federico Amedeo Izzo
58f4f5dcaf
Print git commit or tag inside Info menu
2021-04-11 09:56:46 +02:00
Silvano Seva
944a597d33
Created low-level driver for management of channel selector knobs with quadrature encoder
2021-04-10 19:29:35 +02:00
Silvano Seva
56c598da7e
Created low-level driver for backlight level management
2021-04-10 14:12:15 +02:00
Silvano Seva
cdaf3f38dd
Renamed MDx display, keyboard and spiFlash drivers to MD3x to adapt the changes made to meson.build also to MD-9600. Fixed missing API change in ui_main.
2021-04-10 12:37:45 +02:00
Silvano Seva
f9570f3636
Temporary hand-filled hwInfo for MD-9600
2021-04-10 12:16:20 +02:00
Silvano Seva
6b541a8ba1
Platform interface and initial keyboard driver for MD-9600
2021-04-10 12:13:34 +02:00
Silvano Seva
0772f1924b
Renamed GDx display and keyboard driver from 'xxx_GD77' to 'xxx_GDx' for consistency with naming scheme
2021-04-10 12:00:36 +02:00
Silvano Seva
c804223fcd
Reorganised meson.build
2021-04-10 11:56:41 +02:00
Silvano Seva
311a89ac0f
Refactoring of MDx tone generator, adding support for AFSK encoding (not yet implemented) and reproduction of arbitrary audio streams.
2021-04-10 11:24:33 +02:00
Caleb Jamison
e5c5ee90f2
Add support for encoder knob on MD-UV380
...
Added: qdec, a header only quadrature encoder library
Added: EXTI15_10_IRQHandler to handle the encoder knob
Changed: platform_init() for the MD-UV380 now configures the EXTI15_10
interrupt.
Changed: platform_getChSelector now returns signed int8
Changed: size of settings_t.valid went from 6 to 7
Without this change, pressing the macro button crashes the radio, I
haven't investigated and I don't remember how I found that solution.
Changed: meson.build includes the qdec library
2021-04-03 09:21:47 +02:00
Silvano Seva
1d8596e3c8
Renamed 'MD-UV380' folder and 'PLATFORM_MDUV380' define to, respectively, 'MD-UV3x0' and 'PLATFORM_MDUV3x0' to make them consistent with the meson build target
2021-04-01 08:48:56 +02:00
Niccolò Izzo
f2f7f6dd51
Embedded OpenGD77 wrapping and flashing scripts
2021-03-24 12:09:49 +01:00
Federico Amedeo Izzo
fc65891a29
Renamed target `mduv380` to `mduv3x0 to be consistent with `md3x0`
2021-03-21 18:26:53 +01:00
Federico Amedeo Izzo
e83cc7f849
Remove `mduv380g` target, it is a duplicate of `mduv380`
2021-03-21 09:20:46 +01:00
Silvano Seva
c1abeefd67
Implemented volume control for audio coming from radio stage on MD-UV3x0 and fixed a compilation warning regarding non-const access to a const variable
2021-03-20 11:51:35 +01:00
Silvano Seva
a5120ffddc
Radio driver for MD-UV3x0 targets
2021-03-20 11:51:35 +01:00
Silvano Seva
fb9d8afb6c
Adapted MK22 vcom sources to miosix kernel but not activating it. Reconfigured x86 emulator.
2021-03-13 09:16:06 +01:00
Silvano Seva
a02b693843
Made the RTX thread run with the maximum priority on ARM Cortex targets
2021-03-13 09:16:06 +01:00
Silvano Seva
fb3447b0c6
Moving to miosix kernel: swapped old uC/OS-III task management functions with pthread ones
2021-03-13 09:16:06 +01:00
Silvano Seva
67c41188ab
Created 'lib' folder, containing all the external libraries
2021-02-23 14:00:34 +01:00
Niccolò Izzo
57a1d11228
Fix the weirdest bug in the history of weird bugs
2021-02-17 14:33:53 +01:00
Niccolò Izzo
9aefde7fc7
Add undefined behaviour sanitizer option
2021-02-17 09:52:36 +01:00
Niccolò Izzo
1f9793d268
Complete GPS compass implementation
...
Now the GPS screen compass has a needle, which point to the current
movement direction.
2021-02-13 12:43:48 +01:00
Silvano Seva
6578422c9d
Main stack size is automatically increased to 4kB when a test suite is compiled
2021-02-13 11:24:05 +01:00
Silvano Seva
2fbf5fcdeb
Extending MDx GPS driver also to MD-UV3x0 and MD-9600 targets.
2021-02-10 21:36:54 +01:00
Niccolò Izzo
ebaee7b113
Add GPS stub for linux
2021-02-10 20:54:13 +01:00
Niccolò Izzo
0ce92f991c
Add GPS NMEA parsing task
...
Add dedicated task to parse NMEA sentences received by the GPS module.
The parsed data is moved to the radio state, to be read by the user
interface.
2021-02-08 17:25:11 +01:00
Silvano Seva
9b9c521459
GPS driver for MD-3x0 targets
2021-02-04 09:57:43 +01:00
Niccolò Izzo
7192659899
Add minmea integration for GPS data decoding
...
Added a platform test to decode NMEA sentences received from GPS modules
in the MD3x0 GPS radios.
2021-02-03 22:51:44 +01:00
Silvano Seva
03d5184f86
Merged MD-380 and MD-390 targets into a new MD-3x0 one
2021-02-03 15:09:59 +01:00
Silvano Seva
20930cdc18
Renamed HR_C5000 driver sources
2021-02-03 14:30:06 +01:00
Silvano Seva
5c54de0fac
Renamed sources for SKY72310 driver
2021-02-03 14:30:06 +01:00
Silvano Seva
eb619f4b38
Radio driver for GDx targets
2021-02-03 14:30:06 +01:00
Silvano Seva
fd9c26565d
Radio driver for MD-UV3x0 target
2021-02-03 14:30:06 +01:00
Silvano Seva
72455b7fb0
New radio driver for linux platform
2021-02-03 14:30:06 +01:00
Silvano Seva
d9a55c137a
Implementation of all common rtx functionalities and radio driver for MD3x0
2021-02-03 14:30:06 +01:00
Silvano Seva
bcf2aa636c
Final cleanup and renaming of MDx display driver
2021-02-02 11:18:33 +01:00
Silvano Seva
88387ee00d
Renamed 'GD77' folder to 'GD-77' to correctly match the device name
2021-02-01 15:55:45 +01:00
Silvano Seva
41a413cfdd
RTX support for GD77 target
2021-01-24 18:59:12 +01:00
Silvano Seva
72220c377e
Implemented RTX driver for GDx platform, by now only supporting RX
2021-01-24 18:59:12 +01:00
Silvano Seva
9802bc4e75
Started implementation of baseband drivers for GDx platforms
2021-01-24 18:59:12 +01:00
Federico Amedeo Izzo
571adfaabf
UI: Move ui_*.c files to ui subfolder
2021-01-10 09:04:53 +01:00
Federico Amedeo Izzo
e23b9bcea6
UI: Move main screen functions to ui_main.c
2021-01-10 09:03:07 +01:00
Federico Amedeo Izzo
e34674151b
UI: Move menu related functions to ui_menu.c
2021-01-09 10:47:18 +01:00