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
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
41a413cfdd
RTX support for GD77 target
2021-01-24 18:59:12 +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