Commit Graph

332 Commits

Author SHA1 Message Date
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 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 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
Niccolò Izzo 9f980f1dd4 Sane default for linux RSSI stub 2021-01-29 18:14:48 +01:00
Niccolò Izzo cf8e02506c Align squelch values with rssi 2021-01-29 11:28:21 +01:00
Niccolò Izzo 2fa5b7a6e6 Fix squelch setting on linux 2021-01-28 16:46:09 +01:00
Niccolò Izzo 226d2ccaf7 Implement RSSI based squelch control 2021-01-28 15:13:06 +01:00
Niccolò Izzo 0b98f50a12 Add absolute knob positioning and horizontal keys emulation 2021-01-28 14:14:25 +01:00
Niccolò Izzo 90445e29a7 Implement voltage to dBm conversion in MDx
MDx radios get an RSSI voltage in mV, to be converted into dBm, we used
and empirically derived linear relation to compute the dBm value.
2021-01-28 10:31:37 +01:00
Silvano Seva 92870f477f Added display API function to set LCD contrast 2021-01-26 08:53:42 +01:00
Federico Amedeo Izzo 5a37ba3e8a CPS: Add dummy zones and contacts generation on Linux 2021-01-24 19:01:51 +01:00
Silvano Seva b9ddaca42c Added TX support to GDx baseband driver 2021-01-24 18:59:12 +01:00
Silvano Seva 4e4130e524 Added some missing setters for AT1846S calibration and fixed other ones 2021-01-24 18:59:12 +01:00
Silvano Seva 72220c377e Implemented RTX driver for GDx platform, by now only supporting RX 2021-01-24 18:59:12 +01:00
Silvano Seva 8afa1d700e Driver for HR_C6000 baseband IC 2021-01-24 18:59:12 +01:00
Silvano Seva b2eb042d2b Driver for AT1846S baseband IC 2021-01-24 18:59:12 +01:00
Silvano Seva 9802bc4e75 Started implementation of baseband drivers for GDx platforms 2021-01-24 18:59:12 +01:00
Federico Amedeo Izzo 302eb572be CPS: Add Zone and Contact reading function stubs 2021-01-24 18:11:09 +01:00
Federico Amedeo Izzo d3796971df NVMEM: Fix compiler warning on linux 2021-01-24 16:29:48 +01:00
Federico Amedeo Izzo 0608176342 CPS: Read contact data from codeplug 2021-01-23 11:28:12 +01:00
Federico Amedeo Izzo 33336ecccc CPS: Return -1 when reading an empty channel or zone 2021-01-23 10:38:18 +01:00
Federico Amedeo Izzo fe35d4017a CPS: Fix zone data reading 2021-01-23 10:05:18 +01:00
Federico Amedeo Izzo 489326f5cd CPS: Fix zone extension reading 2021-01-22 21:23:45 +01:00
Federico Amedeo Izzo 6706a796ad CPS: Add code to read zone data from Codeplug 2021-01-22 21:16:13 +01:00
Silvano Seva 4bbad17012 Refactoring of data structure for GDx calibration data: 'vhfCal' and 'uhfCal' fields merged into a single two-element array field 2021-01-21 12:34:11 +01:00
Federico Amedeo Izzo cb4b55d9a3 NVM: Remove unused duplicate driver 2021-01-13 21:13:14 +01:00
Federico Amedeo Izzo 6b47a32292 UI NVM: Fix base address for UV3x0 radios, and convert from 10*Hz to Hz 2021-01-10 11:50:03 +01:00
Federico Amedeo Izzo 47c20f8cff NVM: Convert freq from tens of Hz to Hz when reading CPS channel 2021-01-10 11:27:01 +01:00
Federico Amedeo Izzo 73c9ab56a6 UI: Channel mode: load channel from cps and do basic validation 2021-01-10 10:18:29 +01:00
Niccolò Izzo adc48efb19 Implement CTCSS available tones array
Now the CTCSS tones are taken from an array and indexed from that array.
A macro that sets the tone has been implemented.
2021-01-05 11:26:22 +01:00
Niccolò Izzo bbcd6483a2 Add tone enable flags into channel data structure 2021-01-05 10:08:18 +01:00
Niccolò Izzo 2fe6cd1cb6 Implement draft of the macro menu feature 2021-01-05 10:08:18 +01:00
Silvano Seva a057d2bfee Fix for MD3x0 rtx driver transmitting TX CTCSS tone even if settings tell it as disabled 2021-01-05 09:42:52 +01:00
Silvano Seva 41e6c1d1e6 Added flags to enable TX and RX tones in rtxStatus_t 2021-01-04 08:58:17 +01:00
Silvano Seva 16e4642b97 Fix for first part of #11, caused by VCO not being updated when a new configuration is received by the rtx driver 2021-01-02 21:19:26 +01:00
Silvano Seva 403f37844f Fixed compilation error for MD-UV380G target 2021-01-02 19:39:59 +01:00
Silvano Seva 48775a71fd Finalising merge of branch master into GDx-development 2021-01-02 15:17:15 +01:00
Silvano Seva 206daec861 Driver for nonvolatile external memory on GDx devices, by now only supporting retrieval of calibration parameters 2021-01-02 15:07:14 +01:00
Silvano Seva ff7216e9cd Driver for AT24Cx external EEPROM present on GDx devices 2021-01-02 15:07:14 +01:00
Silvano Seva aad19cc41c Driver for external SPI flash memory on Baofeng DM-1801 2021-01-02 15:07:14 +01:00
Silvano Seva d9f6ea31ab Separated code for SPI communication from sources of external flash memory driver. 2021-01-02 15:07:14 +01:00
Federico Amedeo Izzo 89813199d3 Add dummy nvmem Linux driver 2021-01-02 12:10:10 +01:00
Federico Amedeo Izzo b74dba7564 Differentiate MDUV380G target from MDUV380 2021-01-02 12:08:58 +01:00
Federico Amedeo Izzo 08087cb14a linux-keyboard.c: Fix 0 key contantly pressed on Linux 2021-01-01 20:41:15 +01:00
Silvano Seva a8b18b68d7 Mapped DM1801 VFO/MR button to KEY_F3 and A/B button to KEY_F4 2021-01-01 18:00:51 +01:00
Silvano Seva 8b6f4e3056 Renamed rtc_shutdown() and toneGen_shutdown() to rtc_terminate() and toneGen_terminate() 2020-12-31 18:31:00 +01:00
Niccolò Izzo c77cc46fb6 Fix include syntax
Interface header includes have acquired the interface prefix, to
distinguish them from regular header includes.
2020-12-24 16:30:13 +01:00
Silvano Seva f38ce61dc9 ADC driver for GDx targets 2020-12-22 15:29:32 +01:00
Silvano Seva 85a41a5ca7 On MDx targets made the ADC DMA trasfer priority higher than the DMA framebuffer one to avoid ADC overruns due to the ADC DMA transfer being suspended by the framebuffer ones 2020-12-19 21:57:43 +01:00
Federico Amedeo Izzo 1f6bfa4cff RTX: Remove printf from UV3x0 RTX stub, fixes issue #9 2020-12-19 16:46:00 +01:00
Niccolò Izzo d56fafe1a2 Merge graphics_* into a single compilation unit
The specialized graphics libraries ended up sharing the majority of the
code, now they have been merged into a single library so that the
graphics development can be done quicker without leaving any of the
platforms behind.
2020-12-19 12:49:30 +01:00
Silvano Seva f0862abac1 On MD3x0 baseband, fixed PLL going nuts for some frequencies (e.g. 430.0MHz) and causing the radio transmitting on a shifted band. 2020-12-19 10:12:05 +01:00
Silvano Seva 431d445c77 Adding stub RTX driver for GDx devices 2020-12-18 17:16:08 +01:00
Federico Amedeo Izzo 599569f236 Add UV3x0 RTX stub 2020-12-17 22:18:09 +01:00
Federico Amedeo Izzo 99bd45d465 Add linux RTX stub 2020-12-14 15:31:39 +01:00
Silvano Seva 4f0ffe8565 Improved message passing mechanism for rtx driver configuration 2020-12-13 09:17:08 +01:00
Silvano Seva 6ca3faceaf Made calls to 'display_renderRows' and 'display_render' blocking, thus not requiring anymore to busy wiat on 'display_renderingInProgress'. Modifications involved only MDx display driver, the others were already blocking. 2020-12-12 10:16:26 +01:00
Fred 1a11ff8401 Optimize libSDL driver for RGB565 2020-12-11 14:41:44 +01:00
Silvano Seva 47dd9e2046 Fixed glitching keyboard buttons on MDx targets 2020-12-11 14:41:44 +01:00
Silvano Seva bb53b5ccef Added squelch system to MD3x0 rtx driver 2020-12-06 19:33:27 +01:00
Silvano Seva 2c0b75b221 Added CTCSS TX tone 2020-12-06 19:33:27 +01:00
Silvano Seva 41d09ce28e Cleaned up HR_C5000 driver source file 2020-12-06 19:33:27 +01:00
Silvano Seva 0fee5acbf0 Complete refactoring of both rtx API and its implementation for MD3x0 platforms 2020-12-06 19:33:27 +01:00
Silvano Seva 6e144a7160 Fixed bug in MD3x0 calibration loader, made the input parameters of 'interpCalParameter' const 2020-12-06 19:33:27 +01:00
Silvano Seva b1412dedb8 Added 'OSIntEnter'/'OSIntExit' to MDx tone generator ISR 2020-12-06 19:33:27 +01:00
Silvano Seva aa0e1f479e Fixed error in function to set HR_C5000 modulation bias, merged rx and tx testsuites for MD380 2020-12-06 19:33:27 +01:00
Silvano Seva 29f5b82488 Refactoring code of HR_C5000 driver, adding documentation and sharpening its API. 2020-12-06 19:33:27 +01:00
Silvano Seva bd9a258541 More refactoring of HR-C5000 driver, cleaning up command sequences 2020-12-06 19:33:27 +01:00
Silvano Seva 88ea167804 Began refactoring of HR-C5000 driver 2020-12-06 19:33:27 +01:00
Silvano Seva 46f68ebca6 First skeleton of a driver for HR-C5000 and made TX working on TYT MD-380 2020-12-06 19:33:27 +01:00
Silvano Seva 55b182406d Initial implementation of rtx driver for TYT MD-380 radio, by now supporting only analog FM reception 2020-12-06 19:33:27 +01:00
Fred 41ecb11d3a Add GD77 keyboard driver 2020-12-05 15:27:04 +01:00
Fred 0d437b239d Add GD77 keyboard file 2020-12-04 20:39:20 +01:00
Fred 5d9ac78548 Fix GD77 display driver 2020-12-04 20:39:20 +01:00
Silvano Seva 8762a9e3a8 Display driver for GD77, still work in progress 2020-12-04 20:39:19 +01:00
Silvano Seva d4cdba2243 Moved calibration data structures from 'platform/drivers/NVM' to 'openrtx/include/calibration', since various modules need them 2020-12-04 10:27:04 +01:00
Federico Amedeo Izzo efc4820328 Keyboard: Replace uint32_t with keyboard_t 2020-11-28 09:51:18 +01:00
Silvano Seva 3bb7e2cfd4 Moved to static allocated framebuffer and USB vcom rx buffer 2020-11-27 22:34:25 +01:00
Silvano Seva 4dbdb5ddbb Implemented reading of channel data from external flash memory for MDx targets 2020-11-25 16:40:17 +01:00
Silvano Seva 83f375c675 Merged MD3x0 and MDUV3x0 calibration data structures into a single header file for MDx family 2020-11-25 13:57:36 +01:00
Silvano Seva 8b60ad83b4 Added sample averaging to MDx ADC driver 2020-11-25 10:26:53 +01:00
Silvano Seva 8efbfab6e1 Fixed parsing errors in MD-UV3x0 calibration data loader 2020-11-24 12:41:20 +01:00
Silvano Seva e690a36dd1 Implemented NVM interface API also for MD-UV3x0 targets 2020-11-24 12:41:20 +01:00
Silvano Seva 310f19c6b7 API to access external nonvolatile memory, implementation for MD3x0 devices and testsuite for printing calibration values of MD3x0 devices 2020-11-21 09:37:12 +01:00
Silvano Seva 9b14e9fae7 Low-level driver for external SPI flash memory on MDx family devices 2020-11-20 14:47:52 +01:00
Silvano Seva 1cf2a40182 Changed names of source files for MDx drivers to comply to new naming convention 2020-11-19 18:24:28 +01:00
Silvano Seva 552a88ed4c Reorganising includes in MDxx380 tone generator source file 2020-11-19 12:53:13 +01:00
Federico Amedeo Izzo a58eaa2a08 keyboard_linux.c: add kbd_init() implementation to fix compilation on Linux 2020-11-16 21:29:10 +01:00
Silvano Seva 85a89d1f84 Doubled the prescale value of all the timers, since they run at twice the frequency of the bus they are connected to 2020-11-16 18:03:02 +01:00
Silvano Seva 01ee477b02 Workaround for an STM32F405 bug causing a delay between an RCC peripheral clock enable and the effective peripheral enabling, as described in ST's silicon errata sheet 2020-11-16 11:24:52 +01:00
Silvano Seva 89e822813b Adding the remaining part of issue #5 fix, forgot in the previous commit 2020-11-15 21:16:49 +01:00
Silvano Seva 72988cd5cf Fix for both issue #5 and a bug in keyboard driver leading to undetected keypresses in some cases 2020-11-15 20:38:28 +01:00
Silvano Seva 793a2dcd52 Adding build target for Tytera MD-390 radio 2020-11-13 16:57:49 +01:00
Silvano Seva 9458fd252b Moving to a general flag for x-axis mirroring in MDxx380 display driver 2020-11-13 16:32:57 +01:00
Silvano Seva f7fde110bb Tone generator for CTCSS and user interface 'beep' on MD380 2020-11-13 14:31:43 +01:00
Silvano Seva a5eeca7dae Moving ADC driver for MDxx380 family to common drivers folder. 2020-11-13 08:58:10 +01:00
Fred f10a6e426c Improve SDL keyboard event handling 2020-11-11 11:01:27 +01:00
Silvano Seva b4b3b3fa5a Fixing screen orientation for MD380 2020-11-03 22:46:58 +01:00
Fred 9f9b76e9b5 Make the SDL window resizable 2020-11-03 15:15:36 +01:00
Fred 3d1f255d46 Add keyboard implementation for linux 2020-11-03 15:15:36 +01:00
Silvano Seva b0f5341304 Added flag for 'monitor' button to keyboard driver, implemented 'monitor' and 'function' buttons in MDxx380 keyboard driver 2020-11-03 15:15:36 +01:00
Silvano Seva 9a94efb1c7 Keyboard driver for MD-380 and MD-UV380 2020-11-03 15:15:36 +01:00
Silvano Seva bf3488def8 Improved check for rendering in progress in HX83XX display driver, now both chip select and DMA enable bit are verified 2020-11-03 15:15:36 +01:00
Silvano Seva 69c96c1d81 Renamed source file of display driver for MD-380 and MD-UV380 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 6b0f0242d1 Remove screenWidth and screenHeight getters. 2020-11-03 15:15:36 +01:00
Silvano Seva ba40d5f70f Moving GPIO definitions to hwconfig.h 2020-11-03 15:15:36 +01:00
Silvano Seva 9b20e5010c Made gpio API completely platform independent 2020-11-03 15:15:35 +01:00
Silvano Seva beb33ff244 Moved constants for screen dimensions to platform-dependent hwconfig file 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo c3ef0ca036 Remove backlight control from anywhere except platform.c and platform.h 2020-11-03 15:15:35 +01:00
Silvano Seva 06346ac827 Moving function for setting display backlight level from display driver to 'platform.c' file 2020-11-03 15:15:35 +01:00
Niccolò Izzo 4a27aadcc2 Fix typo 2020-11-03 15:15:35 +01:00
Silvano Seva e5decb7244 Fixed endianness reordering in MD380 display driver, now it reorders only the lines to be rendered instead of the whole framebuffer 2020-11-03 15:15:35 +01:00
Silvano Seva bdb59a3ff9 Adapting MD380 display driver to uC/OS-III, making little code reorganisation and embedding endianness reordering into display_render() 2020-11-03 15:15:35 +01:00
Silvano Seva b9517e5867 Adding support for 8bpp grayscale and 1bpp black/white pixel formats to SDL-based display emulator, keeping 16bpp RGB565 as the default one. 2020-11-03 15:15:35 +01:00
Silvano Seva 638707a6aa Renamed 'lcd.h' to 'display.h' and updated the function names for low-level display driver. 2020-11-03 15:15:35 +01:00
Silvano Seva f043581928 Making the interface for low-level display drivers more general: now the pointer to framebuffer is returned as void *. Updated existing drivers and test code accordingly. 2020-11-03 15:15:35 +01:00
Silvano Seva b2d613f38b Improved lcd_terminate function in SDL-based lcd driver 2020-11-03 15:15:35 +01:00
Silvano Seva 2cfca62b00 Driver for SDL-based display emulator, updated lcd.h documentation 2020-11-03 15:15:35 +01:00
Silvano Seva 564c7b94d9 Added missing folder 2020-11-03 15:15:35 +01:00
Silvano Seva 327d8c193c Start migrating code from previous work 2020-11-03 15:15:35 +01:00