Wykres commitów

501 Commity (md1702)

Autor SHA1 Wiadomość Data
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 da22d6ff64 Separated interface for CPS loading from the non volatile memory one 2022-06-01 14:56:33 +02:00
Silvano Seva c3cfaba4b2 Renamed zones into banks to align to M17 codeplug naming convention. 2022-06-01 14:56:22 +02:00
Silvano Seva 4367db53d0 Added configuration of AT1846S registers for digital modes in MD-UV3x0 driver. In M17 mode handler forced signal phase inversion at demodulator side also for MD-UV3x0 devices 2022-05-31 18:19:57 +02:00
Silvano Seva 2dc0106380 On MD-UV3x0 force silencing of HR_C6000 audio output when in M17 RX to avoid spillover of baseband signal towards the speaker. 2022-05-31 14:22:31 +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
Mathis Schmieder 54112d4d7b Increased input gain on MD-UV3x0 type of radios 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
Silvano Seva a37e24c953 Fixed a buffer management bug inside linux input stream driver 2022-05-27 21:48:47 +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 fda0fed5e7 Moved constant specifying sample rate for M17 baseband decoding from hwconfig.h files to M17Demodulator class 2022-05-27 21:48:47 +02:00
Silvano Seva 9139b19aac Fixed bug in MDx input stream driver causing the SPI clock line towards the DMR chip to be set as analog input when an audio stream from the RF stage was opened 2022-05-27 21:48:47 +02:00
Silvano Seva 4b8685b853 Changed gain and added an offset at tx RRC stage only for Module 17 to compensate for an hardware bug 2022-05-27 21:48:47 +02:00
Silvano Seva d1b4973cc9 Fixed reset of DC bias on stream stop in Module 17 output stream driver, made parametric the gain of the RRC at modulator side 2022-05-27 21:48:47 +02:00
Silvano Seva 94fdf44954 Biased Module 17 baseband DAC output to Vdd/2 when idle 2022-05-27 21:48:47 +02:00
Silvano Seva 628c341712 Small improvements to MDx and Module 17 output stream drivers 2022-05-27 21:48:47 +02:00
Silvano Seva 1bc1316f7d Fixed bug to Module 17 input stream driver causing the thread waiting on inputStream_getData() to not be woken up when stream was stopped 2022-05-27 21:48:47 +02:00
Silvano Seva 12dc186129 Fixed bug in Module 17 output stream driver causing outputStream_sync() to hang when a stream was opened for the second time 2022-05-27 21:48:47 +02:00
Silvano Seva eb22e4b4b2 Default VFO channel for Module 17, making it start in M17 operating mode at boot 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
Silvano Seva 034f5d9ee9 Removed API for audio stream playback from MDx tone generator 2022-05-27 21:48:47 +02:00
Niccolò Izzo 2d8c696a09 Complete M17 demodulator implementation
Make quantization work also on DC offset signal
Add samples plot code
Fix bug in buffer wrap around
Fix oob memory access in M17 modulator
Update tests with DC offset signal
Switch to 48KHz sample rate for Module17 and MD380
Add DC biasing script

TG-81
2022-05-27 21:48:46 +02:00
Silvano Seva 10b8b59e21 Added to MDx tone generator API functions allowing user code to temporarily disable generation of 'beep' tones 2022-05-27 21:48:46 +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
Niccolò Izzo ae26cca46f Remove SPS
Now M17_SAPLES_PER_SYMBOL is computed dinamically from sample rate.

TG-81
2022-05-27 21:48:46 +02:00
Silvano Seva 25087b0e02 Removed BUF_CIRC from the possible buffer management modes for an input audio stream 2022-05-27 21:48:46 +02:00
Niccolò Izzo d22948a096 Fix naming error
Replaced FM with OPMODE_FM and DMR with OPMODE_DMR.
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
Niccolò Izzo 6588a6718e Add M17 namespace in M17 related source files
Now M17 source files reside in the M17 namespace, the OPMODE_ prefix
was added to all opmode enums to avoid a name clash.
2022-05-27 21:48:46 +02:00
Silvano Seva a3b7b490d4 Fixed jitter in M17 baseband signal generation 2022-05-27 21:48:46 +02:00
Silvano Seva 5ffd6e5c43 Fixed compilation errors with MD-9600 and Module 17 targets 2022-03-24 19:09:00 +01:00
Silvano Seva 19c1b8eff9 Added full chip erase function to W25Qx driver 2022-03-22 11:19:22 +01:00
Silvano Seva c0a5d0a26e Quick and dirty bugfix to STM32F4 USB VCOM driver to allow data transfers of more than 300 bytes 2022-03-06 08:44:52 +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 624dca2b97 Renamed macro DISABLE_KEEP_ON to RUNNING_TESTSUITE 2022-03-05 09:09:25 +01:00
Silvano Seva 91c9408f32 Removed backwards compatibility with old settings for MDx: in case of version mismatch default values are loaded 2022-02-26 15:47:18 +01:00
Silvano Seva a5209d6f52 Modified range for display backlight level from 0 - 255 to 0 - 100, set minimum allowed level to 5. 2022-02-26 15:45:41 +01:00
Silvano Seva 24464a66a8 Integration of tinyusb driver into OpenRTX, old driver still kept active 2022-02-26 12:29:28 +01:00
Silvano Seva 4bce2c9f23 Fixed bugs in MDx and Module17 input stream drivers causing errors in sample rate: one due to wrong configuration of TIM2 registers and one due to wrong configuration of ADC channel sample time. 2022-02-07 22:01:14 +01:00
Silvano Seva 3fb93f0a86 Updated CMSIS header files for STM32F4 to version 2.6.7 2022-01-15 14:55:59 +01:00
Alessio Caiazza ce5ff047ee Add NVM for settings and VFO on linux platform 2022-01-15 14:02:19 +01:00
Silvano Seva f54a0d18a7 Implemented mechanism to allow backwards-compatibility when loading settings from memory, as backlight timer introduced a new data field 2022-01-03 15:42:16 +01:00
Alessio Caiazza ade9c47f71 Implement platform_setBacklightLevel for linux 2022-01-03 14:51:22 +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
Alessio Caiazza 7c978470c2 Add brightness support for the emulator 2021-12-23 14:52:25 +01:00
Silvano Seva 9dc0819b8b Linux emulator code cleanup and refactoring 2021-12-23 14:52:25 +01:00
Alessio Caiazza 18fb916834 Remove all tabs 2021-12-23 14:52:25 +01:00
Alessio Caiazza d4300c9c04 Fix Allman bracing 2021-12-23 14:52:25 +01:00
Alessio Caiazza 75f5a0a159 Free shared channel resources on power down 2021-12-23 14:52:25 +01:00
Alessio Caiazza e2baf5a833 Document functions with Doxygen format 2021-12-23 14:52:25 +01:00
Alessio Caiazza f85942785f Fix whitespaces 2021-12-23 14:52:25 +01:00
Alessio Caiazza 992d6be6eb Ensure we do not render before the framebuffer copy completes 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
Alessio Caiazza 51acccaec2 Don't pump SDL events outside from the main thread 2021-12-23 14:52:25 +01:00
Silvano Seva 4eb4e43cbe Activated GPIO pull-up resistors on MD3x0 PTT lines, as it seems that RT3 radios lack a physical pull-up resistor on those GPIOs. See #52 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
Silvano Seva 6aece95e98 Fixed license header 2021-11-27 08:23:59 +01:00
Wojciech Kaczmarski 5d63c0fe63 display fix for 0.1c 2021-11-27 08:09:39 +01:00
Mathis Schmieder e9a6b0261e Fixed compilation for Module17 2021-11-27 08:09:39 +01:00
Mathis Schmieder 3d987a8ae8 Fixed reversed Enter and ESC keys for Module17 2021-11-27 08:09:39 +01:00
Mathis Schmieder 22a0d73fbc Initial fix for Module17 r0.1c display 2021-11-27 08:09:39 +01:00
Mathis Schmieder 55c0b0d868 Module17 platform changes for revision 0.1c 2021-11-27 08:09:39 +01:00
Mathis Schmieder 4811838cb8 Module17: implemented keyboard driver, updated display, output audio stream and platform drivers 2021-11-24 19:53:48 +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 036f74c69e Removed call to rtc_terminate inside MDx platform_terminate, as this freezed RTC on radio power off 2021-11-12 22:46:11 +01:00
Silvano Seva 38c6a7fee6 Fixed bug in MD3x keyboard driver causing the generation of an UP keypress at boot (#48) 2021-11-10 19:29:34 +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
silseva bbf77c4ab0
Simple driver for erase and write of MCU's internal flash 2021-11-08 17:10:00 +01:00
tarxvf 2ec8a3c264 bracing style and attribute unused to void cast in libSDL display driver 2021-11-03 19:20:42 +01:00
tarxvf 588265fa3d astyle applied to try and match current OpenRTX style - just doesn't work on the header block 2021-11-03 19:20:42 +01:00
tarxvf f451ff8aae unused args cast to void instead of __attribute__ 2021-11-03 19:20:42 +01:00
tarxvf 3ded05a6dc update the linux emulator scriptability for the knob values 2021-11-03 19:20:42 +01:00
tarxvf 45228e226e just the emulator shell broken out 2021-11-03 19:20:42 +01:00
Niccolò Izzo 156f31cde4 Fix typo in license header 2021-10-12 12:36:52 +02:00
Silvano Seva b58fbd6760 Fixed syntax error in MD3x0 and UV3x0 radio drivers 2021-10-08 19:34:08 +02:00
Niccolò Izzo 65a632054a Disable CTCSS tones in M17 mode
Removed CTCSS modulation for M17 mode, removed FM analog specific
settings in macro menu such as tone selection, tone enable and tx
bandwidth.
2021-10-08 16:02:03 +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
Silvano Seva 5113a39f2a Enabled M17 support also in MD-UV3x0 radio driver 2021-09-21 12:02:32 +02:00
Silvano Seva 431ba17b26 Modified HR_Cx000::setInputGain() function to accept a value expressed in dB instead of a raw binary value to be written directly inside the chip's register 2021-09-21 12:01:31 +02:00
Silvano Seva bc775e2358 Fixed bug in MDx implementation of input stream API: inputStream_stop function turned off DMA clock gating and, consequently, stomped DMA transfers towards the LCD 2021-09-19 15:15:03 +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 be21364b30 Made 'toneGen_playAudioStream' a non-blocking function, added 'toneGen_waitForStreamEnd' API function to allow blocking execution flow until a currently playing audio stream terminates or is stopped 2021-09-03 16:39:06 +02:00
Silvano Seva db3efb21be Added to MDx tone generator driver a function to interrupt an audio stream before its natural completion 2021-09-03 16:39:06 +02:00
Silvano Seva 943838c263 Fixed bug affecting management of data buffers inside MDx implementation of inputStream API 2021-08-27 14:26:16 +02:00
Silvano Seva 9650ff5925 Removed macro disabling by default the USB virtual COM port, which is now permanently enabled. 2021-08-26 10:22:55 +02:00
Silvano Seva f3c6e92911 Driver for input audio stream on MDx 2021-08-25 18:34:41 +02:00
Silvano Seva d329e141ed Fixed wrong conversion in GDx ADC driver 2021-08-15 18:05:23 +02:00
Silvano Seva 4d3eacc144 Switched 'v_bat' and 'charge' fields of state struct from float to, respectively, uint16_t and uint8_t and updated UI functions accordingly. Rationale for this change is providing better support for future platforms without hardware floating point unit. 2021-08-14 12:56:45 +02:00