Silvano Seva
9e5c689bf3
M17 protocol data structures
2021-09-03 16:39:06 +02:00
Silvano Seva
222ba690a5
Improved implementation of DSP function for DC removal
2021-09-03 15:46:13 +02:00
Silvano Seva
c2b6bd545f
API interfaces for audio path and audio stream management
2021-08-25 18:30:28 +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
46819ba993
Modified 'battery_getCharge': now it takes as input the battery voltage in mV and returns charge percentage as an integer ranging from 0 to 100. Function body is implemented using fixed point math instead of floats for improved platform compatibility when hardware floating point support is not present.
2021-08-14 12:52:55 +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
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
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
4d68f02ab4
Updated documetation for radio.h API, removed old baseband C source files.
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
850e3580ed
New radio driver for MD-3x0 platform, still requiring a bit of debugging
2021-05-29 08:20:12 +02:00
Silvano Seva
5b0bec8c5f
Created OpMode class for modular OOP-based management of operating modes. Created OpMode_FM class for analog FM management. Refactored and moved to C++ the content of openrtx/src/rtx.c. (TG-38, TG-41)
2021-05-29 08:20:12 +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
Niccolò Izzo
e3a128f035
Add DSP code with DC removal and FIR PWM filter compensation
...
Add generic FIR implementation, specialized to compensate the PWM filter
applied by STM32 targets when modulating M17 signal.
Add DC bias compensation to normalize audio signal received from STM32
ADC.
TG-85 #ready-for-test
TG-199 #ready-for-test
2021-04-16 09:46:32 +02:00
Silvano Seva
a850f9f1ab
Removed packed attribute from rtx and radio state data structures as they can cause crashes due to unaligned memory accesses.
2021-04-15 21:24:26 +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
60defbedc0
Implemented stack and heap memory profiling functions. TG-47
2021-04-12 12:03:15 +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
a42354a204
Remove Messages menu as it's not implemented yet
2021-04-11 10:06:12 +02:00
Federico Amedeo Izzo
58f4f5dcaf
Print git commit or tag inside Info menu
2021-04-11 09:56:46 +02:00
Federico Amedeo Izzo
93d2ede113
Add default contrast setting define
2021-04-11 09:10:08 +02:00
Federico Amedeo Izzo
341c46a263
Now state.time is UTC, add functions to convert from UTC to local and reverse
2021-04-10 15:39:59 +02:00
Silvano Seva
d70e0bc60a
Made 'battery_getCharge' return full charge when 'BAT_NONE' is defined
2021-04-10 12:45:07 +02:00
Federico Amedeo Izzo
8045a9bcea
Improve gfx_printLine calculation
2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo
3e326a43f0
Add gfx_getFontHeigth() function
2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo
c3a8251ca9
Integrated getLineY() functionality in gfx_printLine()
2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo
765fb3f4c9
Add getLineY Layout helper function
2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo
341ab84ce9
Converted `gfx_print()` from char * pointer to format string
2021-04-10 11:10:52 +02:00
Niccolò Izzo
d4ad8b12b1
Fix bug on MD380
...
Fixed a bug where pressing the side button would lead to a crash,
probably caused by a misaligned memory access, due to the addition of a
packed attribute.
2021-04-09 13:26:01 +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
Niccolò Izzo
b6eab0fde7
Fix failing boot on MD380
2021-04-02 08:43:31 +02:00
Silvano Seva
86f6d114e2
Applied __attribute__((packed)) to all data structures to reduce memory footprint
2021-03-26 18:11:22 +01:00
Federico Amedeo Izzo
0d9d77d3ca
Manually trim FreeSans6pt7b font to make it more symmetric
2021-03-14 18:43:33 +01:00
Silvano Seva
01ea1a9b3f
Made the main() thread run the UI task, thus removing the need for a dedicated one
2021-03-14 17:17:24 +01:00
Federico Amedeo Izzo
92e0abafa2
Display: Set default contrast at boot. Improve default contrast for GD-77
2021-03-14 11:35:45 +01:00
Silvano Seva
e5316aa8be
Minimal refactoring of queue sources
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
416ae13eb1
Fixed linking error when building for linux
2021-02-23 14:01:09 +01:00
Silvano Seva
d0e8d15389
Added 'packed' attribute to settings data structure. Some refactoring of settings and state code.
2021-02-21 19:25:09 +01:00
Federico Amedeo Izzo
35bde9bccb
Add state_terminate() that saves settings to flash
2021-02-21 16:44:31 +01:00
Federico Amedeo Izzo
d4981ee288
Add Settings persistence to SPI Flash
2021-02-21 15:58:41 +01:00
Federico Amedeo Izzo
820ac73d08
UI: Add menu_h and menu_font layout parameters
2021-02-20 16:03:37 +01:00
Federico Amedeo Izzo
711d8426c9
Add 10pt font. Reduce frequency line on GD-77 to avoid overlap
2021-02-20 15:14:35 +01:00
Niccolò Izzo
4d66d8b1af
Fix various warnings
2021-02-17 11:21:46 +01:00
Federico Amedeo Izzo
cecd01e03d
GPS: workaround: Move settings above gps_data to avoid settings
...
corruption caused by gps_data overflow
2021-02-16 22:44:21 +01:00
Federico Amedeo Izzo
75c1f13882
UI: Replaced strcmp with switch case to fix GPS/menu bug
2021-02-15 22:02:09 +01:00
Federico Amedeo Izzo
ebe87b22e2
UI: Add menu edit mode. Small refactoring
2021-02-13 21:29:25 +01:00
Federico Amedeo Izzo
66af402e83
Move settings from UI to State
2021-02-13 20:32:53 +01:00
Federico Amedeo Izzo
d66b59694a
UI: Add GPS settings menu
2021-02-13 17:23:16 +01:00
Federico Amedeo Izzo
a803958c61
UI: Menu scrolling logic refactoring, add GPS Settings entry
2021-02-13 16:35:03 +01:00
Niccolò Izzo
a163bc6998
Fix a bug where only satellites with a low id were marked active
2021-02-13 13:49:03 +01:00
Niccolò Izzo
7577b4d6ae
Improved algorithm for keeping track of active satellites
2021-02-13 13:27:06 +01:00
Niccolò Izzo
1f9793d268
Complete GPS compass implementation
...
Now the GPS screen compass has a needle, which point to the current
movement direction.
2021-02-13 12:43:48 +01:00
Federico Amedeo Izzo
b3e0f964a1
State: remove unused variable channelInfoUpdated
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
Niccolò Izzo
586b524625
Add GPS compass stub
2021-02-13 11:23:13 +01:00
Niccolò Izzo
c7e8a258f3
Add active satellite field in GPS data
...
Now for each satellite in view we are keeping track if it's part of a
fix or not. This information is represented by a yellow color in the bar
graph screen.
2021-02-13 11:20:06 +01:00
Niccolò Izzo
ec06b14618
Add GPS satellites snr bar graph
2021-02-11 21:27:03 +01:00
Niccolò Izzo
b570f3b690
Add GPS altitude parsing
2021-02-11 09:43:51 +01:00
Niccolò Izzo
3ea428e8f8
Add GPS task stack size in linux
2021-02-11 09:43:24 +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
Niccolò Izzo
67195d178f
Add GPS data structures in radio state
2021-02-06 15:37:14 +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
1840c1aeb5
Moved 'rtx.h' out of 'interfaces' folder, since it now becomes a cross-platform component
2021-02-03 14:30:06 +01:00
Federico Amedeo Izzo
2728dbcce1
UI: Use separate font setting for VFO input and Time to
...
avoid inheriting asymmetric fonts from the main screen
2021-02-02 12:54:09 +01:00
Niccolò Izzo
7e0500d3a5
Improved Smeter rendering in MACRO menu
2021-02-01 23:33:49 +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
Federico Amedeo Izzo
438540290b
UI: Add MEM channel filtering per zone
2021-01-31 14:14:54 +01:00
Niccolò Izzo
d60c75d9e3
Move MACRO menu into super-state
2021-01-31 13:29:23 +01:00
Federico Amedeo Izzo
c8b4328450
UI: Change layout to show big digits frequency
2021-01-31 11:37:42 +01:00
Federico Amedeo Izzo
046d1a160c
UI: Change right and left positions in layout_t to a unique position
...
This can be done since you can now print with right aligning on a left position
2021-01-30 20:04:04 +01:00
Federico Amedeo Izzo
a612e885ab
UI: Add about screen
2021-01-30 11:57:00 +01:00
Federico Amedeo Izzo
8b72587b7b
UI: Make last_state an extern variable. Add Info screen values
2021-01-30 08:33:39 +01:00
Federico Amedeo Izzo
92af6c4804
UI: Add Info menu
2021-01-30 08:02:54 +01:00
Federico Amedeo Izzo
f083a77001
UI: Fixed (null) menu entry on targets without RTC
2021-01-29 23:07:39 +01:00
Federico Amedeo Izzo
450c965ee0
Disable contrast menu on targets without adjustable contrast
2021-01-29 22:57:24 +01:00
Federico Amedeo Izzo
1f240ba132
Move brightness from state_t to settings_t, add Contrast
2021-01-29 22:13:47 +01:00
Federico Amedeo Izzo
0c11198e8a
UI: Use one function to draw all menus
2021-01-29 19:31:17 +01:00
Federico Amedeo Izzo
2533f35309
UI: Add display settings
2021-01-29 19:30:22 +01:00
Niccolò Izzo
421ff0e448
Add RSSI and squelch graphic representation
...
Replaced bottom bar with graphic squelch and rssi representation.
2021-01-29 11:20:35 +01:00
Niccolò Izzo
364f8d4e46
Add squelch visualization and control from macro menu
2021-01-28 12:51:22 +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
bec69dc440
Graphics.h: Fix compiler warning
2021-01-24 15:57:02 +01:00
Federico Amedeo Izzo
0608176342
CPS: Read contact data from codeplug
2021-01-23 11:28:12 +01:00
Federico Amedeo Izzo
6706a796ad
CPS: Add code to read zone data from Codeplug
2021-01-22 21:16:13 +01:00
Federico Amedeo Izzo
463e5bf6fb
Graphics: Add error box printing
2021-01-21 22:01:25 +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
1a894c67df
UI: Save and restore VFO channel when switching to MEM mode
2021-01-12 19:25:47 +01:00
Niccolò Izzo
daeeee64dd
Fix battery glitch
...
Battery charge was mistakenly being computed because values used in
computation were defined in a function which was not included as a
header file.
2021-01-12 08:01:34 +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
Federico Amedeo Izzo
feb7e7ef7e
UI: Initial MEM implementation
2021-01-09 19:37:51 +01:00
Federico Amedeo Izzo
aef0eb30b1
UI: Move ui_menu.c function prototypes from ui_menu.h to ui.c as extern
2021-01-09 18:33:40 +01:00