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
15f5477ae0
ttwrplus: add battery voltage readout
...
Add battery voltage readout through the XPowersLib library.
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
Federico Amedeo Izzo
e05d09f0fe
ttwrplus: Set battery charging current to 500mAh to limit PMU heating and max. capacity to 80% to extend lifetime by 2.5x-3x
...
Reference article: https://batteryuniversity.com/article/bu-808-how-to-prolong-lithium-based-batteries
2023-09-20 21:08:35 +02:00
Niccolò Izzo
8e8daa78c8
ttwrplus: implement PMU support
...
Begin implementing PMU, now successfully read and write registers, need
to implement button functionality, battery voltage readout, charge
detection etc.
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
Niccolò Izzo
9a445f3b31
Enable malloc on ESP32 BSP, specify ttwrplus battery type.
...
Mallocs now are working.
This radio sports a single cell Li-Po battery.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
0c27c9ce28
Enable Zephyr dynamic stack threads
...
Enable Zephyr dynamic stack posix threading, with stack pool of 4 and
stack size of 4096.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
1f1d20e120
Update T-TWR devicetree
...
Updated T-TWR devicetree to reflect changes in upstream Zephyr.
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
7c2c61f948
Added Lilygo T-TWR Plus target, using stub drivers.
2023-09-20 21:08:35 +02:00
Silvano Seva
21a93911da
Added support for ESP32-S3 MCU using Zephyr RTOS
2023-09-20 21:08:35 +02:00
tarxvf
9d141b8f93
Fix emulator screenshot
2023-09-11 12:22:08 +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
dd46a48cd1
Improved conversion law in MD-3x0 and MD-UV3x0 platform_getVolumeLevel().
...
Rewritten the conversion law from ADC measurement in mV and normalized
0-255 output, adding a linearization if the pseudo-logarithmic output
curve of the potentiometer.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
2023-09-08 16:02:53 +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
435f7a416d
Basic driver to configure STM32F4 timers as perioric update sources.
2023-08-30 18:04:24 +02:00
Silvano Seva
4d03d1535c
Added function to STM32F4 DMA stream driver returning its status (running or not).
2023-08-30 18:04:24 +02:00
Silvano Seva
2931a83303
Almost general purpose driver for peripheral <-> memory DMA streams on STM32F4xx
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
6c12a326cc
Fixed a bug in STM32 flash driver causing data not being written to the internal flash.
...
Solves #133 .
2023-07-29 16:31:14 +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
dcafd07085
Created "peripherals" include folder for non-mandatory drivers, moved rtc.h to peripherals folder.
2023-07-21 08:23:41 +02:00
Silvano Seva
009930f914
Moved get/set of current time to platform interface API
2023-07-21 07:58:29 +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
6d58230c8c
Module17: set threshold for detection of hardware rev 0.1e to 3V
2023-07-13 09:12:45 +02:00
Silvano Seva
933d291154
Made hwInfo struct const and statically initialized where dynamic loading is not needed.
...
Changed the hwInfo variable to static const in all the platformw where
the information are not loaded from NVM. Doing so puts the variable in
.rodata section and spares a tiny amount of RAM and FLASH.
2023-07-13 08:49:25 +02:00
Silvano Seva
beca0ea093
Module17: implemented control of power on switch, introduced in rev 0.1e
2023-06-14 21:57:33 +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
c862638fd1
Created calibration data structure for Module17
2023-05-29 22:12:40 +02:00
Wojciech Kaczmarski
a9a6217d89
Removed RTC_PRESENT macro for Module 17 since hardware does not have an RTC
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
vk7js
853db877e9
Link beep to volume knob appropriately.
2022-10-28 08:30:47 +02:00
vk7js
94424ce908
Adding beeps to MD380 platform.c.
2022-10-28 08:30:47 +02:00
vk7js
eb89f5a55a
Now play generic beep on any key press as well as different tones when navigating the menu, when menu item wraps, and when function key latches and unlatches if voice prompt level is set to beep.
2022-10-28 08:30:47 +02:00
vk7js
a1e302b19d
Got beeps working so long as you don't have ctcss set.
...
Reduced durations to sensible values.
2022-10-28 08:30:47 +02:00
vk7js
0298aa897b
Implemented beeps on MD-UV3x0 platform driver.
2022-10-28 08:30: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
b861beb0e6
Compiling miosix kernel from sources instead of linking against a pre-build image
2022-09-08 09:11:00 +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
4b0326b1c8
Fixed missing NOLOAD directive in STM32F405 linker scripts causing the linker to emit initialisation data for the BSS section at address 0x2000 0000 and, consequently, making the flasher to wipe up the settings region in MCU's internal flash.
2022-08-11 09:26:11 +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
Silvano Seva
1bb574c4fa
Reorganised graphics module and moved graphics.h from interfaces to core folder
2022-07-18 21:30:43 +02:00
Silvano Seva
e29994f396
Fixed bad include in STM32 USB virtual COM driver causing clash of #define directives in xmodem implementation
2022-07-18 18:48:44 +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
tarxvf
fc6849afb9
Fixed linux RTC driver to make it return UTC time instead of local one
2022-07-10 09:15:10 +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
3a288769ba
Added the 'sleepUntil' API function to delays interface, allowing to put a thread in sleeping state until a certain absolute timepoint is reached
2022-07-02 10:47:19 +02:00
Silvano Seva
2fc89bf583
Renamed 'HAS_GPS' and 'HAS_RTC' to, respectively, 'GPS_PRESENT' and 'RTC_PRESENT'
2022-07-02 10:28:28 +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
d16eb04696
Reorganised data structures and functions to manage date and time
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
Wojciech Kaczmarski
f1b1dc2034
Changed battery type for Module17 to BAT_NONE
2022-06-21 12:06:20 +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
c966f82352
Fixed setting of battery voltage and transmission of PTT press signal from linux emulator shell
2022-06-09 23:02:38 +02:00
Silvano Seva
5c94d33b6b
Reorganised source code of linux emulator main engine
2022-06-09 22:48:51 +02:00
Silvano Seva
763eb0c2be
In SDL engine force display rendering when brightness texture is changed
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
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