Commit Graph

547 Commits

Author SHA1 Message Date
Silvano Seva 2496d49ffc HR_C6000: implemented transmission of single-frequency tones 2025-03-10 21:53:51 +01:00
Silvano Seva 5016884782 HR_C6000: added functions for CTCSS tone encode/decode 2025-03-10 21:53:51 +01:00
Silvano Seva f65c91dc4f Created HR_C6000 class, subclass of HR_Cx000 2025-03-10 21:53:51 +01:00
marco 0ef8e6eed9 NVM: added nvm_getDesc function to Module17 driver 2025-03-02 18:12:45 +01:00
marco 40e2e5c38e NVM: fixed bound check error in nvm_getDesc() 2025-03-02 18:12:39 +01:00
Silvano Seva 1099f0f7a3 CPS: added enumeration type for CTCSS tone index 2025-03-01 19:01:10 +01:00
Silvano Seva 7993074a6a gpio-native: select driver basing on MCU type instead of build target 2025-02-11 19:01:34 +01:00
marco 8b792c4773 NVM: zephyr: fixed compilation errors 2025-01-29 09:14:53 +01:00
marco bbd104172b Audio: ttwrplus: added missing include for SA8x8 driver 2025-01-29 09:11:56 +01:00
marco 52d0c71323 MD9600: Enable Screen Backlight 2024-12-29 00:44:03 +01:00
marco 616806471e MD9600: Fix Keyboard not working after ADC changes 2024-11-24 15:01:25 +01:00
Silvano Seva e1572f8eb5 MD-9600: using STM32 ADC driver 2024-11-10 13:59:35 +01:00
Silvano Seva 81c55b5377 MD-3x0: using STM32 ADC driver 2024-11-10 12:04:10 +01:00
Silvano Seva 3ff2d31a70 UV3x0: renamed PA_EN_1 and PA_EN_2 gpios to, respectively, TX_PA_EN and RF_APC_SW 2024-11-09 13:09:56 +01:00
Silvano Seva a815588b8c Cx000 DAC: added functions for "beep" tone generation 2024-10-26 12:26:03 +02:00
Silvano Seva 847750e233 Added volume level to device state data structure.
Added filtered volume level to device state. Value is updated at 10Hz and
filtering is done by averaging the current value with the new sample.
2024-10-25 18:48:58 +02:00
Silvano Seva a310a0a2d1 Reorganized GPIO drivers 2024-10-18 19:24:22 +02:00
Silvano Seva cfed3ded6c Removed unused wrappers for AT1846S and HR_Cx000 drivers 2024-10-12 14:47:53 +02:00
Silvano Seva a84d8fe6f0 Removed unused function from radio interface API 2024-10-12 14:46:52 +02:00
Silvano Seva 2d0bf51873 MDUV3x0: using HR_C6000 for MCU to speaker audio 2024-10-12 12:24:05 +02:00
Silvano Seva 2c3f9c50c5 Driver to use HR_C6000 DAC as an audio output device. 2024-10-12 12:20:49 +02:00
Silvano Seva e51e8f675c HR_Cx000: added function to write audio samples to the DAC FIFO 2024-10-12 12:19:41 +02:00
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 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
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 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 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 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 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 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 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 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 24c4a25b2d Made "static" all the variables local to each translation unit 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
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 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
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 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 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
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 6f567cc38d ttwrplus: implemented the platform_pwrButtonStatus() function.
The platform_pwrButtonStatus() function returns false (shutdown) in
case of a long press of the power button.
2023-09-20 21:16:43 +02:00
Niccolò Izzo 7619b9473b ttwrplus: Slow down encoder input
Two ticks are needed to emit one KNOB_LEFT or KNOB_RIGHT event, thus
slowing down the rotary encoder input and making it more comfortable.

TG-553
2023-09-20 21:08:35 +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 6a17bb8483 ttwrplus: implemented radio band detection. 2023-09-20 21:08:35 +02:00