Commit Graph

306 Commits

Author SHA1 Message Date
Silvano Seva 83f4e1584a STM32: added function to retrieve the clock frequency of APB/AHB busses 2024-10-08 18:30:31 +02:00
Silvano Seva 9ff6375c18 GDx: merged the GD-77 and DM-1801 targets into a common "GDx" one
Radioditty GD-77 and Baofeng DM-1801 radios are 99.9% equal, the only
difference being the assigment of a few gpio pins.
2024-10-02 09:37:53 +02:00
Marc Balmer 644ffb5580 Linux: removed dependency from pulse-simple 2024-09-22 18:25:39 +02:00
Silvano Seva e95b5bbb6f Linux: fixed compilation errors due to missing gpio-native.h header file 2024-06-23 09:39:43 +02:00
Morgan Diepart b5e49a3b4d Module17: reorganized display drivers, implemented dynamic selection of display driver 2024-06-21 19:26:32 +02:00
Morgan Diepart caf3225a87 Driver for CAP1206 capacitive touch controller 2024-06-21 19:26:11 +02:00
Silvano Seva 40780af16d Module17: using standard ADC driver 2024-06-21 19:26:03 +02:00
Morgan Diepart 7052dbcf8b Module17: use hardware I2C for MCP4551 2024-06-21 18:09:53 +02:00
Silvano Seva b196ce9cbc Driver for bitbanged SPI on MCU gpios 2024-06-21 18:00:33 +02:00
Silvano Seva 539d1b45f6 STM32F4xx: driver for ADC peripherals 2024-06-21 18:00:33 +02:00
Silvano Seva 8fff2e7361 Driver for STM32F4xx SPI peripherals 2024-06-21 18:00:33 +02:00
Morgan Diepart 07ee9a3369 Driver for STM32F4xx I2C peripheral 2024-06-21 18:00:33 +02:00
Marco 36ef3b310c Added function to convert minmea coordinate to fixed-point integer representation 2024-04-10 08:04:26 +02:00
Niccolò Izzo 7aa9385ec3
Fix build on T-TWR Plus
Whenever one is building T-TWR Plus without having built other targets
previously, we ensure that the codec2 sources are in place.
2024-02-09 09:06:57 +01:00
marco 31d9b909f7 Allow git commit as version
At the moment the github action actifacts have no version listed on the info screen.
We use the `--always` flag, as yhis allows `git describe` to show only the commit if nothing else is available.
2024-02-06 19:30:54 +01:00
Silvano Seva 1791e70eef Using newlib-specific sniprintf in place of snprintf
Using the newlib's printing functions without floating point support in order
to reduce the overall binary size. This allows to free up around 15kB of space
in the .text section.
2024-02-06 19:19:44 +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
Morgan Diepart 7b48d2bc28 Fix meson setup for windows
cp does not exist on windows but xcopy does.
2024-01-17 21:54:26 +01:00
marco 7a31dfba3d Configured linux target for Module17 emulation similar to a Module17 rev. 0.1e 2024-01-09 12:36:23 +01:00
marco 0e6473f95e meson.build: created three separate linux targets for different build configurations 2024-01-09 12:36:14 +01:00
Silvano Seva 0363825c1a meson.build: fix linker error on unit tests
Append the sources of the main entrypoint only when defining the build
targets for the executables. This avoids having the symbol for main()
defined twice when building the unit tests.
2023-12-24 10:48:41 +01:00
Silvano Seva 916337e3d7 Refactored meson.build 2023-12-19 21:17:20 +01:00
Silvano Seva 419d02a203 Linux NVM: updated implementation to use the new standard API 2023-12-03 19:00:55 +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 8040a012b4 Driver for file-based audio input device 2023-11-12 12:34:37 +01:00
Silvano Seva 12e2a0f18b Linux: added garbage collection of unused .text and .data sections at link time 2023-11-05 18:27:29 +01:00
Silvano Seva 7dc2ca5524 Driver for random number generator peripheral 2023-11-02 18:36:07 +01:00
Silvano Seva 1035c2b801 Updated version number in meson.build 2023-10-23 18:30:14 +02:00
Niccolò Izzo b4c8fca767
Implemented uf2 image wrapping for T-TWR Plus
T-TWR Plus target now produces images in UF2 format.
This format is compatible with bootloaders such as tinyuf2, and future
releases of the hardware will come pre-flashed with tinyuf2, thus
flashing them will not requires any other dependency than the uf2 file
itself.

TG-553
2023-10-18 11:27:43 +02:00
Niccolò Izzo e939218001
Integrate west manifest to facilitate Zephyr build
Add west manifest contributed by edgetriggered to allow automated
cloning of the correst Zephyr revision.
Now codec2 dependency is enabled also for T-TWR build, enabling to build
it from scratch without first building a Miosix target.
Enabled non-cross build to use codec2 compiled sources.
2023-10-09 09:23:45 +02:00
Niccolò Izzo 7c09f7d2b0
Add meson wrapper to build Zephyr targets
Now zephyr build process can be invoked from meson by running:

- meson setup build
- meson compile -C build openrtx_ttwrplus

TG-553
2023-09-25 14:31:15 +02:00
Federico Amedeo Izzo c5a63d8767 Add XPowersLib meson subproject 2023-09-20 21:08:35 +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 24208db609 New unified audio stream manager 2023-08-30 18:04:25 +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
Ryan Turner 29b6eb08ff chore(test): fix unit tests and explore a github workflow 2023-08-17 12:16:13 +02:00
k5jae c1a9db22b7 Made Brightness setting optional based on HW capabilities 2023-08-16 20:46:25 +02:00
Silvano Seva 4cd1fdfcf3 Moved gpio.h to peripherals 2023-07-21 19:27:14 +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 e93666a515 Implemented mic gain setting based on UI for Module 17 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 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
Silvano Seva 714a0dd331 Implemented audio path management API in linux audio driver 2022-10-28 09:47:47 +02:00
Silvano Seva 6d9ad2b947 Implementation of audio path manager 2022-10-28 09:47:47 +02:00
Silvano Seva d0d603901e Implemented storage of voice prompts data inside the binary executable image. Voice prompts data is placed in .rodata section at link time 2022-10-28 08:30:46 +02:00
Silvano Seva 5840f459fa Renamed UIStrings.h/.c to ui_strings.h/.c and refactored their content 2022-10-28 08:30:46 +02:00
Niccolò Izzo 8eca684a7d Voice prompts bugfixes:
- added missing initialization of codec2 in voice prompts code
- discarding the voice prompt header as we only support 3200 bit rate
- fixed wrong offset in pick vpQueueStringTableEntry
- fixed bug in vpInit causing voiceprompts to hang
2022-10-28 08:30:46 +02:00
vk7js fd5c5b4979 Got voice prompts code compiling. (certain blocks are commented out until we get codec2 decode figured out). 2022-10-28 08:30:46 +02:00
vk7js 901db10c87 Next round of changes to add literals to string table and voice prompt wordlists. 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 5093545c58 Removed tinyusb dependency from meson.build 2022-10-19 14:40:44 +02:00
Fred 28408fbdf8 Add Mod17 to nightly builds 2022-09-27 22:35:50 +02:00
Niccolò Izzo 6a9ce50f6b Usability improvements
Remove DMR from macro menu until we actually support it.
Remove print of M17 source callsign
Bank and channel visualization is more compact to make room for
additional data on a single screen.
Refactor mode screen to fit all data into a single screen.
2022-09-27 22:35:50 +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 d11bb903b1 Made public the M17Modulator.stop() function, added macro to enable the transmission of an M17 EOT frame (disabled by default). 2022-08-28 12:00:36 +02:00
Silvano Seva a22aceb576 Reorganized code for M17 transmission: removed M17Transmitter class, use M17FrameEncoder to assemble LSF and data frames, modified API of M17Modulator class. 2022-08-28 11:59:31 +02:00
edgetriggered a5a0de1428 UI: Build time font selection 2022-08-15 08:17:37 +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 073440ef1a Removed unnecessary build dependencies when project is being configured for linux target 2022-07-18 18:48:26 +02:00
Alain Carlucci 1d48e5e3e0 Implementation of linux input stream driver 2022-07-10 10:59:45 +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 d16eb04696 Reorganised data structures and functions to manage date and time 2022-07-02 10:28:28 +02:00
Silvano Seva 8accc3b8b6 Replaced bin2sgl linux binary with a version statically linked with the libc, added missing wrap and flash commands for DM-1801 2022-06-17 12:44:38 +02:00
Silvano Seva 8b5b6ed571 Moved OpenRTX startup code from main.c to dedicated openrtx_init() and openrtx_run() functions in a separate source file. 2022-06-02 10:01:34 +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 6caf531b85 Updated README, updated version number in meson.build 2022-06-01 10:51:26 +02:00
Silvano Seva 63f4c787c0 Moved helper functions for M17 Golay to a dedicated source file 2022-05-27 21:49:33 +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 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