Wykres commitów

244 Commity (master)

Autor SHA1 Wiadomość Data
Silvano Seva 073440ef1a Removed unnecessary build dependencies when project is being configured for linux target 2022-07-18 18:48:26 +02:00
Alain Carlucci 1d48e5e3e0 Implementation of linux input stream driver 2022-07-10 10:59:45 +02:00
Silvano Seva d39783af2f Moved libc implementation of CPS I/O interface to drivers folder 2022-07-02 10:47:19 +02:00
Silvano Seva d16eb04696 Reorganised data structures and functions to manage date and time 2022-07-02 10:28:28 +02:00
Silvano Seva 8accc3b8b6 Replaced bin2sgl linux binary with a version statically linked with the libc, added missing wrap and flash commands for DM-1801 2022-06-17 12:44:38 +02:00
Silvano Seva 8b5b6ed571 Moved OpenRTX startup code from main.c to dedicated openrtx_init() and openrtx_run() functions in a separate source file. 2022-06-02 10:01:34 +02:00
Niccolò Izzo dc250a25d6 Implement new codeplug interface
The new codeplug interface was implemented for linux and retrofitted to
all the existing OpenRTX platforms. Limited unit testing was also
implemented.

TG-428
2022-06-01 15:59:27 +02:00
Silvano Seva cbd3922325 Cleanup and reorganisation of state header file, new OpenRTX CPS data structure 2022-06-01 15:04:17 +02:00
Silvano Seva 6caf531b85 Updated README, updated version number in meson.build 2022-06-01 10:51:26 +02:00
Silvano Seva 63f4c787c0 Moved helper functions for M17 Golay to a dedicated source file 2022-05-27 21:49:33 +02:00
Silvano Seva 086cb549c7 Stub implementation of output stream driver for linux emulator 2022-05-27 21:48:47 +02:00
Silvano Seva c7fbd98dc9 Stub implementatio of output stream driver for GDx devices 2022-05-27 21:48:47 +02:00
Silvano Seva b144657257 Moved CODEC2 management to a dedicated module 2022-05-27 21:48:47 +02:00
Silvano Seva 163a2ef06a Updated Module 17 output stream driver to support also double buffered mode 2022-05-27 21:48:47 +02:00
Silvano Seva 0df1dc4f7e Extended output stream API to support also circular double-buffered mode, implemented output stream driver for MDx 2022-05-27 21:48:47 +02:00
Niccolò Izzo f9c23452bc Add plotting function to graphics library
Added plotting function to graphics library which is native C++, so
refactored the graphics source file to allow that, consequently adapted
the hwconfig header files to be included also in C++ sources.
Propagated compile flags also to C++ sources, including asan what was
previously disabled for C++ compilation units.

TG-81
2022-05-27 21:48:46 +02:00
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