Andrew Tridgell
8c06e6cddc
Revert "AP_HAL_PX4: embed PX4_I2C object into I2CDevice"
...
This reverts commit 54fd3702c3
.
These commits broke startup on PX4
2016-05-11 12:18:45 +10:00
Lucas De Marchi
54fd3702c3
AP_HAL_PX4: embed PX4_I2C object into I2CDevice
...
Otherwise we would destroy PX4_I2C object after returning from
I2CDeviceManager::get_device(). Since this implementation is very
simple, just make PX4_I2C as an internal class and embed it into the
I2CDevice object.
2016-05-10 15:39:24 -03:00
Luiz Ywata
f767918e0e
AP_HAL_PX4: use new I2CDevice interface
2016-05-10 15:12:30 -03:00
Andrew Tridgell
0af322e90d
HAL_PX4: added comment on oneshot
2016-04-22 13:50:05 +10:00
Andrew Tridgell
5ce7ae71a7
HAL_PX4: fixed enabling oneshot on a subset of motors
2016-04-22 13:24:24 +10:00
Andrew Tridgell
bcd0d48ced
HAL_PX4: fixed non-contiguous motor outputs
...
this fixes tricopter with chan3 never set
2016-04-22 11:51:08 +10:00
Andrew Tridgell
28aa4c40cc
HAL_PX4: fixed order of wifi and frsky on FMUv4
...
thanks to OXINARF for noticing!
2016-04-20 10:23:11 +10:00
Andrew Tridgell
4a35f8e9fc
HAL_PX4: fixed comments for FMUv4 uarts
2016-04-20 10:08:48 +10:00
Andrew Tridgell
18ccaf7e2b
HAL_PX4: added uartF
2016-04-20 09:39:49 +10:00
Andrew Tridgell
a731caa4ab
HLA_PX4: prevent timer disturbance in oneshot mode
2016-04-16 18:52:31 +10:00
Andrew Tridgell
d9d6f87195
HAL_PX4: fixed bug in pwm send code
...
many thanks to Oxinarf for spotting this!
2016-04-16 08:32:04 +10:00
Andrew Tridgell
c9dfccfb26
HAL_PX4: improved oneshot support
...
this now supports oneshot properly on both IO and FMU
2016-04-16 07:30:44 +10:00
Andrew Tridgell
6f284d673a
HAL_PX4: enable oneshot support on px4io
2016-04-16 07:30:43 +10:00
Peter Barker
daa210729c
AP_HAL_PX4: correct systemid output for PX4v4
2016-04-14 13:40:27 -07:00
Andrew Tridgell
8695668da3
HAL_PX4: enable wifi port on FMUv4
2016-04-14 08:05:06 +10:00
Andrew Tridgell
5922e67785
HAL_PX4: allow sbus output on channels beyond BRD_PWM_COUNT
2016-04-14 08:05:06 +10:00
Andrew Tridgell
759b0d6629
HAL_PX4: only support oneshot on FMU outputs for now
...
oneshot on PX4IO gives some very weird results. I think it is doable,
but will take a bit more work
2016-04-14 08:05:06 +10:00
Andrew Tridgell
934b4dd475
HAL_PX4: support OneShot on PX4
...
this greatly lowers output latency
2016-04-14 08:05:05 +10:00
Andrew Tridgell
1d5deed72a
HAL_PX4: fixed build for new px4 param functions
2016-04-14 08:05:04 +10:00
Lucas De Marchi
28f67f0947
AP_HAL_PX4: replace header guard with pragma once
2016-03-16 18:40:41 +11:00
Andrew Tridgell
2a6e64e358
HAL_PX4: send all channels to px4io
...
this allows for 16 channel SBUS out
2016-03-13 10:03:56 +11:00
Jonathan Challinger
4bf3ec0e91
AP_HAL_PX4: implement RCOutput::read_last_sent
2016-03-10 13:56:27 -08:00
Andrew Tridgell
7fede90df3
HAL_PX4: work around a bus locking issue on Pixracer
...
Pixracer has FRAM on the same bus as the ms5611 and the FRAM ramtron
driver does not use the same locking mechanism as other px4 SPI
drivers. We need to disable interrupts during FRAM transfers to ensure
we don't get FRAM corruption
2016-02-23 16:34:06 +11:00
Lucas De Marchi
8de329fc81
AP_HAL_PX4: use empty I2CDevice
2016-02-16 19:49:09 -02:00
Lucas De Marchi
f39a6745d1
Global: remove unused _timer_pending from scheduler
2016-02-12 23:42:34 -02:00
Lucas De Marchi
9aa49cda93
Global: remove system_initializing() from scheduler
...
This is not used anymore.
2016-02-12 23:42:34 -02:00
Gustavo Jose de Sousa
c2e3f05dbf
waf: ardupilotwaf: prefix build context methods with ap_
...
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
3d22490397
waf: examples: use methods from bld instead of ardupilotwaf
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
d281067bcc
waf: make example binaries be placed in 'examples' dir
...
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Andrew Tridgell
519afc7a06
HAL_PX4: debug code for FRAM corruption
2016-01-06 19:16:16 +11:00
Andrew Tridgell
526fb65dd1
HAL_PX4: fixed setting of rcout frequency on alt channels
2016-01-05 09:47:52 +11:00
Jonathan Challinger
f376510524
AP_HAL_PX4: fix example build
2015-12-29 10:46:35 -08:00
Lucas De Marchi
a096703b06
Global: don't link with AP_Progmem
...
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Andrew Tridgell
02bee8810d
HAL_PX4: added Semaphore support
2015-12-20 17:55:39 +11:00
Julien BERAUD
c0f65ff6e1
AP_HAL_PX4: add empty optical flow
...
No onboard optical flow on PX4
2015-12-18 17:56:04 +11:00
Lucas De Marchi
503533c6fe
AP_HAL_PX4: rename AP_HAL_Empty instances
2015-12-08 11:12:14 +11:00
Andrew Tridgell
78e9b0a4e3
HAL_PX4: check for servo counts changing after boot
...
this copes with changes to BRD_PWM_COUNT
2015-12-06 14:19:28 +11:00
Lucas De Marchi
fe5d6f2d49
AP_HAL_PX4: remove unused AP_ADC_AnalogSource
2015-12-03 13:32:43 +11:00
Caio Marcelo de Oliveira Filho
6e7b73610d
waf: add waf support
2015-12-03 07:54:30 +11:00
Lucas De Marchi
6d7678d2a3
AP_HAL_PX4: fix passing callback to member function
...
This is the same approach as done for AP_HAL_Linux in e3d78b8
("AP_HAL_Linux:
fix passing callback to member function"). It fixes the following warnings:
ardupilot/libraries/AP_HAL_PX4/Scheduler.cpp: In member function 'virtual void PX4::PX4Scheduler::init(void*)':
ardupilot/libraries/AP_HAL_PX4/Scheduler.cpp:55:95: warning: converting from 'void* (PX4::PX4Scheduler::*)()' to 'pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
pthread_create(&_timer_thread_ctx, &thread_attr, (pthread_startroutine_t)&PX4::PX4Scheduler::_timer_thread, this);
^
ardupilot/libraries/AP_HAL_PX4/Scheduler.cpp:65:94: warning: converting from 'void* (PX4::PX4Scheduler::*)()' to 'pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
pthread_create(&_uart_thread_ctx, &thread_attr, (pthread_startroutine_t)&PX4::PX4Scheduler::_uart_thread, this);
^
ardupilot/libraries/AP_HAL_PX4/Scheduler.cpp:75:92: warning: converting from 'void* (PX4::PX4Scheduler::*)()' to 'pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
pthread_create(&_io_thread_ctx, &thread_attr, (pthread_startroutine_t)&PX4::PX4Scheduler::_io_thread, this);
^
ardupilot/libraries/AP_HAL_PX4/Scheduler.cpp:85:100: warning: converting from 'void* (PX4::PX4Scheduler::*)()' to 'pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
pthread_create(&_storage_thread_ctx, &thread_attr, (pthread_startroutine_t)&PX4::PX4Scheduler::_storage_thread, this);
ardupilot/libraries/AP_HAL_PX4/NSHShellStream.cpp: In member function 'void PX4::NSHShellStream::start_shell()':
ardupilot/libraries/AP_HAL_PX4/NSHShellStream.cpp:83:99: warning: converting from 'void (PX4::NSHShellStream::*)()' to 'pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
pthread_create(&shell_thread_ctx, &thread_attr, (pthread_startroutine_t)&PX4::NSHShellStream::shell_thread, this);
^
2015-12-03 07:51:08 +11:00
Lucas De Marchi
0c3733601b
AP_HAL_PX4: use init() method without arguments
...
Override the init() method from parent class that doesn't have a
parameter since it's not used here.
2015-12-02 14:49:11 -02:00
Andrew Tridgell
520b9de48a
HAL_PX4: expose do_transfer() in API
2015-12-01 07:18:25 +11:00
Andrew Tridgell
335e621932
HAL_PX4: cope with PX4 header changes
2015-11-27 18:54:31 +11:00
Andrew Tridgell
155e82c1b3
HAL_PX4: fixed PWM output for FMUv4
2015-11-27 18:54:31 +11:00
Andrew Tridgell
9835043dd5
HAL_PX4: support FMUv4
2015-11-27 18:54:30 +11:00
Caio Marcelo de Oliveira Filho
c43474fbf4
AP_HAL_PX4: Remove unused extern declaration for HALs
2015-11-20 16:32:32 +09:00
Caio Marcelo de Oliveira Filho
1de0e0a5a6
AP_HAL_PX4: remove unused functions
2015-11-20 12:36:34 +09:00
Caio Marcelo de Oliveira Filho
a76c9e0051
AP_HAL_PX4: use millis/micros/panic functions
2015-11-20 12:31:13 +09:00
Caio Marcelo de Oliveira Filho
8db8b9b355
AP_HAL_PX4: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
2015-11-20 12:25:40 +09:00
Caio Marcelo de Oliveira Filho
efbc7648b1
AP_HAL: create AP_HAL namespace and use for some HAL functionality
...
For certain basic functionality, there aren't much benefit to be able to
vary the implementation easily at runtime. So instead of using virtual
functions, use regular functions that are "resolved" at link time. The
implementation of such functions is provided per board/platform.
Examples of functions that fit this include: getting the current
time (since boot), panic'ing, getting system information, rebooting.
These functions are less likely to benefit from the indirection provided
by virtual interfaces. For more complex hardware access APIs the
indirection makes more sense and ease the testing (when we have it!).
The idea is that instead of calling
hal.scheduler->panic("on the streets of london");
now use
AP_HAL::panic("on the streets of london");
A less important side-effect is that call-site code gets
smaller. Currently the compiler needs to get the hal, get the scheduler
pointer, get the right function pointer in the vtable for that
scheduler. And the call must include an extra parameter ("this"). Now it
will be just a function call, with the address resolved at link time.
This patch introduces the first functions that will be in the namespace,
further patches will implementations for each board and then switch the
call-sites. The extra init() function allow any initial setup needed for
the functions to work.
2015-11-20 12:25:24 +09:00
Andrew Tridgell
8f4ce7f20b
build: removed all nocore.inoflag files
...
these were APM2 specific
2015-11-16 08:05:17 +11:00
Andrew Tridgell
ac1c0bba15
HAL_PX4: make available_memory() uint32_t
2015-11-05 16:09:00 +11:00
Lucas De Marchi
1b07dabeb7
Replace prog_char and prog_char_t with char
...
prog_char and prog_char_t are now the same as char on supported
platforms. So, just change all places that use them and prefer char
instead.
AVR-specific places were not changed.
2015-10-30 14:35:30 +09:00
Lucas De Marchi
6f4904189b
Replace use of println_P() with println()
2015-10-30 14:35:22 +09:00
Lucas De Marchi
2c38e31c93
Remove use of PSTR
...
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.
This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.
AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00
Lucas De Marchi
9eaf7c5660
AP_HAL: add format attribute to panic()
2015-10-24 14:26:36 +11:00
Lucas De Marchi
f791767fb2
AP_HAL_PX4: Scheduler: implement variadic version of panic()
2015-10-24 14:26:36 +11:00
Lucas De Marchi
ad61a93c14
AP_HAL: turn panic() into a variadic method
...
Change the declaration on all HAL implementations so panic() in future
may implement a printf-like interface.
2015-10-24 14:26:35 +11:00
Caio Marcelo de Oliveira Filho
5781164624
AP_HAL_PX4: remove unnecessary includes from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
19b4ca60c4
AP_HAL: provide AP_HAL_MAIN()
...
Move the macros to a single place and reduce the variations not based on
board, but based on
- The name of the entry-point function, specified by AP_MAIN;
- Whether it contains argc/argv arguments or not.
The goal here is that programs (vehicles and examples) don't need to
include all possible boards to define a main function. Further patches
will change the programs.
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
cb61bdd8d1
AP_HAL_PX4: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
0dab23c4df
AP_HAL_PX4: implement HAL::run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
ec52df991c
build: compile only the HAL files needed by the board
...
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
2e464a53c2
AP_HAL: make code not depend on concrete HAL implementations
...
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.
A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.
The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.
Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.
The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
Andrew Tridgell
8dbb51c64e
HAL_PX4: implement AP_HAL::Util perf calls for PX4
2015-10-20 18:09:57 +11:00
Lucas De Marchi
ce674f6926
AP_HAL_PX4: remove unused write method
2015-09-29 11:53:49 +09:00
Andrew Tridgell
cbd43ee6ea
HAL_PX4: added hal.i2c support on PX4 boards
...
this allows I2C based devices to use in-tree drivers
2015-09-08 16:46:52 +10:00
Tom Pittenger
072d35b9cc
AP_HAL_PX4: remove unused var
2015-08-25 13:51:21 +09:00
Brad Bosch
6e9756ff79
HAL_PX4: Rework support for FLOW_CONTROL_AUTO.
...
Now instead of requiring the buffer to fill completely before we can
detect it is not draining, we use a time based mechanism to detect
when none of the first few bytes are transmitted after sitting in our
buffer a half second or more after flow control is enabled. This
huristic is reliable only for the first several chracters because we
believe that the radio must still have plenty of room in it's own
buffers at that time even if it is not able to transmit them to the
other radio yet. Note that the original algorithm made the same
assumption.
The new algorithm is especially helpful for cases where only keepalive
messages are transmitted before other packets can be requested by the
GCS. In this situation, the original code required almost 2 minutes
to disable flow control and allow communication with the GCS.
2015-08-19 15:21:10 +10:00
Lucas De Marchi
83cfaf4a59
AP_HAL_PX4: standardize inclusion of libaries headers
...
Do the missing header changes due to changing the code before the pr
getting accepted.
2015-08-18 17:12:51 +10:00
Andrew Tridgell
e73ac418df
HAL_PX4: prevent error on GPIO line on change of pinMode
...
thanks to Michael for noticing this
2015-08-17 12:02:03 +10:00
Gustavo Jose de Sousa
08333f1ffe
AP_HAL_PX4: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:28:43 +10:00
Andrew Tridgell
1b61f6f636
HAL_PX4: fixed USB connected on AUAV-X2
...
this is the 2nd attempt at a fix for the usb_connected status on
AUAV-X2
2015-08-11 11:42:02 +10:00
Lucas De Marchi
d4d56aef1a
AP_HAL_PX4: use ARRAY_SIZE macro
2015-07-21 14:25:01 +09:00
Julien BERAUD
7275e33e79
AP_HAL: add the possibility to have more than 1 i2c
...
Bebop drone has 3 i2c
2015-07-10 14:23:17 +10:00
Andrew Tridgell
f4a9f9876f
HAL_PX4: make usb_connected() more robust
...
thanks to a suggestion from Phillip Kocmoud, this should fix issues
with the XUAV-X2
2015-07-08 11:19:07 +10:00
Andrew Tridgell
d909f11ba3
HAL_PX4: added implementation of NSH shell stream
2015-06-17 20:30:09 +10:00
Andrew Tridgell
dea36c1ae9
HAL_PX4: fixed build on non-PX4 systems
2015-06-11 15:17:02 +10:00
Andrew Tridgell
88655b48e1
HAL_PX4: added px4_param stub functions
...
this replaces the PX4 parameter system with stub functions that fail
all parameter find calls
2015-06-11 13:31:41 +10:00
Eugene Shamaev
40a5aa497a
HAL_PX4: added rc_bind for DSM bind
2015-06-10 17:19:09 +10:00
Andrew Tridgell
d6af9fd0ee
HAL_PX4: prevent uavcan motor spin up while booting
2015-06-09 19:45:01 +10:00
Andrew Tridgell
6a33aeef67
HAL_PX4: cope with multi-instance actuator_outputs uORB
...
we need to subscribe to all of them
2015-06-09 19:45:00 +10:00
Andrew Tridgell
333778bac1
HAL_PX4: updates for upstream merge
2015-06-09 19:44:20 +10:00
Andrew Tridgell
c44ab01be8
AP_HAL: use noreturn attribute on panic
...
should reduce coverity warnings
2015-06-08 21:09:08 +10:00
Andrew Tridgell
ca8482b4d6
AP_HAL_PX4: convert example from .pde to .cpp
2015-06-01 17:07:04 +10:00
Andrew Tridgell
43fb1202f2
HAL_PX4: fixed functor comparison with NULL
2015-05-26 13:54:38 +10:00
Tom Pittenger
98c5137107
AP_HAL_PX4: compiler warnings: float to doubles
2015-05-05 13:26:56 +10:00
Andrew Tridgell
40e3b422b5
HAL_SITL: rename HAL_AVR_SITL to HAL_SITL
...
it is nothing to do with the original AVR emulation now
2015-05-05 09:45:54 +10:00
Randy Mackay
187dd0dccd
HAL_PX4: fix example sketch
2015-05-01 16:44:10 +09:00
Andrew Tridgell
020d9ea78a
HAL_PX4: only consider power to have changed when armed
...
this prevents false positives with multi-battery setups
2015-04-28 11:05:29 +10:00
Tom Pittenger
3b3752468d
HAL_PX4: fix compile warnings re unused variables
2015-04-24 14:18:24 +09:00
Tom Pittenger
179c72bfa9
HAL_PX4: fix compile warning re member init order
2015-04-24 14:14:38 +09:00
Tom Pittenger
7e18480cd2
HAL_PX4: fix compile warnings re float constants
2015-04-24 12:49:18 +09:00
Andrew Tridgell
7cd7ff89fd
HAL_PX4: recover 12k of ram from USB buffers
...
faster NuttX means we don't need such larger buffers
2015-03-27 15:08:52 -07:00
Andrew Tridgell
086f878bdc
HAL_PX4: split IO thread into separate IO and storage threads
...
this prevents a blocked microSD card from blocking IO to the FRAM,
causing parameter changes not to be sticky
2015-03-04 20:18:17 +11:00
Andrew Tridgell
18131eae13
HAL_PX4: added delay_microseconds_boost()
...
implemented using hrt callback with sem_post wrapper
2015-02-16 12:19:13 +11:00
Andrew Tridgell
619196b6b3
HAL_PX4: fixes for new PX4 device paths
2015-02-14 12:25:44 +11:00
Andrew Tridgell
001643d5a3
HAL_PX4: always use the hrt semaphore based delay
...
the up_udelay() could cause too much timing jitter
2015-02-14 12:25:43 +11:00
Andrew Tridgell
7f0060b881
HAL_PX4: reduce the amount of time between loop() calls
...
500usec is too long for 400Hz copter
2015-02-14 12:25:43 +11:00
Andrew Tridgell
ebacb2b496
HAL_PX4: call parent Util constructor
2015-02-11 20:57:28 +11:00
Jonathan Challinger
e908fcafb1
AP_HAL_PX4: attempt to initialize USB while soft-disarmed
2015-02-11 20:57:27 +11:00
Andrew Tridgell
f548d48fdc
HAL_PX4: implement updated new_input() semantics
2015-02-09 10:39:12 +11:00
Andrew Tridgell
f2a919c55e
AP_HAL_PX4: moved size of main thread stack to Scheduler.h
...
make it more obvious
2015-02-07 08:06:53 +11:00
Randy Mackay
12bd5cd6b1
AP_HAL_PX4: fix example sketch
2015-01-28 21:00:30 +09:00
Andrew Tridgell
464714f1ab
HAL_PX4: fixed build warning
2015-01-09 11:37:46 +11:00
Andrew Tridgell
0c73dc2440
HAL_PX4: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Andrew Tridgell
4a91546ced
HAL_PX4: FRAM does not support fsync
...
the fsync just wastes time reopening /fs/mtd
2014-12-09 14:35:36 +11:00
Andrew Tridgell
4132b53541
HAL_PX4: publish actuator values for UAVCAN ESCs
...
this publishes scaled actuator values so that the uavcan module can
drive ESCs
2014-11-26 11:14:44 +11:00
Matthias Badaire
1d3a49e466
AP_HAL_PX4 : make UARTDriver capable to be called from different threads.
...
The modification allows the read and write functions to be called by any thread but the calling thread must be the last one that called the begin() function.
2014-11-14 13:51:16 +11:00
Andrew Tridgell
154bf51279
HAL_PX4: minor tidy up of if statement
2014-11-14 13:51:16 +11:00
Holger Steinhaus
9e9c62d245
HAL_PX4: work-around for periodic enable_ch() calls
2014-11-14 13:51:16 +11:00
Holger Steinhaus
e5549c90a1
HAL_PX4: do not overwrite disabled channels with zeros
...
Fixes #1321
2014-11-14 13:51:16 +11:00
Andrew Tridgell
e22c8b27a9
HAL_PX4: if there are no enabled channels don't send to PX4IO
...
this makes it possible to disable PWM output to IO to test override
2014-11-07 10:39:07 +11:00
Andrew Tridgell
7e3b8a30f5
HAL_PX4: use px4io generated values for servo output readback
...
this makes it easier to observe the behaviour of IO failsafe
2014-11-05 21:54:53 +11:00
Andrew Tridgell
10b0ca7ea8
HAL_PX4: reduce the number of times we split up UART reads and writes
2014-10-09 12:29:25 +11:00
Randy Mackay
ffcd259b4e
HAL_PX4: implement force_safety_on
2014-09-18 09:58:46 +09:00
Andrew Tridgell
74525cad89
HAL_PX4: fixed dirty_mask calculation in FRAM storage
...
this could lead to a number of bytes on 512 byte boundaries not being
written when changed in ram, so they would revert on next boot
2014-09-11 18:58:54 +10:00
Andrew Tridgell
48247b6adc
HAL_PX4: minimise usage of hrt_absolute_time()
2014-08-20 09:10:24 +10:00
Andrew Tridgell
1241da466b
HAL_PX4: added millis64() and micros64()
2014-08-20 08:01:06 +10:00
Andrew Tridgell
0a20d0db60
HAL_PX4: prevent read past end of buffer
2014-08-19 10:08:17 +10:00
Andrew Tridgell
41f7ad42d4
HAL_PX4: fixed example build
2014-08-13 21:48:35 +10:00
Andrew Tridgell
c864f3eed5
HAL_PX4: enable full storage size on PX4
2014-08-13 18:46:45 +10:00
Andrew Tridgell
d40d0f6aec
AP_HAL: removed old storage type read/write functions
...
not needed any more
2014-08-13 18:46:44 +10:00
Andrew Tridgell
d1a75874a1
HAL_PX4: don't report power status change if in first 5 seconds
2014-08-09 22:50:14 +10:00
Andrew Tridgell
02dec5634f
AP_HAL: fixed example builds
2014-07-25 17:52:01 +10:00
Andrew Tridgell
b2bc098aee
HAL_PX4: avoid some float conversion warnings
2014-07-08 20:27:19 +10:00
Andrew Tridgell
849c4905fb
HAL_PX4: print overtime message on stuck task
...
this should make it easier to narrow down stuck task bugs
2014-07-03 09:11:24 +10:00
Andrew Tridgell
fa4eb5475a
HAL_PX4: implement analog input stop pins
...
this allows multiple sonars to cooperate without interference
2014-06-02 08:35:41 +10:00
Andrew Tridgell
37c50d9587
HAL_PX4: fixed use of FMU servo pins as digital inputs
...
these pins can be PWM output or digital input or digital output
2014-05-25 22:03:44 +10:00
Andrew Tridgell
a7d6a26bec
HAL_PX4: fixed auto-flow control
...
the 6 bytes written to break the radio out of bootloader broke
auto flowcontrol detection
2014-05-19 22:02:39 +10:00
Andrew Tridgell
320834a5e7
HAL_PX4: read from FRAM in 128 byte chunks (2nd try)
...
this time without the amazingly silly bug
2014-05-02 22:12:45 +10:00
Andrew Tridgell
db6b96caa0
Revert "HAL_PX4: read from FRAM in 128 byte chunks"
...
This reverts commit a92366c455
.
This commit may be associated with FRAM corruption on Pixhawk. Revert
until we understand why
2014-05-02 21:52:26 +10:00
Andrew Tridgell
a92366c455
HAL_PX4: read from FRAM in 128 byte chunks
...
this fixes FRAM read on Roberts Pixhawk. We don't know why yet.
2014-05-02 12:24:54 +10:00
Andrew Tridgell
5cd145a307
AP_HAL: added set_failsafe_pwm() API
...
this allows the PWM values for FMU firmware failure to be setup
2014-04-21 08:36:52 +10:00
Andrew Tridgell
6eee2421cc
AP_HAL: removed RCInput valid_channels() and added new_input() and num_channels()
...
the valid_channels() method was inconsistently implemented between
boards, and served two quite different purposes. It is clearer as two
functions
2014-03-25 14:39:41 +11:00
Andrew Tridgell
2a9a89e020
HAL_PX4: fixes for merged upstream PX4Firmware
2014-03-25 10:30:00 +11:00
Andrew Tridgell
d36989f6a1
AP_HAL: fixed example build
2014-03-19 12:14:06 +09:00
Andrew Tridgell
5f85e7af6a
HAL_PX4: switch to new serial port for 2nd GPS
2014-03-04 20:34:44 +11:00
Andrew Tridgell
bf2dd141e9
HAL_PX4: support uartE for 2nd GPS
2014-02-26 08:18:11 +11:00
Andrew Tridgell
830afefcef
AP_HAL: fixed example build
2014-02-15 06:40:29 +11:00
Andrew Tridgell
bea0a46410
AP_HAL: added servorail_voltage and power_status_flags() API on AnalogIn
2014-02-15 05:00:09 +11:00
Andrew Tridgell
7c1b9b344f
AP_HAL: added get_flow_control() API
2014-02-14 21:51:00 +11:00
Andrew Tridgell
1849db7074
AP_HAL: added board_voltage AnalogIn method
...
this makes it easier to get the board voltage from any library,
without having to allocate another analog channel object
2014-02-14 21:25:38 +11:00
Andrew Tridgell
4e2e685d7a
HAL_PX4: better fix for IFLOW on all ports
...
the tcsetattr() call fails to apply the baudrate if the port has no
RTS pin and we ask for IFLOW. So just make a separate call.
2014-02-12 17:47:23 +11:00
Andrew Tridgell
b2cdd39a99
HAL_PX4: don't enable IFLOW on ports without flow control
...
this should have been harmless, but breaks the GPS on Pixhawk. This
disables it until we work out why.
2014-02-12 17:32:07 +11:00
Andrew Tridgell
c93794999e
HAL_PX4: remove an old conditional define
2014-02-11 15:58:25 +11:00
Andrew Tridgell
439a075b30
AP_HAL: added force_safety_off rcoutput function
...
this forces the safety switch off, enabling PWM on the IO board
2014-02-11 15:58:25 +11:00
Andrew Tridgell
c5c1d1358a
HAL_PX4: added automatic hardware flow control detection
...
this allows us to detect if hardware flow control is not available and
automatically disable it
2014-02-11 12:11:26 +11:00
Andrew Tridgell
3e637ac5d9
AP_HAL: added enable_flow_control() option in AP_HAL
2014-02-10 12:54:50 +11:00
Andrew Tridgell
99b41f110f
HAL_PX4: enable the FMU PWM pins to be used as GPIO when needed
2014-01-20 17:06:28 +11:00
Andrew Tridgell
87cc95dd7f
AP_HAL: removed unused enable_mask and disable_mask functions
2014-01-16 17:16:17 +11:00
Andrew Tridgell
e1f06c532a
HAL_PX4: more checking of IO results in eeprom driver
2014-01-16 13:11:14 +11:00
Andrew Tridgell
3ae6f03761
HAL_PX4: be less verbose about disarmed PWM setup
2014-01-16 13:11:13 +11:00
Andrew Tridgell
db1d438e97
HAL_PX4: implement set_safety_pwm() API
...
used to set PWM on motors when disarmed
2014-01-15 22:25:50 +11:00
Andrew Tridgell
64fbadcc21
HAL_PX4: use eeprom on PX4 FMUv1 as well
...
this means we no longer store params on SD at all
2014-01-15 19:33:13 +11:00
Andrew Tridgell
376ab30366
HAL_PX4: disable rename of old parameter file for now
...
be nice to release candidate users
2014-01-14 22:00:56 +11:00
Andrew Tridgell
626086063e
HAL_PX4: added a signature to FRAM
...
this makes for more reliable update
2014-01-14 15:06:51 +11:00
Andrew Tridgell
b88bb0751c
HAL_PX4: added support for MTD (FRAM) parameters
...
this allows us to store parameters and waypoints in FRAM, and
auto-upgrade from microSD
2014-01-14 12:46:26 +11:00
Andrew Tridgell
e78e35f3bd
HAL_PX4: try to use uppercase names on NuttX microSD card
2014-01-14 12:46:26 +11:00
Andrew Tridgell
63586e3e23
HAL_PX4: fixed build for new PX4Firmware
2014-01-13 13:54:51 +11:00
Andrew Tridgell
89676be825
HAL_PX4: fixed RCInput race condition
...
the number of channels could be zero with thread switch at the wrong
time
2013-12-31 22:25:16 +11:00
Andrew Tridgell
a2997704eb
HAL_PX4: removed code which drops throttle to 900 on loss of RC
...
rely on vehicle code checking for last data coming in
2013-12-31 10:58:49 +11:00
Andrew Tridgell
ea649e036b
AP_HAL: added HAL_CPU_CLASS define for selecting algorithms
...
this will make it easier to select the appropiate level of algorithm
for a CPU
2013-12-31 10:28:37 +11:00
Andrew Tridgell
a95868e124
HAL_PX4: even larger tx buffer size for faster log transfer
2013-12-28 16:01:48 +11:00
Andrew Tridgell
22bdee8727
HAL_PX4: implement available_memory()
2013-12-28 16:01:28 +11:00
Andrew Tridgell
ff7004fcc5
HAL_PX4: use larger buffers on USB
2013-12-28 14:25:54 +11:00
Andrew Tridgell
e321ad65f4
AP_HAL: fixed example build
2013-12-17 11:51:37 +11:00
Andrew Tridgell
f433796435
HAL_PX4: removed an unused variable
2013-12-11 10:22:34 +11:00
Andrew Tridgell
4b4f5ed1c0
HAL_PX4: support get_system_id() on PX4
2013-11-26 13:00:03 +11:00
Andrew Tridgell
0b25ff0a16
HAL_PX4: added uartD
2013-11-23 19:29:22 +11:00
Andrew Tridgell
24d1cf3bd6
HAL_PX4: don't check USB for data if not connected
2013-11-05 14:41:42 +11:00
Andrew Tridgell
8dc6b758f3
HAL_PX4: switch to delay_microseconds_semaphore() for UART timer
...
this may prevent some timing jitter on the GPS UARTs
2013-11-05 14:41:24 +11:00
Andrew Tridgell
5800c2a2c8
HAL_PX4: prevent excessive writes on startup from blocking
...
this could cause copter on PX4 to hang on startup
2013-10-28 16:12:44 +11:00
Andrew Tridgell
622f0dcc1d
HAL_PX4: prevent threads running before subsystems are initialised
...
this fixes a bug where the timer thread would hang waiting for the
console on startup. This caused the "hit enter" behaviour with recent
PX4 bugs, as AnalogIn tried to read from fd==0, which was a console
read
2013-10-26 18:12:35 +11:00
Andrew Tridgell
34cde1a640
HAL_PX4: implement set_system_clock()
2013-10-24 14:22:48 +11:00
Andrew Tridgell
1c091cbca5
HAL_PX4: fixed a scheduler bug that affects UART IO
...
we need to detect if we are in a timer task using a PID, not a
flag. This is the same type of bug I fixed last week, but now fixed
properly.
The bug could well be the "USB bug" that Craig has been chasing
2013-10-19 16:50:38 +11:00
Andrew Tridgell
d973730b88
HAL_PX4: use hrt timer and semaphores to improve timing
...
this gives much more accurate microsecond delays, while also ensuring
we yield the CPU when possible
2013-10-14 08:29:30 +11:00
Andrew Tridgell
e34cc6dd9a
HAL_PX4: added some UART debugging
...
this may help to track down USB issues
2013-10-13 12:43:25 +11:00
Andrew Tridgell
63bee0b2d8
HAL_PX4: disable checks for in_timerprocess
...
these are not valid in this form for the way the timer thread works on
PX4.
2013-10-11 16:06:35 +11:00
Andrew Tridgell
67db1cedaa
HAL_PX4: fixed delay_microseconds() on PX4
...
we could underflow and delay a very long time!
2013-10-08 17:31:15 +11:00
Andrew Tridgell
7cab8cb3bb
HAL_PX4: removed Console driver
2013-10-05 18:33:07 +10:00
Andrew Tridgell
ad30f8effa
HAL_PX4: try to reopen UARTs if safety switch is disarmed
...
this allows attaching to the USB port after power on
Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-10-05 15:47:28 +10:00
Andrew Tridgell
a250c13c79
HAL_PX4: fixed build
2013-10-03 12:21:08 +10:00
Andrew Tridgell
942ae70651
HAL_PX4: updates for AP_HAL::MemberProc
2013-09-30 21:06:42 +10:00
Andrew Tridgell
7067569103
HAL_PX4: fixed end() on UARTs
2013-09-29 12:04:36 +10:00
Andrew Tridgell
7ec242146d
HAL_PX4: update for new scheduler API
2013-09-28 21:24:03 +10:00
Andrew Tridgell
40af9ab674
AP_HAL_PX4: updates for new API
2013-09-22 12:22:05 +10:00
Andrew Tridgell
05b426c1fc
HAL_PX4: use common printf implementation on UARTs
2013-09-21 14:23:52 +10:00
Andrew Tridgell
80e2a5cc32
AP_HAL_PX4: convert to new AP_HAL printf
2013-09-21 13:29:32 +10:00
Andrew Tridgell
a5b29f44d5
AP_HAL: added hal.gpio->usb_connected() function
...
this replaces the USB_MUX_PIN on APM2, and works on PX4 and FMUv2
2013-09-19 16:23:40 +10:00
Andrew Tridgell
2990359043
PX4: Implement accurate ratiometric voltage reading on Pixhawk
...
this uses the monitoring of the 5V rail to compensate for changes in
the 5V reference versus the 3.3V ADC reference. It reduces the noise
on ratiometric sensors by a factor of about 6x.
2013-09-13 10:48:57 +10:00
Andrew Tridgell
3a3cecf5ff
PX4: support getting servorail voltage from ORB
2013-09-12 16:28:06 +10:00
Andrew Tridgell
fb56feb6b2
HAL_PX4: support all analog input pins, with scaling
...
this allows voltage/current/Vcc sensing on FMUv2
2013-09-12 13:26:00 +10:00
Andrew Tridgell
fa107bdb58
PX4: moved UART handling to its own thread
...
this prevents slow writes to the SD card from interfering with MAVLink
or GPS serial communication
2013-09-04 13:15:27 +10:00
Andrew Tridgell
7082e0f8aa
AP_HAL: added hold_in_bootloader parameter to scheduler->reboot()
2013-09-04 11:58:13 +10:00
Andrew Tridgell
5e33bbd197
PX4: fixed sense of relay pins
2013-08-30 15:05:29 +10:00
Andrew Tridgell
83fbb29db1
HAL_PX4: fixed example build
2013-08-30 13:01:36 +10:00
Randy Mackay
07abfc59ac
AP_HAL_PX4: compile error fix
2013-08-30 13:01:35 +10:00
Randy Mackay
ac36a09747
AP_HAL: add toggle to GPIO
2013-08-30 13:01:34 +10:00
Andrew Tridgell
0527bae8cb
PX4: support PX4IO relay pins
...
this allows the pins to be used in the relay code
2013-08-30 13:01:34 +10:00
Andrew Tridgell
9b3c54fc39
PX4: ensure storage buffer is DMA aligned
...
this helps for boards which use DMA for FAT IO
2013-08-30 13:01:33 +10:00
Andrew Tridgell
2340bb6220
PX4: use a minimum transmit buffer for UARTs of 512 bytes
...
this avoids writes stalling on the GPS port. We can't afford this
memory on APM2, but we can on PX4, and it means that while the GPS is
blocking at startup it doesn't cause any scheduler slips
2013-08-30 13:01:33 +10:00
Andrew Tridgell
e5f19e314d
PX4: systemreset() now takes a boolean argument
...
this chooses whether to stay in the bootloader
2013-08-30 13:01:33 +10:00
Andrew Tridgell
4794d90bbb
HAL_PX4: support up to 16 analog channels
2013-08-30 13:01:32 +10:00
Andrew Tridgell
3bc035d83a
HAL_PX4: fixed GPIO build
...
don't use vehicle includes
2013-08-30 13:01:32 +10:00
Andrew Tridgell
0f677e3a10
HAL_PX4: fixed build on FMUv1
2013-08-30 13:01:32 +10:00
Andrew Tridgell
091b989b30
HAL_PX4: some GPIO functions are not available on FMUv2 yet
2013-08-30 13:01:32 +10:00
Julian Oes
56e94d70e9
PX4: Adaptations to latest build changes
2013-08-30 13:01:32 +10:00
Andrew Tridgell
83b13c3d88
HAL_PX4: fixed definition of relay and piezo pins
2013-07-11 13:50:23 +10:00
Andrew Tridgell
0916388ab5
HAL_PX4: retry opening UARTs up to 5 times
...
this seems to help a lot with the USB port on PX4
2013-07-11 13:50:23 +10:00
Marco Bauer
a3b216bce3
HAL_PX4: added GPIO driver
2013-07-11 13:50:22 +10:00
Andrew Tridgell
d7d87f827e
HAL_PX4: support voltage monitoring on multi-connector pin 5
2013-06-05 08:24:20 +10:00
Andrew Tridgell
2316c3bd11
AP_HAL: make storage->write_block() take a const pointer
2013-06-04 14:02:13 +10:00
Andrew Tridgell
e391c34d1e
AP_HAL_PX4: fixed indent-tabs-mode
2013-05-30 09:54:53 +10:00
Andrew Tridgell
2c149bac8e
HAL_PX4: added new arming ioctls
2013-05-16 16:43:38 +10:00
Andrew Tridgell
a5b20b4dfc
AP_HAL: removed scaling factor on analog sources
...
these are not use anymore, as voltage_average() is used instead
2013-05-13 15:29:42 +10:00
Andrew Tridgell
589b8cdb58
AP_HAL: added voltage_average_ratiometric() call to AnalogIn
...
this is for ratiometric sensors such as the 3DR airspeed sensor and
the Maxbotix analog sonar
2013-05-13 15:12:43 +10:00
Andrew Tridgell
172faeea26
HAL_PX4: moved rc.APM to new ROMFS directory
2013-05-10 06:16:54 +10:00
Andrew Tridgell
b3e21c6add
HAL_PX4: include visibility.h
...
needed for new nuttx structure
2013-05-10 06:16:53 +10:00
Andrew Tridgell
9cd0af1132
HAL_PX4: make PX4 snprintf support %S format
...
just maps it to %s for normal printf
2013-05-08 16:17:06 +10:00
Andrew Tridgell
9bc48c9894
HAL_PX4: fixed build with new AnalogIn API
...
pin settle times not actually implemented on PX4 yet
2013-05-03 10:09:02 +10:00
Andrew Tridgell
ccd38e58a1
HAL_PX4: fixed the scaling on the analog pins
2013-05-02 21:40:15 +10:00
Randy Mackay
bbbd90c430
AP_HAL: rename RCInput's valid() fn to valid_channels
2013-04-29 15:05:53 +09:00
Andrew Tridgell
ec1678db83
HAL_PX4: setup for 12 output channels
...
moved telemetry port to /dev/ttyS2 to free PWM outputs on FMU
2013-04-25 20:10:53 +10:00
Andrew Tridgell
709615159a
HAL_PX4: support 12 output channels with PX4IO
...
first 8 on IO board, next 4 on FMU outputs
2013-04-25 20:10:53 +10:00
Andrew Tridgell
af7381e9e0
AP_HAL: added register_io_process()
...
this is used to register a low priority IO task. Used for file IO in
DataFlash_File.cpp
2013-04-17 21:33:50 +10:00
Andrew Tridgell
d01d754ba8
HAL_PX4: if we have lost RC input then set channel 3 to 900
...
this allows failsafe to kick in
2013-04-15 10:52:32 +10:00
Andrew Tridgell
6ddb99a50b
HAL_PX4: create APM/boot.log on SD card
...
useful for debugging
2013-03-21 15:05:21 +11:00
Andrew Tridgell
cc932973d6
HAL_PX4: remove the need for the fmu_only flag file
2013-03-21 15:05:21 +11:00
Andrew Tridgell
8766e86091
HAL_PX4: fixed blocking bulk writes to UARTs
...
this fixes a problem with uBlox initialisation on PX4
2013-03-20 15:41:52 +11:00
Andrew Tridgell
14911eff6c
HAL_PX4: added a (disabled) trick for handling blocking ttyACM0
...
this doesn't work yet, but is worth having for debugging
2013-03-20 11:20:43 +11:00
Andrew Tridgell
93fc9c48e5
HAL_PX4: fixed startup bug in fmu_only mode
2013-03-19 07:57:13 +11:00
Andrew Tridgell
ac69a531d3
HAL_PX4: workaround problem with APM file on SD card
...
this works around file redirection bug from earlier firmwares
2013-03-18 13:12:17 +11:00
Andrew Tridgell
6a1aad30f1
HAL_PX4: auto-create APM directory on SD card
2013-03-16 19:47:09 +11:00
Andrew Tridgell
b1c27407a2
AP_HAL: added voltage_average() interface to AnalogIn
...
returns voltage in Volts, using averaged reading over samples.
Where possible this should be auto-scaled against a known reference
voltage
2013-03-03 16:16:01 +11:00
Pat Hickey
e0457f21de
AP_HAL_PX4: fix off-by-one error in RCOutput channel sending
2013-02-23 15:04:17 -08:00
Andrew Tridgell
c373429a6e
HAL_PX4: fixed a buffer handling bug
...
BUF_SPACE() was badly buggy, which could lead to memory corruption
2013-02-20 18:15:56 +11:00
Andrew Tridgell
160e5fa311
HAL_PX4: show a message if we fail to upgrade PX4IO firmware
2013-02-20 18:15:23 +11:00
Andrew Tridgell
02c5c3ec4a
HAL_PX4: changed scheduler priorities
...
put sensor priority above main sketch, to prevent occasional blocking
for sensor data
2013-02-20 11:30:54 +11:00
Andrew Tridgell
54e7bce75e
HAL_PX4: cope with O_NONBLOCK not working in NuttX on ttyACM0
...
writes will block anyway, which clags up APM
2013-02-19 12:02:46 +11:00
Andrew Tridgell
8041768c67
HAL_PX4: perform automatic update of px4io firmware
2013-02-18 13:55:58 +11:00
Andrew Tridgell
8e2a20bea8
HAL_PX4: enable ttyACM0 as main console, ttyS1 as telemetry port
2013-02-18 13:55:33 +11:00
Andrew Tridgell
e45b137816
HAL_PX4: added run_debug_shell() implementation for PX4
2013-02-07 15:04:33 +11:00
Andrew Tridgell
4fd7630ec9
HAL_PX4: IO_SET_FEATURES is not needed any more
2013-01-27 15:05:28 +11:00
Andrew Tridgell
8375abdd99
HAL_PX4: fixed max storage write size
2013-01-27 15:04:47 +11:00
Andrew Tridgell
e4a204d2f6
HAL_PX4: reopen storage file on any IO error
2013-01-27 13:39:11 +11:00
Andrew Tridgell
90e264d56a
HAL_PX4: disable manual override in PX4 for now
2013-01-27 12:52:14 +11:00
Andrew Tridgell
02b4ecc273
HAL_PX4: get RC input from PX4IO board
...
this allows us to support DSM and SBUS receivers
2013-01-27 12:52:14 +11:00
Andrew Tridgell
d7409b6a25
HAL_PX4: startup in low priority to fix CLI
...
this ensures that tight sensor loops in setup() can run without
sleeping
2013-01-25 20:44:36 +11:00
Andrew Tridgell
7359348e2c
HAL_PX4: added support for /fs/microsd/APM/nostart
...
prevents APM startup
2013-01-25 20:44:36 +11:00