Commit Graph

37 Commits

Author SHA1 Message Date
Silvano Seva 44d0774b39 ttwrplus: updated GPS driver 2025-08-15 20:07:32 +02:00
Silvano Seva 71c144d426 core: battery: split configurations for battery chemistry and cells number 2025-07-05 14:05:49 +02:00
Silvano Seva 03d1ae5546 Updated year in copyright headers 2025-04-04 21:15:39 +02: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 dc930f4a4b Added CONFIG_M17 macro to enable M17 support on each target 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 578c4f425b Added list of NVM areas to ttwrplus target 2023-12-03 19:00:55 +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
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 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