- made start() function return a boolean indicating the actual modulator status
- moved sending of preamble to a dedicated function
- renamed send() function to sendFrame()
Updated isNumberPressed() to make it not return anymore true if star or hash keys are pressed. Check
for character input, star and hash keys included, is now done by the input_isCharPressed function.
This separation also now prevents from entering non numeric characters during VFO frequency input.
Module17 uses an OLED display, which does not have contrast regulation. The
contrast control register, however, allows to change the brightness of the
display.
Reorganized code for pixel framebuffer in order to have it instantiated once
and for all the possible display drivers. Dropped the display_getFrameBuffer()
function.
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.
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.
Removing 18pt and 24pt fonts from graphics layer since currently are unused
and take up flash space. On MD-380, removal freed up 12'928 bytes in the
.text section.
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.
This will change the bahavior of the left and right button in callsign input:
The right button will add a new character to the input starting at `A`.
The right button will stop at the maximum allowed length.
The left button will delete the current charater.
The left button will go back one character and make it editable again.
The left button will not do anything when only one character is displayed.
Restructured the M17Demodulator class and rewritten the
demodulator logic to have a more solid lock on the
baseband stream. This fixes the long standing bug of the
demodulator causing random losses of lock even when
receiving a solid baseband stream.
Audio path from codec2 to speaker is now set up only when an incoming stream
with matching CAN and destination callsign is received. Speaker is then turned
off when the demodulator goes back in unlocked state.
GD77 and DM-1801 already have an hardware low-pass filter on the battery measurement
probe which causes the low battery protection to trigger at boot if the digital low
pass filter is also used. Given that the hardware one is good enough for our purposes,
the digital filter is now excluded.
Provides a fix for #221
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.
This will swap the first extended callsign with the source callsign
if there is extended callsign data.
This allows to always store the true source in the M17_src variable
See #188
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.
We check if the battery is below minimum and, if so, assume that the charge
is 0%. This to prevent an underflow which would result in the function
returing a 100% charge level.
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
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
T-TWR Plus appears to have sever voltage drops during normal operation,
therefore we cannot use OpenRTX's low voltage warning screen on this
radio.
TG-553
The bug was due to an uninitialized memory being used to configure the
RTX thread, that disabled Tx in a random way by randomly set the
txDisable field.
TG-553