Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Diego Basch 2018-06-22 16:57:42 -07:00
commit d8b440948a
5 changed files with 22 additions and 13 deletions

View File

@ -107,6 +107,9 @@ Use the latest Graupner firmware for your transmitter and receiver.
Older HoTT transmitters required the EAM and GPS modules to be enabled in the telemetry menu of the transmitter. (e.g. on MX-20)
You can connect HoTT-Telemetry in two ways:
#### Old way:
Serial ports use two wires but HoTT uses a single wire so some electronics are required so that the signals don't get mixed up. The TX and RX pins of
a serial port should be connected using a diode and a single wire to the `T` port on a HoTT receiver.
@ -123,6 +126,11 @@ The diode should be arranged to allow the data signals to flow the right way
1N4148 diodes have been tested and work with the GR-24.
When using the diode disable `tlm_halfduplex`, go to CLI and type `set tlm_halfduplex = OFF`, don't forget a `save` afterwards.
#### New way:
You can use a single connection, connect HoTT RX/TX only to serial TX, leave serial RX open and make sure `tlm_halfduplex` is ON.
As noticed by Skrebber the GR-12 (and probably GR-16/24, too) are based on a PIC 24FJ64GA-002, which has 5V tolerant digital pins.
Note: The SoftSerial ports may not be 5V tolerant on your board. Verify if you require a 5v/3.3v level shifters.

View File

@ -213,16 +213,6 @@ static void validateAndFixConfig(void)
if (featureConfigured(FEATURE_RX_PARALLEL_PWM)) {
featureClear(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI);
#if defined(STM32F10X)
// rssi adc needs the same ports
featureClear(FEATURE_RSSI_ADC);
// current meter needs the same ports
if (batteryConfig()->currentMeterSource == CURRENT_METER_ADC) {
batteryConfigMutable()->currentMeterSource = CURRENT_METER_NONE;
}
#endif // STM32F10X
// software serial needs free PWM ports
featureClear(FEATURE_SOFTSERIAL);
}
#ifdef USE_SOFTSPI

View File

@ -303,6 +303,11 @@ void idleTasks()
return;
}
// Don't update any rescue flight statistics if we haven't applied a proper altitude offset yet
if (!isAltitudeOffset()) {
return;
}
gpsRescueAngle[AI_PITCH] = 0;
gpsRescueAngle[AI_ROLL] = 0;

View File

@ -44,12 +44,13 @@ static int32_t estimatedAltitude = 0; // in cm
#if defined(USE_BARO) || defined(USE_GPS)
static bool altitudeOffsetSet = false;
void calculateEstimatedAltitude(timeUs_t currentTimeUs)
{
static timeUs_t previousTimeUs = 0;
static int32_t baroAltOffset = 0;
static int32_t gpsAltOffset = 0;
static bool altitudeOffsetSet = false;
const uint32_t dTime = currentTimeUs - previousTimeUs;
if (dTime < BARO_UPDATE_FREQUENCY_40HZ) {
@ -109,8 +110,12 @@ if (sensors(SENSOR_GPS) && STATE(GPS_FIX)) {
DEBUG_SET(DEBUG_ALTITUDE, 1, baroAlt);
DEBUG_SET(DEBUG_ALTITUDE, 2, gpsAlt);
}
#endif
bool isAltitudeOffset(void)
{
return altitudeOffsetSet;
}
#endif
int32_t getEstimatedAltitude(void)
{

View File

@ -22,6 +22,7 @@
#include "common/time.h"
bool isAltitudeOffset(void);
void calculateEstimatedAltitude(timeUs_t currentTimeUs);
int32_t getEstimatedAltitude(void);
int16_t getEstimatedVario(void);