Silvano Seva
c7fbd98dc9
Stub implementatio of output stream driver for GDx devices
2022-05-27 21:48:47 +02:00
Silvano Seva
b144657257
Moved CODEC2 management to a dedicated module
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
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
Silvano Seva
35c1f062c6
Implementation of M17 frame encoder
2022-05-27 21:48:46 +02:00
Silvano Seva
5fbd39959c
Implementation of M17 frame decoder
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
Silvano Seva
396f66a1f3
Implementation of M17 Viterbi decoder and associated unit test
2022-05-27 21:48:46 +02:00
Niccolò Izzo
876cb87d57
Move rrc filter into separate compilation unit
...
By moving the rrc filter into a separate compilation unit with its own
header file, we can use it both in the modulator and in the demodulator.
2022-05-27 21:48:46 +02:00
Niccolò Izzo
df5a35e843
Adapt M17 Golay Test to Unit Test Infrastructure
2022-05-27 21:48:46 +02:00
Niccolò Izzo
ce10edfb47
Fix GD77 build, add windows tools
...
GD77 build was broken because of missing binary tools, Windows had no
dedicated option for wrapping the GD77 firmware.
TG-303
2022-05-03 12:53:11 +02:00
Silvano Seva
ab3d148449
Implemented activation of external flash backup and restore via menu entries
2022-03-22 15:10:52 +01:00
Silvano Seva
e56cf52f28
Partial implementation of xmodem protocol: function for transmission of xmodem packets and small testsuite for dumping the content of external flash memory via xmodem
2022-03-11 19:28:45 +01:00
Silvano Seva
052580df3a
Implementation of CCITT CRC16
2022-03-05 11:08:31 +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
3588f351a1
Created 'core' subfolders inside openrtx/include and openrtx/src containing main OpenRTX source files
2022-03-05 10:39:35 +01:00
Silvano Seva
624dca2b97
Renamed macro DISABLE_KEEP_ON to RUNNING_TESTSUITE
2022-03-05 09:09:25 +01:00
tarxvf
9297c08b05
Add a menu for clearing settings and vfo to sane defaults ( #67 )
2022-02-26 12:42:28 +01:00
Silvano Seva
24464a66a8
Integration of tinyusb driver into OpenRTX, old driver still kept active
2022-02-26 12:29:28 +01:00
Federico Amedeo Izzo
8df0ce2f2f
Add tinyusb library as meson subproject, providing USB drivers.
2022-02-26 12:23:27 +01:00
Silvano Seva
3fb93f0a86
Updated CMSIS header files for STM32F4 to version 2.6.7
2022-01-15 14:55:59 +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
Niccolò Izzo
cc2677f8f9
Add Module17 flashing target
...
Add target openrt_mod17_flash that will invoke dfu-util to flash
Module17.
TG-398
2021-12-28 21:41:24 +01:00
Alessio Caiazza
18fb916834
Remove all tabs
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
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
Mathis Schmieder
e9a6b0261e
Fixed compilation for Module17
2021-11-27 08:09:39 +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
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
tarxvf
45228e226e
just the emulator shell broken out
2021-11-03 19:20:42 +01:00
Niccolò Izzo
efb549731c
Improve unit testing infrastructure
2021-11-03 19:04:44 +01:00
Niccolò Izzo
5040d6e900
Add unit test example
2021-11-02 19:42:16 +01:00
Silvano Seva
6fd53d1917
Updated version number in meson.build and added libcodec2-dev dependency to CI script
2021-10-08 19:28:59 +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
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
c8d62ff47f
Initial implementation of M17 operating mode handler
2021-09-03 16:44:57 +02:00
Silvano Seva
9e5c689bf3
M17 protocol data structures
2021-09-03 16:39:06 +02:00
Silvano Seva
98ab11d7a9
Added Codec2 dependency as meson subproject
2021-09-03 15:46:13 +02:00
Niccolò Izzo
110a922534
Add radio_tool as a submodule
...
Now radio tool is checked out, compiled and used as a submodule,
removing the need of installing it as an external dependency and
ensuring consistency in the tool version.
2021-08-26 08:22:30 +02:00
Silvano Seva
f3c6e92911
Driver for input audio stream on MDx
2021-08-25 18:34:41 +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
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
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
e7b48b14a5
Updated radio driver stub for linux platform
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
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
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
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
Federico Amedeo Izzo
58f4f5dcaf
Print git commit or tag inside Info menu
2021-04-11 09:56:46 +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
f9570f3636
Temporary hand-filled hwInfo for MD-9600
2021-04-10 12:16:20 +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
c804223fcd
Reorganised meson.build
2021-04-10 11:56:41 +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
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
Niccolò Izzo
f2f7f6dd51
Embedded OpenGD77 wrapping and flashing scripts
2021-03-24 12:09:49 +01:00
Federico Amedeo Izzo
fc65891a29
Renamed target `mduv380` to `mduv3x0 to be consistent with `md3x0`
2021-03-21 18:26:53 +01:00
Federico Amedeo Izzo
e83cc7f849
Remove `mduv380g` target, it is a duplicate of `mduv380`
2021-03-21 09:20:46 +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
a5120ffddc
Radio driver for MD-UV3x0 targets
2021-03-20 11:51:35 +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
a02b693843
Made the RTX thread run with the maximum priority on ARM Cortex targets
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
67c41188ab
Created 'lib' folder, containing all the external libraries
2021-02-23 14:00:34 +01:00
Niccolò Izzo
57a1d11228
Fix the weirdest bug in the history of weird bugs
2021-02-17 14:33:53 +01:00
Niccolò Izzo
9aefde7fc7
Add undefined behaviour sanitizer option
2021-02-17 09:52:36 +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
Silvano Seva
6578422c9d
Main stack size is automatically increased to 4kB when a test suite is compiled
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
9b9c521459
GPS driver for MD-3x0 targets
2021-02-04 09:57:43 +01:00
Niccolò Izzo
7192659899
Add minmea integration for GPS data decoding
...
Added a platform test to decode NMEA sentences received from GPS modules
in the MD3x0 GPS radios.
2021-02-03 22:51:44 +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
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
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
bcf2aa636c
Final cleanup and renaming of MDx display driver
2021-02-02 11:18:33 +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
41a413cfdd
RTX support for GD77 target
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
9802bc4e75
Started implementation of baseband drivers for GDx platforms
2021-01-24 18:59:12 +01:00
Federico Amedeo Izzo
571adfaabf
UI: Move ui_*.c files to ui subfolder
2021-01-10 09:04:53 +01:00
Federico Amedeo Izzo
e23b9bcea6
UI: Move main screen functions to ui_main.c
2021-01-10 09:03:07 +01:00
Federico Amedeo Izzo
e34674151b
UI: Move menu related functions to ui_menu.c
2021-01-09 10:47:18 +01:00
Silvano Seva
8010302d4d
Tone generator and GPIO for audio control on MD-UV380 platform
2021-01-04 20:53:42 +01:00
Federico Amedeo Izzo
5f5c993f9a
Remove separate MD-UV380G platform files.
...
From now on they will be shared with MD-UV380,
with only a GPS define set in meson.build.
2021-01-03 08:25:37 +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
56d56e901f
Driver for MK22FN512xx I2C0 peripheral
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
Niccolò Izzo
2cd9a989fe
Integrate OpenGD77 wrapping and flashing tools into meson
2021-01-01 19:08:55 +01:00
Federico Amedeo Izzo
8163eba67b
Add MD-9600 support, boot and USB serial working
2021-01-01 18:32:50 +01:00
Niccolò Izzo
73c7b74a3a
Add input parsing functions
...
Input parsing functions are moved into input.c/input.h, and currently
contain functions to determine if a number is pressed and to extract the
pressed number.
2020-12-30 15:46:43 +01:00
Federico Amedeo Izzo
692bd970e0
meson.build: Add commented GDx family display emulation
2020-12-27 15:43:02 +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
0f09504453
Integrated MK22FN512xx USB VCOM driver with stdio system
2020-12-22 12:16:01 +01:00
Silvano Seva
498109a672
Second cleanup pass to MK22FN512xx USB VCOM driver sources
2020-12-22 11:05:50 +01:00
Silvano Seva
18709607b3
Board support package for Radioddity DM-1801
2020-12-20 15:14:50 +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
424d337442
Added compilation of (mock) RTC driver for MK22FN512 MCU, was left behind in previous commit
2020-12-18 21:54:34 +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
Niccolò Izzo
e0d5d8278d
Add file to fix building error in FM test
2020-12-11 15:15:28 +01:00
Niccolò Izzo
41ec005680
Implement battery voltage to charge conversion
...
Voltage to charge nonlinear function is being linearly approximated in
the operating range.
2020-12-11 14:09:36 +01:00
Silvano Seva
2f05bbc6ff
Added compilation of MD3x0 rtx source files to MD390 target
2020-12-06 19:49:10 +01:00
Silvano Seva
409bd0f9d0
Fixed errors in 'meson.build'
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
Niccolò Izzo
d8c81dcabb
Include the correct graphics implementation
...
Now meson chooses the correct graphics implementation according to the
selected keyword in the defines array.
2020-12-06 17:08:58 +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
eaaaca648b
Support package for Radioddity GD77
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
Niccolò Izzo
e3285fee10
Add platform test compilation options
2020-11-27 12:49:39 +01:00
Niccolò Izzo
3310b5f730
Add memory size info linker flag
2020-11-27 12:23:59 +01:00
Federico Amedeo Izzo
f7b1423053
UI: Fix uint32_t frequency printing
2020-11-26 16:53:17 +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
50771c8bbe
Moved macro for compile-time definition of the current target from per-target 'hwconfig.h' files to meson.build
2020-11-24 17:39:19 +01:00
Silvano Seva
7a6f39ad26
Added NVM driver compilation for all the MDx family devices and reorganised the platform test printing the calibration, now merged into one single file for all the MDx devices.
2020-11-24 15:42:57 +01:00
Silvano Seva
e690a36dd1
Implemented NVM interface API also for MD-UV3x0 targets
2020-11-24 12:41:20 +01:00
Silvano Seva
8ddebef197
Dumping security registers of MD-UV380
2020-11-24 12:41:20 +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
Fred
e917738516
Add initial emulator implementation
2020-11-17 15:44:06 +01:00