Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChibiOS support - part 6 #7851

Merged
merged 98 commits into from Apr 6, 2018
Merged

ChibiOS support - part 6 #7851

merged 98 commits into from Apr 6, 2018

Conversation

tridge
Copy link
Contributor

@tridge tridge commented Mar 6, 2018

This PR is for continuing work on the ChibiOS port.

There are quite a few key features still needed:

  • chibios build of IOMCU firmware
  • px4pro support
  • fmuv1 support
  • io firmware upload
  • set_system_clock support
  • analog stop pins
  • serial5 support on fmuv3
  • i2c and ICU filtering (i2c filtering done)
  • PWM based rangefinders (in AP_RangerFinder_PWM_PX4)
  • nsh over mavlink for GPS, radio etc
  • safety switch and safety LED on boards without IOMCU

This PR now includes BLHeli-passthru support for configuring and flashing ESCs on USB using BLHeliSuite. To enable, set SERVO_BLH_AUTO=1

@tridge tridge added the ChibiOS label Mar 6, 2018
@tridge tridge force-pushed the pr-chibios branch 2 times, most recently from e3d011a to 9873972 Compare March 7, 2018 23:54
@lucasdemarchi
Copy link
Contributor

Isn't set_system_clock() done in #7716 ? I see an ifdef for Chibios there

@magicrub
Copy link
Contributor

magicrub commented Apr 2, 2018

please see #7721 and #8017

tridge added 15 commits April 6, 2018 21:18
and add DMA channels for TIMx_UP ready for DMAR based DShot support
no longer needed as this is automatic now
this allows for some groups using dshot and some not
this allows for some groups using dshot and some not
this allows for some groups using dshot and some not
try to prevent long delays on other users of a DMA channel
we need to pulldown to prevent delays in uart sends
use DMAR burst DMA to minimise number of DMA channels needed

thanks to betaflight for the great reference implementation!
tridge added 26 commits April 6, 2018 21:19
used to gain exclusive access to a UART. This is needed for the BLHeli
MSP protocol to prevent protocol corruption due to console writes
this gains exclusive access to the UART while MSP protocol is active to
prevent protocol corruption due to other drivers writing to hal.console
this was causing transfer errors on the primary IMU of a PH2.1 when
fast sampling was enabled
this fixes an issue with blhelisuite init when min is not 1000
this fixes a SPI bandwidth issue on PH2.1 with 3 IMUs active
allow debug on any MAVLink port
also fixed handling of passthru for oneshot125
this gives best compatibility with BLHeliSuite
this adds back in the priority boost system for the main thread when
waiting for a IMU sample. This significantly improves scheduling
performance on very busy boards like a PH2.1
this separates oneshot and oneshot125 at the HAL layer, allowing the
HAL to properly handle the high timing resolution of oneshot125
(needed to use 125ns time steps, to get the full 1000 throttle steps)
handle it in the HAL backends, to allow for correct resolution
this sets up oneshot125 with the full 1000 steps of throttle
resolution, using a 8MHz clock. This matches the behaviour of modern
ESCs that measure PWM values with high accuracy
this ensures PWM output gets out as fast as possible
this maximises reliability for serial IO to ESCs, increasing flashing
reliability
this maps to the right bits for each MCU type
we need at least one build without FATFS support, as it changes the
build quite a lot
@tridge tridge merged commit 8bbb87d into ArduPilot:master Apr 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants