Niccolò Izzo
e11c529807
Bump Zephyr to commit a4de2eb3d1756c
...
TODO: the include fixes can be probably refactored by including the
correct zephyr directories, as include/zephyr/posix/pthread.h should
already bringing in those header files.
TG-553
2023-09-20 21:16:43 +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
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
Niccolò Izzo
8aa9b0a18f
ttwrplus: enable macro menu usage
...
Enabled macro menu implementation without keyboard.
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
Niccolò Izzo
ad1beffcf3
ttwrplus: implemented PMU interrupts handling
...
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
2dabacebd8
ttwrplus: Implement power control on SA8x8
...
Implemented power control in T-TWR Plus by using the embedded switch
(RADIO_PWR) that controls the H/L pin of the SA868.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
c276fc5a51
ttwrplus: moved all the SA8x8 code in a dedicated translation unit.
2023-09-20 21:08:35 +02:00
Niccolò Izzo
d935532fc4
ttwrplus: enable GPS
...
GPS was enabled using UART1 and Zephyr message queues.
UI is a bit crushed on the small 128x64 screen but hardware works as expected.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
eeb05bcc0f
ttwrplus: fix unstable baseband startup
...
A proper baseband reset is now issued at each startup. Now OpenRTX check
for SA868 responsiveness before proceeding with radio initialization,
eliminating unstable behaviour at boot.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
dc84908fbc
ttwrplus: enable TURBO mode on SA868S
...
Enabled AT+TURBO command on SA868 that switches the baud rate of the
serial communication from 9600 to 115200 to get a more responsive
baseband. Bumped up the required baseband firmware version to
v1.1.0.r20.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
15f5477ae0
ttwrplus: add battery voltage readout
...
Add battery voltage readout through the XPowersLib library.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
4df315473f
ttwrplus: add RGB LED support
...
Implemented WS2812C support with Zephyr driver.
Hooked up the RGB control to the existing RED and GREEN LED support.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
c60f580396
ttwrplus: add support for SA868
...
Add support for initializing SA868 and querying its firmware version,
created a new instance of the AT1846S class that leverages the SA8x8
serial connection as an i2c implementation.
Rx works! In the sense that the RSSI bar behaves as expected, still no
audio.
This commit was contributed by edgetriggered.
TG-553
2023-09-20 21:08:35 +02:00
Federico Amedeo Izzo
e05d09f0fe
ttwrplus: Set battery charging current to 500mAh to limit PMU heating and max. capacity to 80% to extend lifetime by 2.5x-3x
...
Reference article: https://batteryuniversity.com/article/bu-808-how-to-prolong-lithium-based-batteries
2023-09-20 21:08:35 +02:00
Niccolò Izzo
8e8daa78c8
ttwrplus: implement PMU support
...
Begin implementing PMU, now successfully read and write registers, need
to implement button functionality, battery voltage readout, charge
detection etc.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
df853c8527
ttwrplus: add support for keys using Zephyr bindings
...
Zephyr already provides button support based on gpios. We are mapping
Zephyr keycodes to OpenRTX therefore future targets will only need to
configure their devicetrees to have button support.
Rotary encoder readout leverages the hardware pulse counter. PTT in
this device is also bound to KEY_ESC, that matched the behaviour
observed in many commercial radios.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
9a445f3b31
Enable malloc on ESP32 BSP, specify ttwrplus battery type.
...
Mallocs now are working.
This radio sports a single cell Li-Po battery.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
0c27c9ce28
Enable Zephyr dynamic stack threads
...
Enable Zephyr dynamic stack posix threading, with stack pool of 4 and
stack size of 4096.
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo
1f1d20e120
Update T-TWR devicetree
...
Updated T-TWR devicetree to reflect changes in upstream Zephyr.
TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva
67f6d56168
Display driver for ttwrplus
2023-09-20 21:08:35 +02:00
Silvano Seva
7c2c61f948
Added Lilygo T-TWR Plus target, using stub drivers.
2023-09-20 21:08:35 +02:00
tarxvf
9d141b8f93
Fix emulator screenshot
2023-09-11 12:22:08 +02:00
Silvano Seva
dd46a48cd1
Improved conversion law in MD-3x0 and MD-UV3x0 platform_getVolumeLevel().
...
Rewritten the conversion law from ADC measurement in mV and normalized
0-255 output, adding a linearization if the pseudo-logarithmic output
curve of the potentiometer.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
2023-09-08 16:02:53 +02:00
Silvano Seva
344aa46da7
Audio devices table for MDx
2023-08-30 18:04:25 +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
009930f914
Moved get/set of current time to platform interface API
2023-07-21 07:58:29 +02:00
Silvano Seva
8019b29947
Moved the setBacklightLevel() API function from platform.h to display.h
2023-07-14 12:26:47 +02:00
Silvano Seva
163a3df607
Refactored MDx backlight driver
2023-07-14 12:26:47 +02:00
Silvano Seva
313e9615a6
Removed platform_getCalibrationData() function because of limited usefulness.
...
Given that each radio driver loads its calibration data when initializing
and that the radio driver is strongly platform-specific, there is no strong
need for an intermediate redirection layer through the platform API.
2023-07-14 12:26:39 +02:00
Silvano Seva
6d58230c8c
Module17: set threshold for detection of hardware rev 0.1e to 3V
2023-07-13 09:12:45 +02:00
Silvano Seva
933d291154
Made hwInfo struct const and statically initialized where dynamic loading is not needed.
...
Changed the hwInfo variable to static const in all the platformw where
the information are not loaded from NVM. Doing so puts the variable in
.rodata section and spares a tiny amount of RAM and FLASH.
2023-07-13 08:49:25 +02:00
Silvano Seva
beca0ea093
Module17: implemented control of power on switch, introduced in rev 0.1e
2023-06-14 21:57:33 +02:00
Silvano Seva
694181df92
Module17: implemented detection of hardware version
2023-06-14 21:50:12 +02:00
Silvano Seva
1afd868d64
Renamed "lcd_type" field of hardare info struct to "hw_version"
2023-06-14 21:30:52 +02:00
Silvano Seva
c862638fd1
Created calibration data structure for Module17
2023-05-29 22:12:40 +02:00
Wojciech Kaczmarski
a9a6217d89
Removed RTC_PRESENT macro for Module 17 since hardware does not have an RTC
2023-05-29 22:12:40 +02:00
Silvano Seva
a89a7523cb
Updated year in copyright headers
2023-02-08 16:33:02 +01:00
vk7js
853db877e9
Link beep to volume knob appropriately.
2022-10-28 08:30:47 +02:00
vk7js
94424ce908
Adding beeps to MD380 platform.c.
2022-10-28 08:30:47 +02:00
vk7js
eb89f5a55a
Now play generic beep on any key press as well as different tones when navigating the menu, when menu item wraps, and when function key latches and unlatches if voice prompt level is set to beep.
2022-10-28 08:30:47 +02:00
vk7js
a1e302b19d
Got beeps working so long as you don't have ctcss set.
...
Reduced durations to sensible values.
2022-10-28 08:30:47 +02:00
vk7js
0298aa897b
Implemented beeps on MD-UV3x0 platform driver.
2022-10-28 08:30:47 +02:00
Silvano Seva
e2137eae23
Implemented CRC of persistent data (settings and VFO state) in MDx devices
2022-08-11 17:02:04 +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
28929aab90
Fixed memory leaks at linux emulator shutdown
2022-07-02 10:47:19 +02:00
Silvano Seva
2fc89bf583
Renamed 'HAS_GPS' and 'HAS_RTC' to, respectively, 'GPS_PRESENT' and 'RTC_PRESENT'
2022-07-02 10:28:28 +02:00
Wojciech Kaczmarski
f1b1dc2034
Changed battery type for Module17 to BAT_NONE
2022-06-21 12:06:20 +02:00
Silvano Seva
6b2affe2cd
Fixed setting of RSSI level value from linux emulator shell
2022-06-09 23:11:01 +02:00
Silvano Seva
c966f82352
Fixed setting of battery voltage and transmission of PTT press signal from linux emulator shell
2022-06-09 23:02:38 +02:00
Silvano Seva
5c94d33b6b
Reorganised source code of linux emulator main engine
2022-06-09 22:48:51 +02:00
Silvano Seva
763eb0c2be
In SDL engine force display rendering when brightness texture is changed
2022-06-09 22:48:51 +02:00
Silvano Seva
980fa32e73
Reorganised source code of linux emulator SDL engine
2022-06-09 22:48:41 +02:00
Silvano Seva
316e588bc3
Updated copyright headers
2022-06-02 09:56:05 +02:00
Silvano Seva
fda0fed5e7
Moved constant specifying sample rate for M17 baseband decoding from hwconfig.h files to M17Demodulator class
2022-05-27 21:48:47 +02:00
Silvano Seva
4b8685b853
Changed gain and added an offset at tx RRC stage only for Module 17 to compensate for an hardware bug
2022-05-27 21:48:47 +02:00
Silvano Seva
94fdf44954
Biased Module 17 baseband DAC output to Vdd/2 when idle
2022-05-27 21:48:47 +02:00
Niccolò Izzo
2d8c696a09
Complete M17 demodulator implementation
...
Make quantization work also on DC offset signal
Add samples plot code
Fix bug in buffer wrap around
Fix oob memory access in M17 modulator
Update tests with DC offset signal
Switch to 48KHz sample rate for Module17 and MD380
Add DC biasing script
TG-81
2022-05-27 21:48:46 +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
Niccolò Izzo
ae26cca46f
Remove SPS
...
Now M17_SAPLES_PER_SYMBOL is computed dinamically from sample rate.
TG-81
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
5ffd6e5c43
Fixed compilation errors with MD-9600 and Module 17 targets
2022-03-24 19:09:00 +01:00
Silvano Seva
624dca2b97
Renamed macro DISABLE_KEEP_ON to RUNNING_TESTSUITE
2022-03-05 09:09:25 +01:00
Silvano Seva
a5209d6f52
Modified range for display backlight level from 0 - 255 to 0 - 100, set minimum allowed level to 5.
2022-02-26 15:45:41 +01:00
Alessio Caiazza
ce5ff047ee
Add NVM for settings and VFO on linux platform
2022-01-15 14:02:19 +01:00
Alessio Caiazza
ade9c47f71
Implement platform_setBacklightLevel for linux
2022-01-03 14:51:22 +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
Alessio Caiazza
7c978470c2
Add brightness support for the emulator
2021-12-23 14:52:25 +01:00
Silvano Seva
9dc0819b8b
Linux emulator code cleanup and refactoring
2021-12-23 14:52:25 +01:00
Alessio Caiazza
18fb916834
Remove all tabs
2021-12-23 14:52:25 +01:00
Alessio Caiazza
d4300c9c04
Fix Allman bracing
2021-12-23 14:52:25 +01:00
Alessio Caiazza
e2baf5a833
Document functions with Doxygen format
2021-12-23 14:52:25 +01:00
Alessio Caiazza
992d6be6eb
Ensure we do not render before the framebuffer copy completes
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
Alessio Caiazza
51acccaec2
Don't pump SDL events outside from the main thread
2021-12-23 14:52:25 +01:00
Silvano Seva
4eb4e43cbe
Activated GPIO pull-up resistors on MD3x0 PTT lines, as it seems that RT3 radios lack a physical pull-up resistor on those GPIOs. See #52
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
6aece95e98
Fixed license header
2021-11-27 08:23:59 +01:00
Mathis Schmieder
55c0b0d868
Module17 platform changes for revision 0.1c
2021-11-27 08:09:39 +01:00
Mathis Schmieder
4811838cb8
Module17: implemented keyboard driver, updated display, output audio stream and platform drivers
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
036f74c69e
Removed call to rtc_terminate inside MDx platform_terminate, as this freezed RTC on radio power off
2021-11-12 22:46:11 +01:00
Silvano Seva
691b388228
Implemented load/save of settings and VFO configuration for MDx devices
2021-11-09 19:28:23 +01:00
tarxvf
588265fa3d
astyle applied to try and match current OpenRTX style - just doesn't work on the header block
2021-11-03 19:20:42 +01:00
tarxvf
f451ff8aae
unused args cast to void instead of __attribute__
2021-11-03 19:20:42 +01:00
tarxvf
3ded05a6dc
update the linux emulator scriptability for the knob values
2021-11-03 19:20:42 +01:00
tarxvf
45228e226e
just the emulator shell broken out
2021-11-03 19:20:42 +01:00
Silvano Seva
5113a39f2a
Enabled M17 support also in MD-UV3x0 radio driver
2021-09-21 12:02:32 +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
9650ff5925
Removed macro disabling by default the USB virtual COM port, which is now permanently enabled.
2021-08-26 10:22: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
Federico Amedeo Izzo
c69c2be478
Fixed external microphone sticky PTT button on MD-UV380
2021-08-14 10:02:34 +02:00
Federico Amedeo Izzo
07e1f28f79
Fix sticky PTT button on MD-UV380 by removing double initialization of PTT_SW gpio.
2021-08-11 20:53:54 +02:00
Silvano Seva
b80ddc1145
Implemented reading of PTT status from external microphone on MD-3x0 and MD-UV3x0
2021-07-10 21:52:15 +02:00
Federico Amedeo Izzo
a8b838bd47
On Linux target emulate PTT button with P key
2021-07-08 20:24:27 +02:00
Federico Amedeo Izzo
1f74c0abb7
Add `VCOM_ENABLED` define to disable VCOM that is currently broken
2021-06-06 10:13:51 +02:00