Commit Graph

92 Commits

Author SHA1 Message Date
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
Andrew Tridgell 8f2f4b1bc5 HAL_PX4: use write() to /dev/pwm_output for servo output
this lowest the cost of PWM output a lot, but relies on the new I2C
based IO firmware
2013-01-25 20:44:36 +11:00
Andrew Tridgell f9d43f4c3e HAL_PX4: prevent loop() overruns using hrt
this ensures if loop() takes more than 1 second, the main task gets
its priority dropped until loop() completes
2013-01-24 15:04:57 +11:00
Andrew Tridgell 70227d5d93 HAL_PX4: added scheduler performance counters 2013-01-24 15:04:57 +11:00
Andrew Tridgell 0e79b93289 HAL_PX4: added storage performance counters 2013-01-24 15:04:57 +11:00
Andrew Tridgell fc8065b50f HAL_PX4: added UART performance counters 2013-01-24 15:04:57 +11:00
Andrew Tridgell 6cf1d5e1ff HAL_PX4: handle IO errors on microsd
this should handle EINTR gracefully
2013-01-24 15:04:57 +11:00
Andrew Tridgell 966b9b9b9c HAL_PX4: format panic messages with a newline 2013-01-23 16:54:44 +11:00
Andrew Tridgell c9799fb2b7 HAL_PX4: writing more than 512 bytes at a time can cause IO errors
the vfat fs in NuttX is really very picky!
2013-01-23 16:54:44 +11:00
Andrew Tridgell 952df2fced HAL_PX4: new buffered storeage driver for microsd cards
this does all IO in the timer thread, avoids writes that don't change
data, and does all writes in multiples of 128 byte chunks. This should
be about as friendly to SD cards as we can get.
2013-01-23 16:37:40 +11:00
Andrew Tridgell f72b532405 HAL_PX4: ensure all writes go via buffers
this prevents output corruption by direct fd writes
2013-01-23 09:22:51 +11:00
Andrew Tridgell 2a10727902 HAL_PX4: run timer thread as SCHED_FIFO
this ensures it never yields to the main thread, which would break our
locking assumptions
2013-01-23 09:21:50 +11:00
Andrew Tridgell 930e79a9e1 HAL_PX4: fixed rcin->valid() for RC override input 2013-01-23 07:57:59 +11:00
Andrew Tridgell 06e63d3167 HAL_PX4: use pthread_yield() in main loop
this lowers the latency of the main loop somewhat
2013-01-23 07:36:13 +11:00
Andrew Tridgell 6e8501603c HAL_PX4: avoid RCOutput ioctl unless values change
this lowers latency somewhat
2013-01-23 07:29:59 +11:00
Andrew Tridgell 89cb3fbd61 HAL_PX4: fixed blocking IO in UART driver 2013-01-22 21:52:21 +11:00
Andrew Tridgell 6ffa18fa61 HAL_PX4: rewrite UART driver to be much more efficient
this does the IO in the timer thread, and uses buffers in the main
task to avoid system call costs in the flight code.

The cost of PX4 read and write system calls is quite high - about 10
to 15 usec. We can't afford to pay that per byte
2013-01-22 21:22:01 +11:00
Andrew Tridgell 546ed19ffc HAL_PX4: improved efficiency of serial writes
use buffer at a time writes when possible, and use O_NONBLOCKING to
avoid txspace()
2013-01-22 10:50:26 +11:00
Andrew Tridgell 18cfd29f2f HAL_PX4: added a read buffer to the UART driver
this lowers the average cost of reading bytes by a large amount, and
prevents the GPS driver from chewing lots of time.
2013-01-22 10:34:04 +11:00
Andrew Tridgell db0bd86317 HAL_PX4: name the eeprom file after the sketch
this makes it easier to switch between ArduPlane and ArduCopter
2013-01-21 22:04:17 +11:00
Andrew Tridgell 1188c9e335 HAL_PX4: added Util instance
this fixes hal.util->vsnprintf_P()
2013-01-21 17:10:42 +11:00
Andrew Tridgell 52f560a4c2 HAL_PX4: enabled AnalogIn driver 2013-01-21 13:56:57 +11:00
Andrew Tridgell ed94292c25 HAL_PX4: start adc driver in rc.APM 2013-01-21 13:55:58 +11:00
Andrew Tridgell e42cf918fd HAL_PX4: added AnalogIn driver
this allows airspeed to work on a PX4
2013-01-21 13:55:06 +11:00
Andrew Tridgell 39e28d48c2 HAL_PX4: switched scheduler to use a pthread
this allows the timer tasks to access file descriptors in the main APM
task, which makes writing PX4 device drivers much easier
2013-01-21 13:54:09 +11:00
Andrew Tridgell ffb2924dd4 HAL_PX4: added APM startup script 2013-01-21 08:27:02 +11:00