Commit Graph

584 Commits

Author SHA1 Message Date
Silvano Seva 8347c3bdcd Standard interface for SPI peripherals 2024-06-21 18:00:33 +02:00
Silvano Seva f2c0f2cc90 Standard interface for I2C peripherals (MCU side) 2024-06-21 18:00:33 +02:00
Silvano Seva e53e110a3b Reorganized and extended the gpio peripheral API 2024-06-21 18:00:33 +02:00
Marco 70f0ce45d3 GPS: using 16-bit integers for course over ground 2024-04-10 19:12:34 +02:00
Marco a17ad80f10 GPS: using 16-bit integers for altitude and speed 2024-04-10 19:12:34 +02:00
Marco e4a62f30ee GPS: using fixed-point 32-bit value for latitude and longitude 2024-04-10 19:12:34 +02:00
Marco 36ef3b310c Added function to convert minmea coordinate to fixed-point integer representation 2024-04-10 08:04:26 +02:00
jpucheu 71b35985ce UI: added string table for Spanish language 2024-03-19 18:26:38 +01:00
Silvano Seva 8550e4f7a6 Module17: renamed calibration fields for TX/RX baseband inversion 2024-03-13 08:37:04 +01:00
Silvano Seva ed92d81543 Module17: implemented configurable logic levels for PTT in/out
See #248
2024-03-13 08:37:04 +01:00
Silvano Seva 6c8eaf7073 Module17: removed backlight timer 2024-02-06 21:11:46 +01:00
Silvano Seva fdd08d4bcb Module17: removed screen contrast setting, added screen brightness setting
Module17 uses an OLED display, which does not have contrast regulation. The
contrast control register, however, allows to change the brightness of the
display.
2024-02-06 21:11:41 +01:00
Silvano Seva d119e7d1b2 Moved pixel framebuffer out of display drivers into graphics layer
Reorganized code for pixel framebuffer in order to have it instantiated once
and for all the possible display drivers. Dropped the display_getFrameBuffer()
function.
2024-02-06 19:19:47 +01:00
Silvano Seva 731054a131 Dropped display_renderingInProgress() function from display API
Removed display_renderingInProgress() function from display interface as it
has never been used so far.
2024-02-06 19:19:47 +01:00
Silvano Seva c533c47103 Default UI: optimized layout_t struct and _ui_calculateLayout() function
Small optimizations to layout management code, saved around 132 bytes of
.text space.
2024-02-06 19:19:47 +01:00
Silvano Seva d8c0ab1c44 Dropped support for 20kHz bandwidth
Dropped support for 20kHz bandwith in rtx code and radio drivers. This option
is supported only by MDx radios and so far is not being used at all.
2024-02-06 19:19:47 +01:00
Silvano Seva 44385b3b25 Using signed 32-bit data type for RSSI instead of floating points
Switched to int32_t for RSSI representation to allow running the code also
on devices with limited resources. Defined a new ad-hoc type to still keep
the possibility of using floating points on more capable devices.
2024-02-01 11:07:20 +01:00
Silvano Seva 963f402f1b Graphics: using uint8_t instead of float for squelch and volume levels
Modified type of drawSmeter() and drawSmeterLevel() input parameters from
float to uint8_t.
2024-02-01 11:07:20 +01:00
Silvano Seva 49c99acf85 Utility function to strip leading zeroes from numbers in decimal notation 2024-02-01 11:07:20 +01:00
Silvano Seva 7b0ff04a2d Graphics: removed 18pt and 24pt fonts
Removing 18pt and 24pt fonts from graphics layer since currently are unused
and take up flash space. On MD-380, removal freed up 12'928 bytes in the
.text section.
2024-02-01 11:07:20 +01:00
Silvano Seva cb7b605251 Removed use of floating points when printing/announcing CTCSS tone frequency 2024-02-01 11:07:20 +01:00
Silvano Seva 5b3929ef44 Moved from float to uint32_t for TX power, substituted dBm with mW in CPS channel struct
General code optimization allowing to reduce the overall binary size, especially
for devices without hardware floating point support. On the MD-380 (which has the
FPU) the .text size has been reduced of 4'928 bytes.
2024-02-01 11:07:20 +01:00
Silvano Seva dc930f4a4b Added CONFIG_M17 macro to enable M17 support on each target 2024-02-01 11:07:20 +01:00
Silvano Seva 24c4a25b2d Made "static" all the variables local to each translation unit 2024-02-01 11:07:20 +01:00
Silvano Seva e54234f968 Renamed UI_NO_KEYBOARD macro to CONFIG_UI_NO_KEYBOARD 2024-02-01 11:07:20 +01:00
Silvano Seva 8bc867beae Using Kconfig-style #defines for GPS, RTC and knob type description 2024-02-01 11:07:20 +01:00
Silvano Seva 0f4290cdfe Using Kconfig-style #defines for display parameters' description. 2024-02-01 11:07:20 +01:00
Silvano Seva 598f1c4523 M17: deeply restructured the demodulator code
Restructured the M17Demodulator class and rewritten the
demodulator logic to have a more solid lock on the
baseband stream. This fixes the long standing bug of the
demodulator causing random losses of lock even when
receiving a solid baseband stream.
2024-01-27 15:15:37 +01:00
Silvano Seva ddf889177c Frame synchronizer class 2024-01-27 15:15:37 +01:00
Silvano Seva 3375d0b5d1 Correlator class 2024-01-27 12:17:07 +01:00
Silvano Seva 90cf0f6f58 Added reset() method to RingBuffer class 2024-01-27 12:17:07 +01:00
Silvano Seva 275ef16977 Added IIR filter implementation 2024-01-20 14:31:39 +01:00
Morgan Diepart 2653ee01aa M17: added callsign-based squelch for incoming transmissions 2024-01-10 19:03:48 +01:00
Morgan Diepart 5ec0587c48 Added macro menu latching setting 2024-01-10 18:08:35 +01:00
Silvano Seva b1fa154ad9 UI: renamed "Voice Prompts" menu to "Accessibility" 2024-01-10 18:06:48 +01:00
Silvano Seva 096da4102d Utility functions to perform read/write/erase operations on NVM areas and partitions 2023-12-03 19:00:55 +01:00
Silvano Seva 070ed3de32 Device driver for file-based nonvolatile memory storage 2023-12-03 19:00:55 +01:00
Silvano Seva d9b22c1d2d Added function to retrieve the list of available NVM areas 2023-12-03 18:34:39 +01:00
Silvano Seva 7174246492 Standard interface for non volatile memory devices 2023-12-03 18:34:39 +01:00
Marco 5a0f92e23d Add a volume bar in the bottom over the other bars
This will fix #190
2023-11-25 19:08:38 +01:00
Silvano Seva 91c0965007 Module17: made M17 baseband output have correct DC bias and amplitude
Removed an old workaround for an hardware bug of Module17 rev 0.1b limiting
the output swing of baseband signal in newer hardware revisions.

Contribution by Mathis Schmieder DB9MAT.
2023-11-21 18:46:03 +01:00
Silvano Seva 7dc2ca5524 Driver for random number generator peripheral 2023-11-02 18:36:07 +01:00
Morgan Diepart f43281e815 Display callsign on splash screen 2023-10-26 06:01:54 +02:00
Morgan Diepart 1124c76b73 Added M17 destination to settings
# callsign in backed-up settings
2023-10-23 00:40:55 +02:00
Niccolò Izzo 17d5be118e Enable frequency offset input from radio menu
Adapted callsign input to create a frequency input menu, that was used
to enable the input of a frequency offset from the Settings->Radio menu.
2023-10-16 21:50:03 +02:00
Niccolò Izzo 5d3c6c825d Add radio settings for frequency offset, direction, and frequency step.
Add customizable frequency_step in radio state.
Offset is not yet selectable from Settings->Radio but only with keypad
from the VFO screen.
2023-10-16 21:49:56 +02:00
tarxvf 7e291fe6fd Implement UI input lockout logic, toggled by macro menu key 9.
Contribution by tarxvf.
2023-10-16 21:46:37 +02:00
marco 20b0c375aa Change M17_orig to link and change callsign handling
This will swap the first extended callsign with the source callsign
if there is extended callsign data.
This allows to always store the true source in the M17_src variable

See #188
2023-10-13 09:58:34 +02:00
marco 77e0ad27a0 Added support for 1750Hz squelch tone, implemented squelch tone in UV-3x0 radio driver.
When pressing the Hash key and the PTT key in FM mode
a 1750 Hz tone is transmitted
2023-09-22 13:58:59 +02:00
Silvano Seva 73bfc2a15d Set proper thread stack size also when using the Zephyr RTOS 2023-09-22 13:57:33 +02:00
Niccolò Izzo 21895ae304 ttwrplus: disable Tx in menus
As T-TWR Plus reuses the PTT as a back button, thus we need to disable
PTT in menus. Also enforce rx_only logic from CPS.

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

TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva ebc5910015 Renamed "bcd2bin" utility to "bcdToBin" to avoid conflicting with Zephyr includes 2023-09-20 21:08:35 +02:00
Marco 1a7d62fb42 Add UI and check for CAN on RX 2023-09-16 19:14:17 +02:00
Silvano Seva 8fe9837035 Implemented rxSquelchOpen() function for M17 opmode handler, returning true in case of valid stream data. 2023-09-12 17:47:49 +02:00
marco 22afe0ecde Port changes for M17 Call Info to module17 2023-09-12 17:47:49 +02:00
Marco a3fbe34b30 Add symbols for M17 stream data display 2023-09-12 17:47:49 +02:00
Marco a0f5d55cc1 Add M17 stream information to rtxStatus struct 2023-09-12 17:47:49 +02:00
Niccolò Izzo 3860894bff
Implement macro menu without keyboard
Adapt UI for radios that do not have a keyboard, add macro menu UI code
that can only use KEY_ENTER and KEY_UP, KEY_DOWN.

TG-553
2023-09-10 12:12:13 +02:00
marco d7578c4441 Refactor ui sizes
This changes line 3 to line 3 large and adds
two new lines, line 3 and line 4, similar to
line 1 and line 2
2023-09-04 15:12:18 +02:00
Wojciech Kaczmarski ffdc04be3e `m17crypto_t` update
m17crypto_t now conforms to M17 spec
2023-09-04 12:24:05 +02:00
Silvano Seva c9cd620530 Audio codec: added function returning the codec's current operational status 2023-08-30 18:04:25 +02:00
Silvano Seva 94fdd1090b Refactoring and improvement of codec2 module 2023-08-30 18:04:25 +02:00
Silvano Seva 24208db609 New unified audio stream manager 2023-08-30 18:04:25 +02:00
Silvano Seva adf88611f4 Changed codec_startEncode() and codec_startDecode() input parameter from an audio source/sink to an audio path 2023-08-30 18:04:25 +02:00
Silvano Seva 60b771b375 Added function to get all the informations of a given audio path 2023-08-30 18:04:25 +02:00
Silvano Seva 584dd356e2 Standard interface for drivers managing audio input and output devices 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
marco 278d7850c7 M17: add data structures for GNSS and extended callsign metadata. 2023-08-28 10:25:46 +02:00
Ryan Turner ec57e74bc6 feat(ui): add tooling to generate symbols, add GPS status icon and macro latch icon to the macro menu
Ref https://github.com/OpenRTX/OpenRTX/issues/161
2023-08-24 09:32:01 +02:00
Marco 8399dcd3a3 Change macro latching behavior
Latch macro menu when macro button is long pressed
Unlatch macro menu when macro button is pressed again
2023-08-17 16:57:14 +02:00
k5jae c1a9db22b7 Made Brightness setting optional based on HW capabilities 2023-08-16 20:46:25 +02:00
k5jae 4a6d0b4c2b Change English string for M17 destination from Broadcast to ALL
This aligns with M17 Specification and other tools.
2023-08-16 20:45:36 +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 498f959798 Removed CPS flash backup and restore (actually unused) and hidden its UI menu entry
CPS flash backup and restore will be implemented via rtxlink/FMP, removed
current implementation which was never actually used. Code for backup and
restore UI menu entry kept for now.
2023-07-20 07:00:54 +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 8019b29947 Moved the setBacklightLevel() API function from platform.h to display.h 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 f3f36fc2ae Module17: quick and (very) dirty implementation of shutdown menu for hardware rev 0.1e 2023-06-15 08:16:53 +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 cadec3dfd4 Default UI: implemented setting of M17 CAN 2023-05-29 22:12:40 +02:00
Silvano Seva 2f0d56a8e0 Moved M17 destination callsign directly inside radio state data structure 2023-05-29 22:12:40 +02:00
Silvano Seva 423183700c Moved M17 CAN to settings 2023-05-29 22:12:40 +02:00
Silvano Seva fb8e3412c5 Implemented change of M17 baseband signal phase according to user settings for both TX and RX in Module17 2023-05-29 22:12:40 +02:00
Silvano Seva e93b461beb Added phase inversion setting to M17 modulator 2023-05-29 22:12:40 +02:00
Mathis Schmieder adc916dbca Added CAN setting 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
Mathis Schmieder bd8f0d70c7 Added RX/TX inversion and mic gain setting on Module 17 UI 2023-05-29 22:12:40 +02:00
Mathis Schmieder f32255c258 Implemented softpot settings UI for Module 17 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 22e9d8ce48 Module 17 UI: layout and main screen 2023-05-29 22:12:40 +02:00
Silvano Seva e3b66f6a4b Added channel access number and frame type to M17 data field in radio state, merged TX and RX channel access number fields of rtx configuaration data structure into one. 2023-05-29 22:12:40 +02:00
Silvano Seva d8c4ba4420 Base sources for Module 17 UI 2023-05-29 22:12:40 +02:00
Silvano Seva 76ded06751 Split UI sources in a default one for the radios and the Module17 one. 2023-05-29 22:12:40 +02:00
Silvano Seva 4a3bc93fa4 Always send an M17 EOT frame as the last frame before terminating baseband output 2023-03-12 16:27:31 +01:00
Silvano Seva a89a7523cb Updated year in copyright headers 2023-02-08 16:33:02 +01:00
Silvano Seva 49c6cbd7c0 Added implementation of soft-decision Viterbi decoder for M17 protocol, updated version number in meson.build 2022-11-11 22:04:34 +01:00