Commit Graph

717 Commits

Author SHA1 Message Date
Silvano Seva 98978b907f GDx: updated radio driver 2024-10-09 22:02:51 +02:00
Silvano Seva 8f9502cade MDUV3x0: updated radio driver 2024-10-09 22:00:10 +02:00
Silvano Seva 0c4a0435a8 MD3x0: update radio driver 2024-10-09 22:00:10 +02:00
Silvano Seva c34e4462c2 HR_Cx000: driver refactoring
- removed the Cx000_uSpiBusy() function.
- HR_Cx000 class is no more singleton.
- added constructor parameters for USPI interface.
2024-10-09 21:54:06 +02:00
Silvano Seva eda8d5d835 SKY72310: driver refactoring 2024-10-09 21:51:14 +02:00
Silvano Seva 5cc38316ea Module17: updated display drivers to new SPI subsystem 2024-10-09 21:50:51 +02:00
Silvano Seva 5e94d2fef6 GDx: updated nvm driver 2024-10-09 21:24:33 +02:00
Silvano Seva 9dc449396a MD9600: updated nvm driver 2024-10-09 21:24:33 +02:00
Silvano Seva 23e4ce0a8a MDUV3x0: updated nvm driver 2024-10-08 19:20:59 +02:00
Silvano Seva 3b877d20df MD3x0: updated nvm driver 2024-10-08 18:59:05 +02:00
Silvano Seva af5d10ec52 MDx: unified the nonvolatile memory driver
Merged the NVM drivers of the MDx devices into a single file covering MD-380,
MD-UV380, MD-9600, RT3 and RT3s
2024-10-08 18:58:01 +02:00
Silvano Seva a4db8d2242 NVM: deeply restructured W25Qx driver
Refactored the W25Qx driver in order to make it an SPI device conformant
to the nvmDevice driver interface. Removed the read/write/erase functions.
2024-10-08 18:45:29 +02:00
Silvano Seva ae0a467d2a MK22: driver for SPI peripherals 2024-10-08 18:36:56 +02:00
Silvano Seva 4c952e047b STM32: refactored SPI driver 2024-10-08 18:35:36 +02:00
Silvano Seva 04698b2279 SPI: refactored spi_bitbang driver 2024-10-08 18:34:51 +02:00
Silvano Seva 1faf65d11c SPI: driver for devices with user-provided bus transfer function 2024-10-08 18:34:16 +02:00
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
Silvano Seva 76104dd065 STM32: Gpio: fixed possible #include conficts 2024-10-02 09:37:15 +02:00
Silvano Seva 71d3a2c319 Driver for emulated EEPROM storage 2024-08-14 18:20:06 +02:00
Silvano Seva 6a1cdb5fd5 Reorganized ttwrplus nonvolatile memory devices 2024-08-14 18:20:06 +02:00
Silvano Seva 0a2dc3567d Reorganized GDx nonvolatile memory devices 2024-08-14 18:20:05 +02:00
Silvano Seva 15e7f562e3 Reorganized MDx nonvolatile memory devices 2024-08-14 18:20:05 +02:00
Silvano Seva 6aee71ec84 Reorganized Linux nonvolatile memory devices 2024-08-14 18:20:05 +02:00
Silvano Seva 031eda1d7e STM32F4xx: fixed bug in gpio driver
Fixed bug causing gpios set in alternate function mode to have the internal
pull-up resistor enabled, even if not requested.
2024-07-17 19:07:10 +02:00
Morgan Diepart 3df8657b16 fixed missing static keyword 2024-07-12 09:01:55 +02:00
Silvano Seva fe3c54153e Stm32 DAC: moved parameter for idle level from config to init function argument 2024-07-10 09:16:14 +02:00
Silvano Seva fc1fc41f14 Module17: removed old DAC initialization code in platform_init() 2024-07-03 21:47:38 +02:00
Silvano Seva cea48f8d57 Linux: added Module17 hardware info flags to allow compilation of UI emulator 2024-06-23 09:46:13 +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 e50b8ce80c Module17: keyboard: do not enable SMBus timeout while using the I2C mode
Enabling SMBus timeout in the capacitive touch sensor and not in the MCU would cause the CTS to reset and the MCU expecting the transaction to keep going, locking-up the device.
Timeout should be re-enabled when SMBus will be implemented.
2024-06-21 19:27:33 +02:00
Morgan Diepart 220d4d2ef4 Module17: added VBat measurement to ADC1 driver 2024-06-21 19:27:28 +02:00
Morgan Diepart 4f2c461bf0 Module17: added detection of baseband soft potentiometers
Detects the presence of the soft potentiometers. Display the detected potentiometers in the info menu.
2024-06-21 19:26:32 +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 30e9311a20 Module17: added support for hardware revision 1.0 2024-06-21 19:26:31 +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
Silvano Seva b98ea17aee MK22: updated gpio driver 2024-06-21 18:00:33 +02:00
Silvano Seva 8842b98a52 STM32F4xx: updated gpio driver 2024-06-21 18:00:33 +02:00
Silvano Seva 695210d689 GDx: fixed missing audio output from RTX stage 2024-06-21 18:00:18 +02:00
Silvano Seva 3940405c68 stm32_dac: refactored stm32dac_init() to have a per-instance initialization 2024-06-21 09:58:04 +02:00
Silvano Seva 81f9257888 Updated radio and display driver stubs 2024-06-17 22:56:06 +02: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
Derecho 02bcec0bd4 Fix compilation warnings during linux build 2024-02-11 18:06:15 +01:00
Silvano Seva 3c137a31de Fixed error in STM32F4 linker scripts causing radio thread lockup
Error in linker script definitions made the heap area to start at end of the
64kB CCM RAM, thus effectively allocating memory in an access-protected zone.
2024-02-07 18:37:28 +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 202a199442 Module17: added a 100ms sleep after power off to prevent the board from rebooting.
Fix #230.
2024-02-06 21:08:17 +01:00
Silvano Seva adc8b05075 Removed framebuffer from MD9600 2024-02-06 19:19:47 +01:00
Silvano Seva b416585819 Dropped framebuffer from GDx display driver 2024-02-06 19:19:47 +01:00
Silvano Seva 7fc16388e0 Removed framebuffer from Module17 display driver 2024-02-06 19:19:47 +01:00
Silvano Seva 11d7a92f4e Removed framebuffer from ttwrplus 2024-02-06 19:19:47 +01:00
Silvano Seva 5a164fe2ab Removed framebuffer from SDL display driver 2024-02-06 19:19:47 +01:00
Silvano Seva 5ff098d2fb Removed framebuffer from MDx display driver 2024-02-06 19:19:47 +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 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 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 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 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 cc27cc28a4 Using Kconfig-style #defines for battery 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 0feb8f9075 Moved GPIO mappings out of hwconfig.h to a dedicated header file 2024-02-01 11:07:20 +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
edgetriggered 2ce3f5e949 ttwrplus: Ignore revision from sa8x8-fw version
The "revisions since last tag" version field is now accurately named and no longer checked. Extra parentheses also added to reduce compiler warnings.

Fix #217
2023-12-24 10:48:41 +01:00
Silvano Seva 230e6310c7 Module17: added 100ms blink of sync led to indicate device startup
See also #216.
2023-12-24 10:48:37 +01:00
Silvano Seva ab4a964ddd Linux NVM: added implementation of nvm_getMemoryAreas() 2023-12-07 12:02:48 +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 070ed3de32 Device driver for file-based nonvolatile memory storage 2023-12-03 19:00:55 +01:00
Silvano Seva 578c4f425b Added list of NVM areas to ttwrplus target 2023-12-03 19:00:55 +01:00
Silvano Seva f94e6ce49e Added list of NVM areas to Module17 2023-12-03 19:00:55 +01:00
Silvano Seva ecd3602662 Added list of NVM areas to GDx targets 2023-12-03 19:00:55 +01:00
Silvano Seva 72c8b8246b Added list of NVM areas to MDx targets 2023-12-03 19:00:52 +01:00
Silvano Seva faffbfb930 ttwrplus: updated flash memory partitions 2023-12-03 18:34:39 +01:00
Niccolò Izzo 09587ab6c8 Added wrapper to NVM device API for Zephyr flash API.
Wrapped Zephyr flash API calls for OpenRTX interface, added
additional settings specific to T-TWR Plus.

TG-553
2023-12-03 18:34:39 +01:00
Silvano Seva d20f0e2c8d Added implementation of the standard NVM device API to AT24Cx driver. 2023-12-03 18:34:39 +01:00
Silvano Seva ab66054341 Added implementation of the standard NVM device API to W25Qx driver. 2023-12-03 18:34:39 +01:00
Silvano Seva f125bbe9be Refactored AT24Cx EEPROM driver and implemented memory write function 2023-12-03 18:34:39 +01:00
Silvano Seva be07b8f73e Refactoring of W25Qx driver 2023-12-03 18:34:39 +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 75abbaa12c Linux: using file-based driver for SOURCE_RTX input device 2023-11-12 12:35:21 +01:00
Silvano Seva 8040a012b4 Driver for file-based audio input device 2023-11-12 12:34:37 +01:00
Silvano Seva 6b34bf362d Linux: declared an instance of Module17 calibration data to allow linking with Module17 UI code.
Declared the "mod17CalData" variable inside linux platform.c to make the symbol available
to the linker when building the linux emulator with the Module17 UI.
2023-11-05 18:33:12 +01:00
Silvano Seva 7dc2ca5524 Driver for random number generator peripheral 2023-11-02 18:36:07 +01:00
Silvano Seva e362a80d45 Fixed truncation error in AT1846S setFrequency()
Fixed error in compuation of values for AT1846S frequency registers
causing the output frequency to have an effective resolution of 1kHz
instead of 62.5Hz.
2023-10-22 03:24:25 +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 95e79e871d ttwrplus: Add emergency shutdown
Enabled 10 second long press emergency shutdown PMU function to be able
to reset the radio even when OpenRTX is freezed, without the need of
pulling out and back in the battery.

TG-553
2023-10-17 09:54:13 +02:00
Niccolò Izzo 4697be5ea6 Fix squelch behaviour on T-TWR Plus
On LILYGO T-TWR Plus the squelch was being controlled by AT1846s,
resulting in the squelch bar setting being completely ignored. Now we
are introducing the support for a new command of sa8x8-fw called
AT+AUDIO that controls the muting or unmuting of the speaker power
amplifier, enabling us to:
1. Disable AT1846s embedded squelch
2. Enable OpeRTX squelch
Also fixed a bug where the sa8x8-fw version was incorrectly checked.
AT+AUDIO requires sa8x8-fw version v1.3.0.r1, bumped version check in
OpenRTX.

TG-553
2023-10-17 09:54:09 +02:00
Niccolò Izzo 04d6d01a5c
Reduce encoder sensitivity on T-TWR Plus
Reduce encoder sensitivity on T-TWR Plus by dividing the pulse counter
input by two.

TG-553
2023-10-09 09:23:45 +02:00
Silvano Seva e2ab831c27 Added 1750Hz squelch tone on MD-3x0 radios 2023-09-22 13:58:59 +02:00
marco 06515e324a Enabled 1750Hz squelch tone on GDx 2023-09-22 13:58:59 +02:00