Commit Graph

29623 Commits

Author SHA1 Message Date
Peter Barker 0f48557ec2 AP_HAL: fix compilation for sitl-on-hw 2022-05-24 10:35:32 +10:00
Andy Piper ccbe62589e AP_Logger: add W25Q128 variant 2022-05-24 10:32:34 +10:00
Andrew Tridgell cf4768454f AP_BoardConfig: expose BRD_SAFETYENABLE on all boards
default BRD_SAFETYENABLE to 0 on boards with no safety switch, which
gives us the same behaviour as before, but users can choose to enable
the safety

this fixes two problems:

  - CAN servos and ESCs work on boards with no safety switch
    (eg. MatekH743 with CAN)

  - during startup we could get spurious outputs before out aircraft
    type is setup
2022-05-22 14:58:12 +10:00
Andrew Tridgell c8b328c3a1 HAL_ChibiOS: always start with safety enabled
we want it enabled during early boot to prevent incorrect ESC and
servo output
2022-05-22 14:58:12 +10:00
Peter Barker c8f1d2f023 AP_MSP: allow baro backends to be individually compiled out
filtering by define name is the most useful bit
2022-05-22 12:11:45 +10:00
Peter Barker e2f5443a1e hwdef: skyviper-v2450: compile in only ICM20789 2022-05-22 12:11:45 +10:00
Peter Barker 8cd0922f01 AP_UAVCAN: allow baro backends to be individually compiled out 2022-05-22 12:11:45 +10:00
Peter Barker b863f8a331 AP_Baro: allow baro backends to be individually compiled out 2022-05-22 12:11:45 +10:00
Andrew Tridgell 11a06aa6cb SRV_Channel: re-fixed typo 2022-05-22 12:07:37 +10:00
Andrew Tridgell cc06327526 AP_UAVCAN: allow CAN output for function==0 and allow for 32 CAN servos 2022-05-22 12:07:37 +10:00
Andrew Tridgell aa9083e94c SRV_Channel: only support 32 channels on 2M flash boards
save flash on smaller boards
2022-05-22 12:07:37 +10:00
Andrew Tridgell e185e1252b SRV_Channel: added a SERVO_32_ENABLE parameter
save on param count for most users
2022-05-22 12:07:37 +10:00
Andrew Tridgell ed01d33ef8 SRV_Channel: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 4557c8ad04 AP_ToshibaCAN: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 7f6196b550 AP_RobotisServo: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell f00a227b33 AP_Motors: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell bb8ebeebe2 AP_KDECAN: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell f530761174 AP_HAL_Linux: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 113b4cec38 AP_HAL: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 7aea559bdb AP_HAL_ESP32: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 1d9abefbb1 AP_HAL_ChibiOS: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell d33734ee85 AP_ESC_Telem: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell 7ed8e8d3b6 AP_BoardConfig: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andrew Tridgell f3ce44ef2c AP_BLHeli: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Iampete1 32f8062b3e SITL: move to 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 a5928b752e SRV_Channels: set channels above 16 to GPIO by defualt 2022-05-22 12:07:37 +10:00
Iampete1 48b3549158 AP_Logger: RCOUT only log if there is a valid output channel 2022-05-22 12:07:37 +10:00
Iampete1 d1e02e4fdd SRV_Channel: add invalid mask for GPIO outputs 2022-05-22 12:07:37 +10:00
Iampete1 a36848cba5 SITL: JSON Master: only copy the first 16 servos 2022-05-22 12:07:37 +10:00
Iampete1 e03aed3aa7 AP_BLHeli: support upto 32 servo outputs 2022-05-22 12:07:37 +10:00
Iampete1 117b67c9e2 AR_MotorsUGV: convert to 32 bit motor mask 2022-05-22 12:07:37 +10:00
Iampete1 43832649ec AP_Motors: convert to 32 bit motor mask 2022-05-22 12:07:37 +10:00
Iampete1 7d3368fa33 GCS_MAVLink: send servo raw 17-32 using port 1 2022-05-22 12:07:37 +10:00
Iampete1 077401df69 SRV_Channel: add upto 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 c4df741af9 AP_SerialLED: enable 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 031115577a AP_HAL_SITL: enable 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 7fc691d8d5 AP_HAL_ChibiOS: enable 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 cabdd82e71 AP_HAL: enable 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 572ebf29da SITL: move to 32 servo outs 2022-05-22 12:07:37 +10:00
Iampete1 6921763b02 AP_Voltz: update MASK Bitmask 2022-05-22 12:07:37 +10:00
Iampete1 d1e45c93d6 AP_UAVCAN: update ESC_BM and SRV_BM Bitmask 2022-05-22 12:07:37 +10:00
Iampete1 51a631b523 AP_PiccoloCAN: update ESC_BM Bitmask 2022-05-22 12:07:37 +10:00
Iampete1 8110b9ac2d AP_Logger: add loging of servo out 15 to 32 2022-05-22 12:07:37 +10:00
Andrew Tridgell bda280bcf1 AP_Scripting: cope better with high P gains in quicktune
if we lower the D gain, then lower P and I by the same ratio before we
start on the P gain

Also added parameters to disable filter changes and control PI ratios
2022-05-21 13:20:27 +10:00
Tom Pittenger 798f985ee5 AP_InertialSensor: relax is_still() threshold for SITL.. which is pretty darn still all the time for Plane 2022-05-20 10:52:47 -07:00
Randy Mackay 2382e58f04 AP_InertialSensor: extend ENABLE_MASK param desc IMUs 4 to 7 2022-05-19 07:54:24 +10:00
Clyde McQueen 25fd69b947 AP_HAL_SITL: init ArduSub pwm_output to [1500, ...]
Signed-off-by: Clyde McQueen <clyde@mcqueen.net>
2022-05-19 07:53:52 +10:00
Andrew Tridgell 8106291bfe AP_UAVCAN: added CAN_Dx_UC_ESC_OF parameter
this allows for an offset in ESC numbering for much more efficient CAN
bandwidth usage.

For example, on a coaxial OctoQuad quadplane the ESCs are typically
setup as outputs 5 to 12. An ideal setup is to split these over 2 CAN
buses, with one CAN bus for the top layer and the one bus for the
bottom layer (allowing for VTOL flight with one bus failed).

Without this offset parameter you would be sending RawCommand messages
like this:

bus1: [ 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ]
bus2: [ 0, 0, 0, 0, 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ]

this is very wasteful of bus bandwidth, with bus1 using 3x the
bandwidth it should and bus2 using 4x the bandwidth it should (the
above will take 3 can frames for bus1, and 4 can frames for bus 2)

With this patch you can set:

CAN_D1_UC_ESC_OF = 4
CAN_D2_UC_ESC_OF = 8

and you will get this on the bus:

bus1: [ ESC1, ESC2, ESC3, ESC4 ]
bus2: [ ESC1, ESC2, ESC3, ESC4 ]

that takes just 1 can frame per send on each bus
2022-05-18 21:23:30 +10:00
Randy Mackay e0023a99bc AP_NavEKF3: replace AP_HAL::millis() with dal.millis() 2022-05-18 17:59:57 +10:00
Peter Barker 434f49e6b6 AP_Motors: correct initialised_ok state for HeliDual+Quad
initialised_ok was being set to false when frame/class was set as the
method was not overridden and thus Heli's set_frame_and_class was
setting initialised_ok to false.  When the init_output method was called
it would be unconditionally reset to true.
2022-05-18 12:25:26 +09:00