Commit Graph

550 Commits

Author SHA1 Message Date
Niccolò Izzo 7619b9473b ttwrplus: Slow down encoder input
Two ticks are needed to emit one KNOB_LEFT or KNOB_RIGHT event, thus
slowing down the rotary encoder input and making it more comfortable.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo fe027c440c ttwrplus: enable volume control
Replaced KEY_F7 and KEY_F8 with KEY_VOLUP and KEY_VOLDOWN.
Remapped the T-TWR Plus volume up and down keys to those, fixing a bug
in the pmu key detection where the wrong active edge was selected.
Adapt soft volume code for the UV3x0 to control code in the T-TWR Plus
by acting on the AT1846s Rx gain.
For target T-TWR Plus bound long press of KEY_VOLDOWN to macro menu open.
Unbound KNOB_LEFT and KNOB_RIGHT to squelch control and bound
instead KEY_VOLUP and KEY_VOLDOWN.

TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva 6a17bb8483 ttwrplus: implemented radio band detection. 2023-09-20 21:08:35 +02:00
Niccolò Izzo ad1beffcf3 ttwrplus: implemented PMU interrupts handling
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 2dabacebd8 ttwrplus: Implement power control on SA8x8
Implemented power control in T-TWR Plus by using the embedded switch
(RADIO_PWR) that controls the H/L pin of the SA868.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo c276fc5a51 ttwrplus: moved all the SA8x8 code in a dedicated translation unit. 2023-09-20 21:08:35 +02:00
Niccolò Izzo d935532fc4 ttwrplus: enable GPS
GPS was enabled using UART1 and Zephyr message queues.
UI is a bit crushed on the small 128x64 screen but hardware works as expected.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo eeb05bcc0f ttwrplus: fix unstable baseband startup
A proper baseband reset is now issued at each startup. Now OpenRTX check
for SA868 responsiveness before proceeding with radio initialization,
eliminating unstable behaviour at boot.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo dc84908fbc ttwrplus: enable TURBO mode on SA868S
Enabled AT+TURBO command on SA868 that switches the baud rate of the
serial communication from 9600 to 115200 to get a more responsive
baseband. Bumped up the required baseband firmware version to
v1.1.0.r20.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 82218aabce ttwrplus: enable macro menu
Modified keyboard mapping to enable macro menu, interface is still
broken as the T-TWR Plus is missing a keyboard.
Now the volume down key, mapped as the MONI button can be also used to
set the squelch level.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 4c035bbf16 ttwrplus: enable Tx capability
Enabled Tx capability on T-TWR Plus.
Since Tx requires the SA8x8 to disable the Rx stage, we check that at
least firmware v.1.1.0.r14 is present on the baseband, otherwise we
don't initialize the radio.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 4df315473f ttwrplus: add RGB LED support
Implemented WS2812C support with Zephyr driver.
Hooked up the RGB control to the existing RED and GREEN LED support.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo c60f580396 ttwrplus: add support for SA868
Add support for initializing SA868 and querying its firmware version,
created a new instance of the AT1846S class that leverages the SA8x8
serial connection as an i2c implementation.
Rx works! In the sense that the RSSI bar behaves as expected, still no
audio.

This commit was contributed by edgetriggered.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo df853c8527 ttwrplus: add support for keys using Zephyr bindings
Zephyr already provides button support based on gpios. We are mapping
Zephyr keycodes to OpenRTX therefore future targets will only need to
configure their devicetrees to have button support.

Rotary encoder readout leverages the hardware pulse counter. PTT in
this device is also bound to KEY_ESC, that matched the behaviour
observed in many commercial radios.

TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva 67f6d56168 Display driver for ttwrplus 2023-09-20 21:08:35 +02:00
Silvano Seva ebc5910015 Renamed "bcd2bin" utility to "bcdToBin" to avoid conflicting with Zephyr includes 2023-09-20 21:08:35 +02:00
Silvano Seva 5ea94ee1af Improved management of FM audio volume on MD-UV3x0.
Fix #160.
2023-09-08 16:14:11 +02:00
Silvano Seva 8dc1cba1f7 Removed sources of old audio stream drivers, updated stub audio driver 2023-08-30 18:04:25 +02:00
Silvano Seva cd936ea216 Audio devices table for linux and GDx targets 2023-08-30 18:04:25 +02:00
Silvano Seva 344aa46da7 Audio devices table for MDx 2023-08-30 18:04:25 +02:00
Silvano Seva 2b1d3236d3 Audio devices table for Module17 2023-08-30 18:04:25 +02:00
Silvano Seva f56771734f Audio device driver for STM32F4xx ADC peripheral 2023-08-30 18:04:25 +02:00
Silvano Seva 5aed3e3316 Audio device driver for STM32F4xx PWM-based 8-bit DAC emulation 2023-08-30 18:04:25 +02:00
Silvano Seva efb5f22750 Audio device driver for STM32F4xx DAC peripheral 2023-08-30 18:04:24 +02:00
Silvano Seva 1011dd1081 Moved audio_stream.h from interfaces to core headers 2023-08-30 18:04:24 +02:00
Silvano Seva 4920921862 MD-UV3x0: fixed bug causing no FM rx after tx end. Fix #171
Thanks to turnrye and tarxvf for debugging and testing this.
2023-08-23 09:54:36 +02:00
k5jae c1a9db22b7 Made Brightness setting optional based on HW capabilities 2023-08-16 20:46:25 +02:00
Silvano Seva 4cd1fdfcf3 Moved gpio.h to peripherals 2023-07-21 19:27:14 +02:00
Silvano Seva 28122a3bf3 Moved gps.h to peripherals 2023-07-21 08:32:26 +02:00
Silvano Seva b335aeb22c Adding folder with stub drivers for the OpenRTX interface APIs.
Stub drivers provide a safe default implementation of the OpenRTX interface
APIs and can be used both as a starting point to implement the actual drivers
and to allow compiling binary images without needing to provide an actual
implementation first.
2023-07-18 23:08:49 +02:00
Silvano Seva 65dde770e7 Changed return type of cps_readBankData() from "int32_t" to "int".
Made the return type of cps_readBankData() consistent with the one of
the other CPS API functions.
2023-07-18 23:04:31 +02:00
Silvano Seva a5b925e76f Small code cleanup in MD-UV3x0 HR_C6000 driver, temporary workaround to fix #129 2023-07-14 18:12:31 +02:00
Silvano Seva 8019b29947 Moved the setBacklightLevel() API function from platform.h to display.h 2023-07-14 12:26:47 +02:00
Silvano Seva 163a3df607 Refactored MDx backlight driver 2023-07-14 12:26:47 +02:00
Silvano Seva 313e9615a6 Removed platform_getCalibrationData() function because of limited usefulness.
Given that each radio driver loads its calibration data when initializing
and that the radio driver is strongly platform-specific, there is no strong
need for an intermediate redirection layer through the platform API.
2023-07-14 12:26:39 +02:00
Silvano Seva 694181df92 Module17: implemented detection of hardware version 2023-06-14 21:50:12 +02:00
Silvano Seva 1afd868d64 Renamed "lcd_type" field of hardare info struct to "hw_version" 2023-06-14 21:30:52 +02:00
Silvano Seva e93666a515 Implemented mic gain setting based on UI for Module 17 2023-05-29 22:12:40 +02:00
Mathis Schmieder 89aedef3ae Implemented non-volatile memory for settings on Module 17 2023-05-29 22:12:40 +02:00
Silvano Seva 2b7fc6e150 Implemented control of Module 17 MCP4551 digital wipers 2023-05-29 22:12:40 +02:00
Silvano Seva bd8585c45d Fixed SDL-based display driver giving errors when compiled in BW pixel mode 2023-05-29 22:12:40 +02:00
Silvano Seva a89a7523cb Updated year in copyright headers 2023-02-08 16:33:02 +01:00
Silvano Seva 0692bea269 Partial fix for speaker pop when a voiceprompt begins 2022-10-31 08:41:31 +01:00
Silvano Seva 4411e0f3e8 Implemented audio path management API in GDx and Mod17 audio drivers, removed old audio management API 2022-10-28 09:47:47 +02: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 ebc7be39ab Implemented audio path management API in MDx audio driver 2022-10-28 09:47:47 +02:00
Silvano Seva 3c65f8834a Added to radio driver interface two functions to enable and disable AF output towards the speaker 2022-10-28 09:47:47 +02:00
Silvano Seva 714a0dd331 Implemented audio path management API in linux audio driver 2022-10-28 09:47:47 +02:00
Silvano Seva 26048b90d1 Bugfix and refactoring of linux output stream driver 2022-10-28 08:30:46 +02:00
Niccolò Izzo adbd1f070d Fixed bug in circular buffer management inside linux output stream driver, added unit test for circular buffer mode.
TG-220
2022-10-28 08:30:46 +02:00
Niccolò Izzo 58c1c3bbd6 Implemented circular buffer mode in linux output stream driver. 2022-10-28 08:30:46 +02:00
Niccolò Izzo 081b19e52c Implemented output audio stream driver for linux.
Implement outputStream backend on linux using Pulseaudio simple API.

TG-250
2022-10-28 08:30:46 +02:00
Silvano Seva 3ab36f3738 Fixed bug in MD3x0 radio driver causing underdeviation of M17 signal 2022-08-28 10:13:22 +02:00
Silvano Seva e2137eae23 Implemented CRC of persistent data (settings and VFO state) in MDx devices 2022-08-11 17:02:04 +02:00
Silvano Seva 57349cba80 Changed allocation of display framebuffers from dynamic to static. Reorganised code in some of the display drivers. 2022-08-10 12:26:04 +02:00
Silvano Seva fdb2143157 Fixed bug affecting CTCSS RX squelch on MD-UV380. Solves #42 2022-08-02 12:54:51 +02:00
Silvano Seva 1fa13d63d8 Modified radio drivers so that bandwidth parameter in radio configuration is ignored for operating modes different from analog FM. Fixes #100 2022-08-01 18:29:20 +02:00
Jacob McSwain 822fb84146 nvmem: md3x0: Explicitly read in calibration data
This should fix the frequency offset issues
2022-07-17 08:18:16 +02:00
Jacob McSwain 44dc9239be baseband: C5000: Set the mic input during early init
Otherwise, the "frequency wiggle" is present
2022-07-16 08:18:06 +02:00
Alain Carlucci 724e3196b4 Removed exceptions from linux input stream driver 2022-07-10 11:01:15 +02:00
Alain Carlucci 07394cc8a0 Linux input stream driver: bugfixes and completed test 2022-07-10 11:00:49 +02:00
Alain Carlucci 1d48e5e3e0 Implementation of linux input stream driver 2022-07-10 10:59:45 +02:00
Silvano Seva 7e8a960001 Fixed compiler warnings on MD-UV3x0 and MD-9600 targets 2022-07-10 09:23:37 +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 28929aab90 Fixed memory leaks at linux emulator shutdown 2022-07-02 10:47:19 +02:00
Silvano Seva 52ead401bd Reorganised GPS task to make it a non-blocking task to be called periodically 2022-07-02 10:28:28 +02:00
Silvano Seva 45d919f50f Reorganised GPS driver to allow for non-blocking acquisition of NMEA sentences 2022-07-02 10:28:28 +02:00
Silvano Seva cdbbaa0ef1 In Module17 output stream driver prevented the DAC channel for baseband output to be turned off when the speaker stream is activated. Fixes #78 2022-06-14 21:01:11 +02:00
Silvano Seva 6b2affe2cd Fixed setting of RSSI level value from linux emulator shell 2022-06-09 23:11:01 +02:00
Silvano Seva 5c94d33b6b Reorganised source code of linux emulator main engine 2022-06-09 22:48:51 +02:00
Silvano Seva 980fa32e73 Reorganised source code of linux emulator SDL engine 2022-06-09 22:48:41 +02:00
Silvano Seva a1888ae19e Improved heap memory management in M17 demodulator class 2022-06-05 12:24:43 +02:00
Silvano Seva 316e588bc3 Updated copyright headers 2022-06-02 09:56:05 +02:00
Silvano Seva 14f2dccef9 Fixed compilation warnings 2022-06-02 09:04:04 +02:00
Niccolò Izzo ae12a2126a Implement codeplug read and write functions
Implemented remaining codeplug functions to read, write and insert
codeplug entries. Fix bugs in ui code. Add unit tests.

TG-428
2022-06-01 16:05:35 +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 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
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 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 19c1b8eff9 Added full chip erase function to W25Qx driver 2022-03-22 11:19:22 +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
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 75f5a0a159 Free shared channel resources on power down 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
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 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 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 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 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
Silvano Seva 379f5aa71b Refactoring of GDx ADC1 driver: added function allowing to retrieve the raw conversion value, changed return value of 'adc1_getMeasurement' from float to uint16_t 2021-08-14 10:18:55 +02:00
Silvano Seva 5dc2ba25d8 Refactoring of MDx ADC1 driver: removed DMA, added function allowing to retrieve the raw conversion value, changed return value of 'adc1_getMeasurement' from float to uint16_t (TG-276 #closed) 2021-08-14 10:18:55 +02:00
Silvano Seva f286245f4f Fixed USART ISR handler in MDx GPS driver to prevent it from exiting without clearing the interrupt flags when no thread is registered for wakeup (TG-271 #closed) 2021-08-13 17:01:32 +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 fdd50c114c Fixed wrong mic gain value in MD3x0 radio driver 2021-06-09 11:48:25 +02:00
Federico Amedeo Izzo 70a0eeaf29 Fix GD77 codeplug channel mode reading 2021-06-06 10:47:02 +02:00
Silvano Seva 96abae4bad Temporary workaround to fix compilation error with MD-9600 due to not yet defined GPIOs for audio control, still to be identified. 2021-06-05 21:43:10 +02:00
Silvano Seva 6995230d8f Extended 'mode' field in CPS data structure to 8 bits, to align its size to the one contained in rtxStatus_t. Modified code for channel data loading in NVM drivers to align it to the new opMode enum values. 2021-06-05 21:21:12 +02:00
Federico Amedeo Izzo 57b66652b7 Use channel knob to change frequency and navigate menus (TG-238) 2021-06-05 18:11:30 +02:00
Silvano Seva 35de41c505 Reduced printf verbosity of linux radio driver 2021-06-03 14:59:59 +02:00
Silvano Seva 66552be403 Added function to radio API allowing to fine tune the radio's VCXO polarisation voltage. Currently, this functionality is effective only on MD-3x0 devices. (TG-195 #ready-for-test) 2021-06-03 14:50:47 +02:00
Silvano Seva b29b24fdc0 Implemented RX tone squelch on MD-UV3x0 and GDx (TG-43) 2021-06-02 12:44:46 +02:00
Silvano Seva fdba408831 Improved registers documentation in HR_C5000 and HR_C6000 drivers 2021-05-29 08:20: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 bbdfdd1068 Added support for MD-380 VHF devices. (TG-188) 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 87d9b733e6 Fixed wrong bitmask in AT1846S::setRxAudioGain. Moved getBandFromFrequency function to a dedicated file, in common for all dual-band radio drivers. 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 4a080d881a Finalised MD-UV3x0 radio driver, now supporting also cross-band operation (TG-186) 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 850e3580ed New radio driver for MD-3x0 platform, still requiring a bit of debugging 2021-05-29 08:20:12 +02:00
Silvano Seva 529b108771 Added to HR_Cx000 driver a function for setting the gain of the audio input stage. 2021-05-29 08:20:12 +02:00
Silvano Seva 887d95ec58 Created 'wrappers' subfolder in platform/drivers/baseband containing the C wrappers for the AT1846S, HR_C5000 and HR_C6000 drivers 2021-05-29 08:20:12 +02:00
Silvano Seva 11161fa64a Moved to C++ and refactored HR_C5000/HR_C6000 drivers, grouping common code. A C-callable wrapper is also provided. TG-37 2021-05-29 08:20:07 +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
Silvano Seva a6c638b063 Updated code attributions and informations about licensing of part of the codebase 2021-04-21 10:07:34 +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 c070060b0a Fix error in ADC conversion sequence when compiling for MD-3x0 2021-04-12 19:10:45 +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 7209414a2b Fixed error in ADC conversion sequence in MD-3x0 platforms, improved behaviour of 'platform_pwrButtonStatus' in targets having the power switch on the volume knob. 2021-04-11 18:19:08 +02:00
Federico Amedeo Izzo a17e50edef Add NVM codeplug support for MD9600 2021-04-10 22:37:32 +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 c77aebebad Mapped 'C' and 'D' palmtop keys to, respectively, 'ENTER' and 'ESC' functions in MD9600 keyboard driver 2021-04-10 12:16:21 +02:00
Silvano Seva db6b427513 Support for palmtop mic keys in MD9600 keyboard driver 2021-04-10 12:16:21 +02:00
Silvano Seva a15159e7ce Driver for ST7567 display controller 2021-04-10 12:15:29 +02:00
Silvano Seva 94d3a8f52b Stub drivers for NVM and radio management on MD-9600 2021-04-10 12:15:29 +02:00
Silvano Seva e157fc361d Restructured ADC1_MDx code and extended its support also to MD-9600 2021-04-10 12:15:28 +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 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
Silvano Seva 0ca7258f03 MD3x0 bugfixes: fixed wrong ADC conversion sequence preventing squelch opening and corrected control of W/N switch in radio driver 2021-04-09 12:54:53 +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 3f9d46dc2a Fixed C6000_setModOffset in MD-UV3x0 HR_C6000 driver, now behaves in the same way as TYT firmware does. Provides a fix for #21, although it still have to be sharpened a bit. 2021-03-31 16:57:35 +02:00