Skip to content

Commit

Permalink
Pixhawk ADC 5 and ADC 6 (#2762)
Browse files Browse the repository at this point in the history
* [actuators] Add randomness to UAVCan telemetry

* [conf] Update Nederdrone

* [boards] Add ADC5 and ADC6 for the pixhawk 4
  • Loading branch information
fvantienen committed Aug 30, 2021
1 parent 1d3eee4 commit dcceffe
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 23 deletions.
4 changes: 4 additions & 0 deletions conf/airframes/tudelft/nederdrone4.xml
Expand Up @@ -38,6 +38,10 @@
<module name="flight_recorder"/>

<define name="ADC_CURRENT_DISABLE" value="TRUE"/>
<module name="adc_generic">
<configure name="ADC_CHANNEL_GENERIC1" value="ADC_5"/>
<configure name="ADC_CHANNEL_GENERIC2" value="ADC_6"/>
</module>

<define name="RADIO_TH_HOLD" value="RADIO_AUX1"/> <!-- Throttle hold in command laws -->
<define name="RADIO_FMODE" value="RADIO_AUX2"/> <!-- Throttle curve select -->
Expand Down
1 change: 1 addition & 0 deletions conf/modules/actuators_uavcan.xml
Expand Up @@ -17,6 +17,7 @@
</header>
<makefile target="ap">
<file name="actuators_uavcan.c" dir="subsystems/actuators"/>
<file name="pprz_random.c" dir="math"/>
</makefile>
</module>

2 changes: 2 additions & 0 deletions conf/telemetry/highspeed_rotorcraft.xml
Expand Up @@ -41,6 +41,7 @@
<message name="AHRS_BIAS" period="7.5"/>
<message name="HOVER_LOOP" period="0.3"/>
<message name="GUIDANCE_H_REF_INT" period="0.31"/>
<message name="GUIDANCE_INDI_HYBRID" period="0.4"/>
<message name="HYBRID_GUIDANCE" period="0.4"/>
<message name="ESC" period="0.5"/>
<!--message name="WINDTUNNEL_MEAS" period="0.1"/-->
Expand Down Expand Up @@ -219,6 +220,7 @@
<message name="AHRS_REF_QUAT" period="0.01"/>
<message name="GUIDANCE_H_REF_INT" period="0.02"/>
<message name="GUIDANCE_INDI_HYBRID" period="0.02"/>
<message name="HYBRID_GUIDANCE" period="0.02"/>
<message name="ESC" period="0.02"/>
<message name="STAB_ATTITUDE_INDI" period="0.002"/>
<message name="PPM" period="0.05"/>
Expand Down
8 changes: 4 additions & 4 deletions conf/userconf/tudelft/conf.xml
Expand Up @@ -288,12 +288,12 @@
<aircraft
name="Nederdrone4"
ac_id="14"
airframe="airframes/tudelft/nederdrone4_tem.xml"
airframe="airframes/tudelft/nederdrone4.xml"
radio="radios/crossfire_sbus.xml"
telemetry="telemetry/highspeed_rotorcraft.xml"
flight_plan="flight_plans/tudelft/nederdrone_cyberzoo.xml"
flight_plan="flight_plans/tudelft/nederdrone_valkenburg.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/air_data.xml modules/gps.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
settings_modules="modules/air_data.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
gui_color="blue"
release="c52a0b7e581c74b42ecc9f9d712324e3ab1fcc5e"
/>
Expand All @@ -305,7 +305,7 @@
telemetry="telemetry/highspeed_rotorcraft.xml"
flight_plan="flight_plans/tudelft/nederdrone_valkenburg.xml"
settings="settings/rotorcraft_basic.xml"
settings_modules="modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
settings_modules="modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
gui_color="blue"
release="c52a0b7e581c74b42ecc9f9d712324e3ab1fcc5e"
/>
Expand Down
4 changes: 2 additions & 2 deletions sw/airborne/boards/px4fmu/chibios/v5.0/board.cfg
Expand Up @@ -81,7 +81,7 @@ PA00 ADC1 ADC ADC1_IN0 # BAT1_V
PA01 ADC2 ADC ADC1_IN1 # BAT1_I
PA02 ADC3 ADC ADC1_IN2 # BAT2_V
PA03 ADC4 ADC ADC1_IN3 # BAT2_I
PA04 ADC1_SPARE2 ADC ADC1_IN4
PA04 ADC5 ADC ADC1_IN4 # ADC1_SPARE2
PA05 FMU_CAP1 PASSIVE
PA06 SPI1_MISO SPI AF:SPI1_MISO
PA07 HEATER PASSIVE
Expand Down Expand Up @@ -112,7 +112,7 @@ PC00 SCALED_V5 ADC ADC1_IN10
PC01 SCALED_3V3_SENSORS ADC ADC1_IN11
PC02 HW_VER_SENSE ADC ADC1_IN12
PC03 HW_REV_SENSE ADC ADC1_IN13
PC04 ADC1_SPARE1 ADC ADC1_IN14
PC04 ADC6 ADC ADC1_IN14
PC05 DRDY4_ICM20602 PASSIVE
PC06 LED2 LED # LED_GREEN
PC07 LED3 LED # LED_BLUE
Expand Down
32 changes: 16 additions & 16 deletions sw/airborne/boards/px4fmu/chibios/v5.0/board.h
Expand Up @@ -53,7 +53,7 @@
#define PA01_ADC2 1U
#define PA02_ADC3 2U
#define PA03_ADC4 3U
#define PA04_ADC1_SPARE2 4U
#define PA04_ADC5 4U
#define PA05_FMU_CAP1 5U
#define PA06_SPI1_MISO 6U
#define PA07_HEATER 7U
Expand Down Expand Up @@ -87,7 +87,7 @@
#define PC01_SCALED_3V3_SENSORS 1U
#define PC02_HW_VER_SENSE 2U
#define PC03_HW_REV_SENSE 3U
#define PC04_ADC1_SPARE1 4U
#define PC04_ADC6 4U
#define PC05_DRDY4_ICM20602 5U
#define PC06_LED2 6U
#define PC07_LED3 7U
Expand Down Expand Up @@ -243,7 +243,7 @@
#define LINE_ADC2 PAL_LINE(GPIOA, 1U)
#define LINE_ADC3 PAL_LINE(GPIOA, 2U)
#define LINE_ADC4 PAL_LINE(GPIOA, 3U)
#define LINE_ADC1_SPARE2 PAL_LINE(GPIOA, 4U)
#define LINE_ADC5 PAL_LINE(GPIOA, 4U)
#define LINE_FMU_CAP1 PAL_LINE(GPIOA, 5U)
#define LINE_SPI1_MISO PAL_LINE(GPIOA, 6U)
#define LINE_HEATER PAL_LINE(GPIOA, 7U)
Expand Down Expand Up @@ -276,7 +276,7 @@
#define LINE_SCALED_3V3_SENSORS PAL_LINE(GPIOC, 1U)
#define LINE_HW_VER_SENSE PAL_LINE(GPIOC, 2U)
#define LINE_HW_REV_SENSE PAL_LINE(GPIOC, 3U)
#define LINE_ADC1_SPARE1 PAL_LINE(GPIOC, 4U)
#define LINE_ADC6 PAL_LINE(GPIOC, 4U)
#define LINE_DRDY4_ICM20602 PAL_LINE(GPIOC, 5U)
#define LINE_LED2 PAL_LINE(GPIOC, 6U)
#define LINE_LED3 PAL_LINE(GPIOC, 7U)
Expand Down Expand Up @@ -414,7 +414,7 @@
PIN_MODE_ANALOG(PA01_ADC2) | \
PIN_MODE_ANALOG(PA02_ADC3) | \
PIN_MODE_ANALOG(PA03_ADC4) | \
PIN_MODE_ANALOG(PA04_ADC1_SPARE2) | \
PIN_MODE_ANALOG(PA04_ADC5) | \
PIN_MODE_INPUT(PA05_FMU_CAP1) | \
PIN_MODE_ALTERNATE(PA06_SPI1_MISO) | \
PIN_MODE_INPUT(PA07_HEATER) | \
Expand All @@ -431,7 +431,7 @@
PIN_OTYPE_PUSHPULL(PA01_ADC2) | \
PIN_OTYPE_PUSHPULL(PA02_ADC3) | \
PIN_OTYPE_PUSHPULL(PA03_ADC4) | \
PIN_OTYPE_PUSHPULL(PA04_ADC1_SPARE2) | \
PIN_OTYPE_PUSHPULL(PA04_ADC5) | \
PIN_OTYPE_OPENDRAIN(PA05_FMU_CAP1) | \
PIN_OTYPE_PUSHPULL(PA06_SPI1_MISO) | \
PIN_OTYPE_OPENDRAIN(PA07_HEATER) | \
Expand All @@ -448,7 +448,7 @@
PIN_OSPEED_SPEED_VERYLOW(PA01_ADC2) | \
PIN_OSPEED_SPEED_VERYLOW(PA02_ADC3) | \
PIN_OSPEED_SPEED_VERYLOW(PA03_ADC4) | \
PIN_OSPEED_SPEED_VERYLOW(PA04_ADC1_SPARE2) | \
PIN_OSPEED_SPEED_VERYLOW(PA04_ADC5) | \
PIN_OSPEED_SPEED_VERYLOW(PA05_FMU_CAP1) | \
PIN_OSPEED_SPEED_HIGH(PA06_SPI1_MISO) | \
PIN_OSPEED_SPEED_VERYLOW(PA07_HEATER) | \
Expand All @@ -465,7 +465,7 @@
PIN_PUPDR_FLOATING(PA01_ADC2) | \
PIN_PUPDR_FLOATING(PA02_ADC3) | \
PIN_PUPDR_FLOATING(PA03_ADC4) | \
PIN_PUPDR_FLOATING(PA04_ADC1_SPARE2) | \
PIN_PUPDR_FLOATING(PA04_ADC5) | \
PIN_PUPDR_PULLDOWN(PA05_FMU_CAP1) | \
PIN_PUPDR_FLOATING(PA06_SPI1_MISO) | \
PIN_PUPDR_PULLDOWN(PA07_HEATER) | \
Expand All @@ -482,7 +482,7 @@
PIN_ODR_LEVEL_LOW(PA01_ADC2) | \
PIN_ODR_LEVEL_LOW(PA02_ADC3) | \
PIN_ODR_LEVEL_LOW(PA03_ADC4) | \
PIN_ODR_LEVEL_LOW(PA04_ADC1_SPARE2) | \
PIN_ODR_LEVEL_LOW(PA04_ADC5) | \
PIN_ODR_LEVEL_HIGH(PA05_FMU_CAP1) | \
PIN_ODR_LEVEL_HIGH(PA06_SPI1_MISO) | \
PIN_ODR_LEVEL_HIGH(PA07_HEATER) | \
Expand All @@ -499,7 +499,7 @@
PIN_AFIO_AF(PA01_ADC2, 0) | \
PIN_AFIO_AF(PA02_ADC3, 0) | \
PIN_AFIO_AF(PA03_ADC4, 0) | \
PIN_AFIO_AF(PA04_ADC1_SPARE2, 0) | \
PIN_AFIO_AF(PA04_ADC5, 0) | \
PIN_AFIO_AF(PA05_FMU_CAP1, 0) | \
PIN_AFIO_AF(PA06_SPI1_MISO, 5) | \
PIN_AFIO_AF(PA07_HEATER, 0))
Expand Down Expand Up @@ -620,7 +620,7 @@
PIN_MODE_ANALOG(PC01_SCALED_3V3_SENSORS) | \
PIN_MODE_ANALOG(PC02_HW_VER_SENSE) | \
PIN_MODE_ANALOG(PC03_HW_REV_SENSE) | \
PIN_MODE_ANALOG(PC04_ADC1_SPARE1) | \
PIN_MODE_ANALOG(PC04_ADC6) | \
PIN_MODE_INPUT(PC05_DRDY4_ICM20602) | \
PIN_MODE_OUTPUT(PC06_LED2) | \
PIN_MODE_OUTPUT(PC07_LED3) | \
Expand All @@ -637,7 +637,7 @@
PIN_OTYPE_PUSHPULL(PC01_SCALED_3V3_SENSORS) | \
PIN_OTYPE_PUSHPULL(PC02_HW_VER_SENSE) | \
PIN_OTYPE_PUSHPULL(PC03_HW_REV_SENSE) | \
PIN_OTYPE_PUSHPULL(PC04_ADC1_SPARE1) | \
PIN_OTYPE_PUSHPULL(PC04_ADC6) | \
PIN_OTYPE_OPENDRAIN(PC05_DRDY4_ICM20602) | \
PIN_OTYPE_PUSHPULL(PC06_LED2) | \
PIN_OTYPE_PUSHPULL(PC07_LED3) | \
Expand All @@ -654,7 +654,7 @@
PIN_OSPEED_SPEED_VERYLOW(PC01_SCALED_3V3_SENSORS) | \
PIN_OSPEED_SPEED_VERYLOW(PC02_HW_VER_SENSE) | \
PIN_OSPEED_SPEED_VERYLOW(PC03_HW_REV_SENSE) | \
PIN_OSPEED_SPEED_VERYLOW(PC04_ADC1_SPARE1) | \
PIN_OSPEED_SPEED_VERYLOW(PC04_ADC6) | \
PIN_OSPEED_SPEED_VERYLOW(PC05_DRDY4_ICM20602) | \
PIN_OSPEED_SPEED_VERYLOW(PC06_LED2) | \
PIN_OSPEED_SPEED_VERYLOW(PC07_LED3) | \
Expand All @@ -671,7 +671,7 @@
PIN_PUPDR_FLOATING(PC01_SCALED_3V3_SENSORS) | \
PIN_PUPDR_FLOATING(PC02_HW_VER_SENSE) | \
PIN_PUPDR_FLOATING(PC03_HW_REV_SENSE) | \
PIN_PUPDR_FLOATING(PC04_ADC1_SPARE1) | \
PIN_PUPDR_FLOATING(PC04_ADC6) | \
PIN_PUPDR_PULLDOWN(PC05_DRDY4_ICM20602) | \
PIN_PUPDR_FLOATING(PC06_LED2) | \
PIN_PUPDR_FLOATING(PC07_LED3) | \
Expand All @@ -688,7 +688,7 @@
PIN_ODR_LEVEL_LOW(PC01_SCALED_3V3_SENSORS) | \
PIN_ODR_LEVEL_LOW(PC02_HW_VER_SENSE) | \
PIN_ODR_LEVEL_LOW(PC03_HW_REV_SENSE) | \
PIN_ODR_LEVEL_LOW(PC04_ADC1_SPARE1) | \
PIN_ODR_LEVEL_LOW(PC04_ADC6) | \
PIN_ODR_LEVEL_HIGH(PC05_DRDY4_ICM20602) | \
PIN_ODR_LEVEL_LOW(PC06_LED2) | \
PIN_ODR_LEVEL_LOW(PC07_LED3) | \
Expand All @@ -705,7 +705,7 @@
PIN_AFIO_AF(PC01_SCALED_3V3_SENSORS, 0) | \
PIN_AFIO_AF(PC02_HW_VER_SENSE, 0) | \
PIN_AFIO_AF(PC03_HW_REV_SENSE, 0) | \
PIN_AFIO_AF(PC04_ADC1_SPARE1, 0) | \
PIN_AFIO_AF(PC04_ADC6, 0) | \
PIN_AFIO_AF(PC05_DRDY4_ICM20602, 0) | \
PIN_AFIO_AF(PC06_LED2, 0) | \
PIN_AFIO_AF(PC07_LED3, 0))
Expand Down
18 changes: 18 additions & 0 deletions sw/airborne/boards/px4fmu/chibios/v5.0/px4fmu.h
Expand Up @@ -115,6 +115,24 @@
#endif
#endif

#if defined(LINE_ADC5)
#if USE_ADC_5
#define AD1_5_CHANNEL ADC_CHANNEL_IN4
#define ADC_5 AD1_5
#define ADC_5_GPIO_PORT PAL_PORT(LINE_ADC5)
#define ADC_5_GPIO_PIN PAL_PAD(LINE_ADC5)
#endif
#endif

#if defined(LINE_ADC6)
#if USE_ADC_6
#define AD1_6_CHANNEL ADC_CHANNEL_IN14
#define ADC_6 AD1_6
#define ADC_6_GPIO_PORT PAL_PORT(LINE_ADC6)
#define ADC_6_GPIO_PIN PAL_PAD(LINE_ADC6)
#endif
#endif

/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
#ifndef ADC_CHANNEL_VSUPPLY
#define ADC_CHANNEL_VSUPPLY ADC_1
Expand Down
10 changes: 9 additions & 1 deletion sw/airborne/subsystems/actuators/actuators_uavcan.c
Expand Up @@ -26,6 +26,7 @@

#include "actuators_uavcan.h"
#include "subsystems/electrical.h"
#include "math/pprz_random.h"

/* By default enable the usage of the current sensing in the ESC telemetry */
#ifndef UAVCAN_ACTUATORS_USE_CURRENT
Expand Down Expand Up @@ -102,7 +103,11 @@ static void actuators_uavcan_send_esc(struct transport_tx *trans, struct link_de
float energy = telem[i].energy;
pprz_msg_send_ESC(trans, dev, AC_ID, &telem[i].current, &electrical.vsupply, &power,
&rpm, &telem[i].voltage, &energy, &esc_idx);
esc_idx++;

// Randomness added for multiple transport devices
if (rand_uniform() > 0.05) {
esc_idx++;
}

if (esc_idx >= max_id) {
esc_idx = 0;
Expand Down Expand Up @@ -182,6 +187,9 @@ void actuators_uavcan_init(struct uavcan_iface_t *iface __attribute__((unused)))

// Set initialization
actuators_uavcan_initialized = true;

// Initialize Random (for telemetry)
init_random();
}

/**
Expand Down

0 comments on commit dcceffe

Please sign in to comment.