Eugene Shamaev
7caeaf4be6
AP_HAL_PX4: RCOutput support for UAVCAN
2017-04-10 22:38:12 +01:00
Eugene Shamaev
865392f034
AP_HAL_PX4: CAN bus driver
2017-04-10 22:38:12 +01:00
Andrew Tridgell
dbfdfa2261
HAL_PX4: fixed a bug in setup of alt rates for upper channels
...
this affected vehicles with high rates on upper channels, such as hexa
and octa quadplanes. The bug caused the rates set on the upper channels
to also be set on the primary channels, which means the low channels
containing aileron, elevator etc ran at 400Hz instead of 50Hz, resulting
in potential damage to the servos
2017-04-07 20:32:19 +10:00
Andrew Tridgell
a8b12dcf3c
HAL_PX4: never wait on a semaphore in interrupt context
...
this shouldn't ever happen, but better to check
2017-04-07 18:16:14 +10:00
Peter Barker
724be3878c
AP_HAL_PX4: correct output of system-id on px4-v3
2017-04-03 14:14:59 +10:00
Andrew Tridgell
02976168cc
HAL_PX4: fixed RC rate when BRD_PWM_COUNT=0
...
if BRD_PWM_COUNT is zero then alt_fd is -1, and we were not setting
servo output rate
2017-04-03 10:05:30 +09:00
Lucas De Marchi
7c246847de
AP_HAL_PX4: replace board ifdef with feature ifdef
2017-03-24 12:06:19 +11:00
Lucas De Marchi
2e4e4365d0
AP_InertialSensor: enable fast sampling for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
7c1f255258
AP_HAL_PX4: add pin to monitor battery
2017-03-24 12:06:19 +11:00
Lucas De Marchi
91dabbe418
AP_HAL_PX4: implement method to ajust periodic callback
...
Just setting up the periodic callback sampling time on initialization
may not work well for sensors that need to request for a sample with a
bus transaction, sleep and then read the new data. That's because the
function will be kept calling at a periodic rate, while the time in
which we can read the value is not really that sampling time, but rather
the time in which sensor was last read + the time spent in the function
before sending a new sample request.
Instead of creating a new type of thread to handle this case, just
implement the minimal and easy case of updating the period for this
callback, that can only be called from inside the callback function.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
2349909033
AP_BoardConfig: start mtd driver
2017-03-24 12:06:19 +11:00
Lucas De Marchi
fad583b259
AP_HAL_PX4: RCOoutput_Tap: map to [ RPMSTOPPED, RPMMAX ] range
...
When it's not armed we get _esc_pwm_min from the AP_Motors library,
which would cause motors to start spinning. Map it to start from
RPMSTOPPED so it doesn't spin when it's not armed.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
5e26940070
AP_HAL_PX4: disable safety switch for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
327de91b5c
AP_HAL_Px4: use RCOutput_Tap for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
75977cd890
AP_HAL_PX4: implement motor output for aerofc
...
This uses tap ESCs, as found on the PX4 project, translated to our
internal APIs. It doesn't have the feedback from ESCs yet.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
ce9013b8ee
AP_HAL_PX4: add RCOutput skeleton for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
87846fe049
AP_InertialSensor: use MPU6500 on aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
b4d0569339
AP_HAL_PX4: Use empty RCOutput driver for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
00c2949dfb
Add support for baro on aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
b17acfee12
Add aerofc support
...
Flight Controller board that comes on Intel Aero RTF Drone.
2017-03-24 12:06:19 +11:00
Siddharth Bharat Purohit
5029dd1bab
AP_HAL_PX4: GPIO: return correct FMU pin read even if IO not connected/detected
2017-03-22 12:15:05 +11:00
Andrew Tridgell
fc4caf51e9
HAL_PX4: fixed RC failsafe for SBUS on FMUv4
...
the FMUv4 SBUS parser sets timestamp_last_signal even if we are in
failsafe
thanks to Mark Whitehorn for finding this
2017-03-18 17:36:13 +11:00
Lucas De Marchi
f972fed70b
AP_HAL_PX4: rename method to follow AP_HAL
...
This allows to avoid the cast in the HAL, making it easier to replace
the implementation with an Empty::RCOutput while prototyping.
2017-02-26 13:38:24 +11:00
Lucas De Marchi
e1eda3066c
AP_HAL_PX4: SPIDevice: add missing ifdefs
...
These sensors may always be present on px4fmu* boards, but they are not
always present for all boards supported by the PX4Firmware.
2017-02-26 13:37:13 +11:00
Andrew Tridgell
787a2093ec
HAL_PX4: fixed motor test for brushed motors
...
this fixes zero pwm output on a subset of channels. When using
motortest and asking for a single channel, multiple channels fired due
to an incorrect optimisation
2017-02-02 09:27:48 +09:00
murata
9b1dadd93e
AP_HAL_PX4: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
iseries1
e6a643f805
AP_HAL: define pixracer LED pins
2017-01-27 11:01:17 +09:00
Andrew Tridgell
1bd9d0b7f9
HAL_PX4: cleanup whitespace
2017-01-12 17:39:37 +11:00
Andrew Tridgell
05d9455f87
Revert "HAL_PX4: Add input parameter check."
...
This reverts commit 5f41b09fde
.
This change is completely incorrect. It is quite common to do SPI
transfers with zero send bytes, and is required for many sensors and
other devices
2016-12-07 12:47:10 +11:00
murata
d619d33374
AP_HAL_PX4: UARTDriver: Delete the condition that does not hold.
2016-12-05 16:53:36 -08:00
Andrew Tridgell
e2192d5b4d
HAL_PX4: report user bus number not system bus number
2016-12-05 16:51:49 -08:00
murata
5f41b09fde
HAL_PX4: Add input parameter check.
2016-12-02 17:09:47 -08:00
Andrew Tridgell
23480a92ad
HAL_PX4: only include parts needed for build
...
allow for external USE_FLASH_STORAGE define in build
2016-12-02 09:58:36 +11:00
Andrew Tridgell
6bc0c76d54
HAL_PX4: update for new AP_FlashStorage API
...
allow flash sector erase while disarmed
2016-12-02 09:49:40 +11:00
Andrew Tridgell
a66924422f
HAL_PX4: implement optional flash backend for storage
...
this allows the last two flash sectors to be used as storage for
parameters, waypoints etc.
A change to the bootloader to not erase the last two sectors is needed
2016-12-02 09:49:39 +11:00
Andrew Tridgell
b0832e6c15
HAL_PX4: factor out storage functions
...
ready for multiple backends
2016-12-02 09:49:39 +11:00
Andrew Tridgell
d4f679f954
HAL_PX4: removed support for old storage files on microSD
2016-12-02 09:49:39 +11:00
Andrew Tridgell
4cfd63c30a
HAL_PX4: refactor storage to use bitmask class
2016-12-02 09:49:39 +11:00
Andrew Tridgell
ed8f9b444a
HAL_PX4: fixed whitespace
2016-12-02 09:49:38 +11:00
Andrew Tridgell
ce5ed66b45
HAL_PX4: auto-scale brushed output with ESC output range
2016-11-30 10:53:26 +11:00
Andrew Tridgell
b3286c3da0
HAL_PX4: support MODE_PWM_BRUSHED16KHZ
2016-11-30 10:53:25 +11:00
Andrew Tridgell
40bd3a8861
HAL_PX4: tidy up thread wait code
...
use the same method for all threads. Makes for tidier top output
2016-11-28 10:28:01 +11:00
Andrew Tridgell
f039a37971
HAL_PX4: set names on all bus threads
2016-11-28 10:18:52 +11:00
Andrew Tridgell
f04b186879
HAL_PX4: fixed bug in instantiation of I2C bus threads
...
we ended up with a thread per device instead of a thread per bus!
2016-11-28 09:53:19 +11:00
Andrew Tridgell
12e0c840e8
HAL_PX4: set thread names for main threads
2016-11-28 09:47:49 +11:00
Andrew Tridgell
37a9a78725
HAL_PX4: avoid bounce buffers for SPI when possible
2016-11-27 11:10:18 +11:00
Andrew Tridgell
f3d401abb9
HAL_PX4: fixed FMUv1 build
2016-11-27 07:45:54 +11:00
Andrew Tridgell
df60b4252a
HAL_PX4: reduced noise in PX4 console
2016-11-26 19:06:15 +11:00
Andrew Tridgell
638e89bd1d
HAL_PX4: implement set_chip_select for SPI
2016-11-25 21:24:10 +11:00
Andrew Tridgell
60801314e0
HAL_PX4: added different modes for external SPI
...
and lower bus speed to 1MHz
2016-11-25 21:24:10 +11:00
Andrew Tridgell
bcb6663187
HAL_PX4: added table of actual bus speeds for SPI
2016-11-25 20:31:43 +11:00
Andrew Tridgell
0e793e1214
HAL_PX4: lower SPI bus speed on invensense devices
...
now we are using DMA we don't need such high bus speed, and this makes
SPI reliable with a wider range of devices.
2016-11-25 18:32:19 +11:00
Andrew Tridgell
29bbee421e
HAL_PX4: enable sharing of SPI bus with PX4 with DMA
2016-11-25 17:50:18 +11:00
Andrew Tridgell
3fad5ca065
HAL_PX4: implement DMA allocation routines
2016-11-25 17:49:58 +11:00
Andrew Tridgell
7220dc15f9
HAL_PX4: adjusted bus speeds on invensense sensors
2016-11-25 17:49:57 +11:00
Andrew Tridgell
252f90ba36
HAL_PX4: drop I2C speed to 100kHz
...
reduce I2C errors on long cables for all sensors
2016-11-21 10:29:52 +11:00
Andrew Tridgell
00938f7dbb
HAL_PX4: fixed enabled channels in init
...
now this is called from AP_BoardConfig we need to not clear enabled
channels
2016-11-13 13:16:22 +11:00
Andrew Tridgell
0502eca7fc
HAL_PX4: removed unused variable
2016-11-13 13:16:22 +11:00
Andrew Tridgell
41018feb3a
HAL_PX4: split I2C transfers
...
this avoids SCL low with a stop condition, which doesn't work with
some devices
2016-11-12 14:18:14 +11:00
Andrew Tridgell
8e61b15384
HAL_PX4: added ICM20608_EXT SPI device
2016-11-11 08:08:55 +11:00
Andrew Tridgell
96e42696b7
HAL_PX4: added icm20608-am SPI device
2016-11-09 17:08:12 +11:00
Andrew Tridgell
b34ab2956b
HAL_PX4: added access to external SPI connector on FMUv2
2016-11-09 17:08:12 +11:00
Andrew Tridgell
01fadb6e90
HAL_PX4: added per-device perf counter for I2C devices
2016-11-09 17:08:11 +11:00
Andrew Tridgell
42f242a07b
HAL_PX4: fixed build on PX4-v1
2016-11-09 17:08:11 +11:00
Andrew Tridgell
20cd165476
HAL_PX4: allow for missing SPIDevice table entries
...
removed panic
2016-11-09 17:08:10 +11:00
Andrew Tridgell
922d5a74f7
HAL_PX4: print msg when I2C device is closed
2016-11-09 17:08:09 +11:00
Andrew Tridgell
e5a4dd4e56
HAL_PX4: added perf counter on SPI devices
2016-11-09 17:08:09 +11:00
Andrew Tridgell
8bca8545a2
HAL_PX4: removed unused devname field in SPIDevice
2016-11-09 17:08:08 +11:00
Andrew Tridgell
18df213069
HAL_PX4: fixed initial SPI bus speed and report new SPI instances
2016-11-09 17:08:08 +11:00
Andrew Tridgell
4dc5dc87b5
HAL_PX4: added ICM20608 to SPI table
2016-11-09 17:08:08 +11:00
Andrew Tridgell
16489d2a13
HAL_PX4: implement device IDs for I2C and SPI
2016-11-09 17:08:04 +11:00
Andrew Tridgell
e08babb7df
HAL_PX4: added new SPI devices for PH2
2016-11-09 17:08:03 +11:00
Andrew Tridgell
4bc5b715bf
HAL_PX4: define 9250 and fix SPI bus speeds
2016-11-09 17:08:01 +11:00
Andrew Tridgell
84f93439ca
HAL_PX4: delay peripheral starup
...
moved to AP_BoardConfig
2016-11-09 17:07:59 +11:00
Andrew Tridgell
e91b1318fb
HAL_PX4: reformat
2016-11-09 17:07:58 +11:00
Andrew Tridgell
1bb450c722
HAL_PX4: moved to common DeviceBus class for thread management in I2C and SPI
2016-11-09 17:07:58 +11:00
Andrew Tridgell
972f85c490
HAL_PX4: go direct to NuttX for SPI transfers
2016-11-09 17:07:58 +11:00
Andrew Tridgell
c7bef33ab7
HAL_PX4: fixed lsm303d SPI name
2016-11-09 17:07:57 +11:00
Andrew Tridgell
254b71468c
HAL_PX4: added ms5611_int SPI descriptor
2016-11-09 17:07:57 +11:00
Andrew Tridgell
0a28a3a83a
HAL_PX4: run SPI priority above boost prioriity
...
otherwise ins sample wait can end up waiting on blocked SPI
2016-11-09 17:07:56 +11:00
Andrew Tridgell
3aa36185e4
HAL_PX4: drop mpu6000 speed to 11MHz
...
match previous driver
2016-11-09 17:07:56 +11:00
Andrew Tridgell
ed6df09d12
HAL_PX4: added lsm9ds0 entries to SPI table
2016-11-09 17:07:56 +11:00
Andrew Tridgell
c2c7284a94
HAL_PX4: implement SPIDevice code for PX4
...
with thread per bus
2016-11-09 17:07:56 +11:00
Andrew Tridgell
88df9c7029
HAL_PX4: added thread-per-bus implementation for I2C
2016-11-09 17:07:55 +11:00
murata
c808ee2f49
Global: To nullptr from NULL.
...
RC_Channel: To nullptr from NULL.
AC_Fence: To nullptr from NULL.
AC_Avoidance: To nullptr from NULL.
AC_PrecLand: To nullptr from NULL.
DataFlash: To nullptr from NULL.
SITL: To nullptr from NULL.
GCS_MAVLink: To nullptr from NULL.
DataFlash: To nullptr from NULL.
AP_Compass: To nullptr from NULL.
Global: To nullptr from NULL.
Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Lucas De Marchi
a3140df24a
AP_HAL_PX4: UARTDriver: remove commented out code
...
This is not working and there's no reason to keep it around.
2016-10-27 10:35:01 -03:00
Lucas De Marchi
ec4d1eefca
AP_HAL_PX4: UARTDriver: fix trailing whitespaces
2016-10-27 10:35:01 -03:00
Lucas De Marchi
4df627693d
AP_HAL_PX4: UARTDriver: fix writting with failures
...
When the buffer wraps and we do it in 2 steps, we can't actually do the
second part if it fails or if we wrote less bytes than we intended,
otherwise we will corrupt the data being sent.
While at it, just like in the write case, explain why we are stopping.
2016-10-27 14:23:43 +11:00
Lucas De Marchi
4346f1dd83
AP_HAL_PX4: fix resetting TX buffer
...
We can't give the TX buffer 16 bytes more since next time begin() is
called it will compare the buffer size to the value the caller is trying
to set. In this case we would free and alloc the buffer again each time
begin was called.
2016-10-27 14:23:43 +11:00
Murilo Belluzzo
c7a65a026c
AP_HAL_PX4: UARTDriver: Make use of ByteBuffer class
...
This patch replaces the 'old style' ringbuffer by the ByteBuffer class.
An effort was made to keep the exchange as close as possible from a
drop-in replacement to minimize the risk of introducing bugs.
Although the exchange opens opportunities for improvement and
simplification of this class.
2016-10-27 14:23:43 +11:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell
9d6a5c6f04
HAL_PX4: make ready_to_arm state latching
...
this fixes a race condition in the handling of the px4io safety switch
2016-10-24 13:36:04 +11:00
Andrew Tridgell
2a44e6a7d7
HAL_PX4: cope with no px4io on FMUv2
...
don't open px4fmu twice
2016-10-23 17:15:32 +11:00
Andrew Tridgell
c825c7b4cc
HAL_PX4: disable FMU outputs again on re-engaging of safety switch
2016-10-21 09:10:55 +11:00
Andrew Tridgell
e78651e8f2
HAL_PX4: fixed DSM bind on Pixracer
2016-10-13 19:58:00 +11:00
Andrew Tridgell
c493ba81e4
HAL_PX4: fixed cork() for RCOutput
2016-10-13 10:00:04 +11:00
Lucas De Marchi
ae53920e5b
build: don't build examples with old build system
...
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file. Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Andrew Tridgell
aafd1512e4
HAL_PX4: limit IMU target temperature to 65
2016-09-05 12:59:50 +10:00
Lucas De Marchi
e1ab44f4a3
Global: remove get_fd() from Device API
...
This was there for compatibility with I2CDriver and SPIDriver. We don't
use them anymore so we can remove the compat method.
2016-08-29 10:27:36 -03:00
Andrew Tridgell
dddaded8d4
HAL_PX4: fixed a race condition in force_safety_on/off
...
the status update from IO may not have come through if we force safety
on and then off in quick succession, such as for plane mixer load
this forces the ioctl to be sent at least once
2016-08-16 12:53:34 +10:00