Wykres commitów

633 Commity (30e9311a20fb7965410277c68d6a8b4bcdd42f4b)

Autor SHA1 Wiadomość Data
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
Silvano Seva a7acc3301b Modified 'platform_getVbat' API: now it returns an uint16_t value containing the battery voltage in millivolt 2021-08-14 12:47:21 +02:00
Silvano Seva 8e0a5d1c0f Made 'platform_getVolumeLevel' and 'platform_getMicLevel' API functions return a normalised 8 bit value ranging from 0 to 255 (TG-293 #closed) 2021-08-14 10:18:55 +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
Federico Amedeo Izzo c69c2be478 Fixed external microphone sticky PTT button on MD-UV380 2021-08-14 10:02:34 +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
Federico Amedeo Izzo 07e1f28f79 Fix sticky PTT button on MD-UV380 by removing double initialization of PTT_SW gpio. 2021-08-11 20:53:54 +02:00
Silvano Seva b80ddc1145 Implemented reading of PTT status from external microphone on MD-3x0 and MD-UV3x0 2021-07-10 21:52:15 +02:00
Silvano Seva 466b405bba Fixed compiler warning generated by unused parameters in STM32F4xx USART3 diver 2021-07-10 21:39:47 +02:00
Silvano Seva c48405659b Added initialisation of MD3x0 debug USART to miosix bsp init function 2021-07-09 08:53:12 +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
Federico Amedeo Izzo a8b838bd47 On Linux target emulate PTT button with P key 2021-07-08 20:24:27 +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
Federico Amedeo Izzo 1f74c0abb7 Add `VCOM_ENABLED` define to disable VCOM that is currently broken 2021-06-06 10:13:51 +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
Federico Amedeo Izzo c653535e68 Remove old band and limits defines, now replaced by hwInfo_t 2021-06-05 11:27:20 +02:00
Federico Amedeo Izzo f5c9d97e49 Check frequency limits against hwInfo_t, not hardcoded defines 2021-06-05 10:47:52 +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
Silvano Seva 1e7c2ceac3 Fixed missing ';' in GD-77 and DM-1801 implementations of 'platform_pwrButtonStatus' 2021-04-11 12:47:22 +02:00
Silvano Seva 1dfcf1b75f Added missing implementation of 'platform_pwrButtonStatus' in linux platform.c 2021-04-11 12:43:17 +02:00
Silvano Seva 4b30a66735 Added 'platform_pwrButtonStatus' API function, which returns the current status of the power button/knob. Implemented power on/off mechanism on MD-9600 2021-04-11 12:38:20 +02:00
Federico Amedeo Izzo 93d2ede113 Add default contrast setting define 2021-04-11 09:10: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 795d8d4451 Implemented input voltage measurement on MD-9600 2021-04-10 12:16:21 +02:00
Silvano Seva f9570f3636 Temporary hand-filled hwInfo for MD-9600 2021-04-10 12:16:20 +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 e46c77a300 Enabled ADC and NVM manager on MD-9600 2021-04-10 12:15:29 +02:00
Silvano Seva 10e9ac9057 Driver for STM32F4 SPI2, with locking mechanism for concurrent access 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
Silvano Seva a2578ba42d Propagating change of the return value of platform_getChannelSelector 2021-04-03 09:28:27 +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
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
Silvano Seva c13bc94e91 Fixed bug in MD-UV3x0 radio driver making it transmit with 1W output power even when 5W is selected 2021-03-31 15:05:40 +02:00
Silvano Seva 86f6d114e2 Applied __attribute__((packed)) to all data structures to reduce memory footprint 2021-03-26 18:11:22 +01:00
Silvano Seva 7f9600cdb7 Moved MDx tone generator sine table to FLASH 2021-03-26 16:33:08 +01:00
Fred f4e25a3f8f Fix compilation for gd77 and dm1801 targets 2021-03-24 09:25:57 +01:00
Silvano Seva 32e6eb7029 Applied bugfix to MD-UV3x0 radio driver also to GDx one 2021-03-24 08:54:46 +01:00
Silvano Seva a20f907330 Fixed issue with RSSI calculation on MD-UV3x0, leading to an output value of +105dBm when AT1846S register read 0x00 2021-03-22 18:01:37 +01:00
Silvano Seva fb295a7aa0 Fixed issues with AT1846S I2C bus on MD-UV3x0, which caused it to work only if additional capacitance was added to SDA line by probing wires, oscilloscope probe, ... 2021-03-21 22:20:11 +01:00
Silvano Seva 97e234ecf6 Improved software I2C routines for MD-UV3x0 AT1846S driver 2021-03-20 22:46:43 +01:00
Silvano Seva cfe2a609d5 Aligning delays in MD-UV3x0 AT1846S_init to the original firmware's ones 2021-03-20 11:51:35 +01:00
Federico Amedeo Izzo f1643a8748 Comment AT1846S init from UV380 based on AT1846S programming guide 2021-03-20 11:51:35 +01:00
Silvano Seva 8423efb1b5 Fixed issue causing missing RX audio after a transmission on MD-UV3x0 2021-03-20 11:51:35 +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 4ed16fb51c Enabled measurement of volume level on MD-UV3x0 2021-03-20 11:51:35 +01:00
Silvano Seva 07d886a442 Fix for PTT gpio non going back to logic high when the corresponding button is released 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 9610d0db07 HR_C6000 driver for MD-UV3x0 targets 2021-03-20 11:51:35 +01:00
Silvano Seva 2ece3794a0 AT1846S driver for MD-UV3x0 2021-03-20 11:51:35 +01:00
Silvano Seva f9332f5ce3 Implemented I2C routines for AT1846S on MD-UV3x0 2021-03-20 11:51:35 +01:00
Silvano Seva 6c79d710a1 Fixed wrong screen orientation on MD-380V(G). Thanks to @tarxvftech for testing! 2021-03-19 13:24:56 +01:00
Silvano Seva 5b44cb9a9f On GDx devices deferred the loading of calibration data from 'platform_init' to the first call of 'platform_getCalibrationData' to avoid having the screen blank for a while when booting 2021-03-14 17:08:12 +01:00
Federico Amedeo Izzo d6b54dc655 GD-77 properly terminate codeplug strings with 0x00 instad of 0xFF 2021-03-14 14:33:19 +01:00
Silvano Seva 5d0c7f3d9c Removed I2C initialisation from GDx EEPROM driver, as the I2C bus is already initialised in platform_init() and the double initialisation made some radios freeze on the splash screen 2021-03-14 11:46:00 +01:00
Federico Amedeo Izzo a5b0bc57d1 GD-77: fix bug where last zone was not read from flash 2021-03-14 11:08:52 +01:00
Federico Amedeo Izzo b7795b47c0 Fix swapped FM/DMR channel type on GD-77 2021-03-13 22:25:51 +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 20ad9b7dcf Fixed issue with MDx ADC, rolling back to real battery voltage measurement 2021-03-13 09:16:06 +01:00
Silvano Seva 608292ee5b Removed old uC/OS-III delay function in linux GPS emulator 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 2b28ea0525 Moving to miosix kernel: added two functions to 'interfaces/delays.h' to provide substitutes for their uC/OS-III counterparts and removed the old rtos sources 2021-03-13 09:16:06 +01:00
Silvano Seva 093640478c Moving to miosix kernel: adapted GDx drivers and part of the common code to new configuration 2021-03-13 09:16:06 +01:00
Silvano Seva 7992b4abca Moving to miosix kernel: adapted MDx drivers to new configuration 2021-03-13 09:16:06 +01:00
Silvano Seva aa3680ee46 Moving to miosix kernel: boot files for MK22FN512-based targets 2021-03-13 09:16:06 +01:00
Silvano Seva 5995a5d8e0 Moving to miosix kernel: adapted parameters for cross-compilation and modified boot files for STM32-based targets 2021-03-13 09:16:06 +01:00
Federico Amedeo Izzo dc5739b8bc Fix GD-77 SPI flash pinout to make flash working 2021-03-01 20:54:00 +01:00
Federico Amedeo Izzo f5a2f8c1ce Disable settings write until DFU support is complete 2021-03-01 19:53:06 +01:00
Silvano Seva 4038bf811e Fixed error in 'W25Qx_writePage' causing it skipping the blocks having an odd address 2021-02-26 11:07:32 +01:00
Silvano Seva 60b9c8b516 Made linker emit a warning whenever common symbols are merged. Fixed some variables having an unnecessary global scope and being subject to common linkage 2021-02-25 17:00:28 +01:00
Silvano Seva d96e60873e Added register documentation in AT1846S driver 2021-02-25 11:40:56 +01:00
Silvano Seva 3438006ef5 Removed moving average filtering from MDx ADC1 driver, added code for proper filtering of ADC samples in platform-independent code 2021-02-23 15:49:55 +01:00
Silvano Seva dc131c3333 Refactored 'W25Qx_writeData' and disabled '-ffunction-sections', which causes printf not printing decimal dots when used with %f 2021-02-23 13:51:49 +01:00
Federico Amedeo Izzo d4981ee288 Add Settings persistence to SPI Flash 2021-02-21 15:58:41 +01:00
Federico Amedeo Izzo 5f187bc76d Fix SPI Flash write function 2021-02-21 14:28:42 +01:00
Federico Amedeo Izzo bf8a5cf87d Add SPI Flash write data implementation and test 2021-02-21 08:30:51 +01:00
Federico Amedeo Izzo a009ffa2d0 Add CPS contact reading for GD-77 (currently not working for SPI flash issues) 2021-02-20 09:27:07 +01:00
Federico Amedeo Izzo 042ec2d5c1 Add GD-77 VFO channel CPS support 2021-02-20 08:55:42 +01:00
Federico Amedeo Izzo a86176dcb8 Add GD-77 zone CPS support 2021-02-20 08:41:47 +01:00
Federico Amedeo Izzo 6755a4a7e5 Fix CPS channel reading on GD-77 2021-02-19 15:08:29 +01:00
Silvano Seva d69c237255 Fixed misspelled parameter of gpio_clearPin 2021-02-19 11:58:55 +01:00
Silvano Seva af6c78542a Added support for power gating gpio 2021-02-19 11:51:05 +01:00
Federico Amedeo Izzo 947d071f57 CPS: Fix GD-77 Channel base address 2021-02-18 15:41:59 +01:00
Silvano Seva b699fb4d00 Trying to fix screen rotated by 180° on MD-380V devices 2021-02-17 21:14:26 +01:00
Federico Amedeo Izzo 046fcdb417 CPS: Improved GD-77 channel reading 2021-02-17 20:02:53 +01:00
Silvano Seva 06d75ad606 Implemented sector erase and page write into W25Qx driver 2021-02-17 11:39:52 +01:00
Niccolò Izzo 4d66d8b1af Fix various warnings 2021-02-17 11:21:46 +01:00
Niccolò Izzo c752601463 Add test NMEA sentences on linux platform 2021-02-16 23:44:18 +01:00
Federico Amedeo Izzo c0a972963c Add GPS flag to Linux target 2021-02-14 17:49:59 +01:00
Federico Amedeo Izzo 9255dfb969 Disable GPS functions for radios that don't support a GPS chip 2021-02-14 17:49:23 +01:00
Federico Amedeo Izzo 8f3c46a262 Add GDx CPS channel decoding 2021-02-14 17:34:40 +01:00
Federico Amedeo Izzo 845d0b8a7d Reduce RTX and Platform verbosity on Linux, add missing newline in RTX 2021-02-13 11:24:05 +01:00
Federico Amedeo Izzo 3ddf7f3557 Add comment explaining lack of VFO in MD380 CPS 2021-02-13 11:24:05 +01:00
Federico Amedeo Izzo 19838dbb38 Read VFO channel from flash when initializing state 2021-02-13 11:24:05 +01:00
Federico Amedeo Izzo a9ad22a4c9 NVM: Add function to read VFO channel for MD-UV3x0 2021-02-13 11:24:05 +01:00
Silvano Seva e35870a40f Moved data structures for NVM management into dedicated header files 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 f847631d8e Fixed bug in MDx GPS driver preventing the correct reception of NMEA sentences 2021-02-04 10:31:27 +01:00
Silvano Seva 9b9c521459 GPS driver for MD-3x0 targets 2021-02-04 09:57:43 +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 7bfc8c5fb1 Tentative fix for display rotated of 180° on MD-380V devices. See also #13 2021-02-03 14:52:09 +01:00
Silvano Seva 1cd0efdee1 Fixed compilation warnings and code refactoring pass 2021-02-03 14:50:00 +01:00
Silvano Seva 1846fde270 Documentation of AT1846S driver API 2021-02-03 14:30:06 +01:00
Silvano Seva 3e2716f52c Implemented TX CTCSS tone for GDx devices 2021-02-03 14:30:06 +01:00
Silvano Seva a1bd2fe22b Fixed bug in PLL divider computation which leads to have VCO frequency 4.2MHz below the expected value. See #13 2021-02-03 14:30:06 +01:00
Silvano Seva 061c90cfb4 Fixed missing removal of PA drive voltage before turning on RX LNAs in GDx radio driver 2021-02-03 14:30:06 +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 fa07a55140 Removing old rtx driver implementations 2021-02-03 14:30:06 +01:00
Silvano Seva e9b7a0154a Added missing audio mux control to GDx radio 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 edb2697124 New 'radio' interface API, providing a standard interface for low-level platform-specific baseband control 2021-02-03 14:30:06 +01:00
Silvano Seva 2fee6d0d06 Fixed decoding of CT/DCSS codeplug field in MDx nvmem driver 2021-02-02 22:24:12 +01:00
Federico Amedeo Izzo 83d91b555d Add hwInfo in Info menu 2021-02-02 21:45:10 +01:00
Federico Amedeo Izzo 61ad0879c5 CPS-UI: Make channels, zones and contacts 1-based to fix zone bound 2021-02-02 20:52:37 +01:00
Silvano Seva bcf2aa636c Final cleanup and renaming of MDx display driver 2021-02-02 11:18:33 +01:00
Silvano Seva 1249a791cc Automatic display detection and configuration in MDx display driver 2021-02-02 10:36:54 +01:00
Federico Amedeo Izzo faf943b02b NVM: Add Linux fake zone members 2021-02-01 22:29:35 +01:00
Silvano Seva 80c7668faa Added a data structure providing some hardware information parameters and the relative platform API function to retrieve them 2021-02-01 21:27:31 +01:00
Silvano Seva 13db8244b2 Fixed sporadic keyboard glitches in MDx devices 2021-02-01 19:11:14 +01:00
Niccolò Izzo 09864adf21 Add zones and contact parsing on MD-3x0 2021-02-01 18:51:40 +01:00
Niccolò Izzo ceb109946e Fix input acquisition bug on MD-3x0 2021-02-01 18:51:21 +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 86c25d6e26 Fixed missing include in 'keyboard_MDx.c' 2021-02-01 11:25:45 +01:00
Silvano Seva c87f178823 Fixed bug in UC1701 preventing some settings to be correctly applied 2021-01-30 07:53:37 +01:00
Federico Amedeo Izzo 50841f40ff Enable contrast menu for DM-1801 and MD-9600 2021-01-29 23:11:11 +01:00
Federico Amedeo Izzo 450c965ee0 Disable contrast menu on targets without adjustable contrast 2021-01-29 22:57:24 +01:00
Niccolò Izzo 9f980f1dd4 Sane default for linux RSSI stub 2021-01-29 18:14:48 +01:00