Commit Graph

2257 Commits

Author SHA1 Message Date
Andrew Tridgell a66da57d0a SITL: added in recursion check in timer_handler() 2012-11-21 09:10:10 +11:00
Andrew Tridgell d6d7e2674f Semaphore: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:23 +11:00
Andrew Tridgell da6f6f3e41 PeriodicProcess: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:23 +11:00
Andrew Tridgell 3646b4b846 INS: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:23 +11:00
Andrew Tridgell 4673ecfdf2 AP_Baro: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:17 +11:00
Andrew Tridgell d75d97dcfb AnalogSource: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:09 +11:00
Andrew Tridgell 0c8cef5714 ADC: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:30:03 +11:00
Andrew Tridgell 27e3f0c091 SITL: fixed a interrupt recursion bug
this can be triggered by the timer scheduler re-enabling interrupts
2012-11-20 22:29:26 +11:00
Andrew Tridgell 5002be9aa8 AP_Param: fixed Vector3f elements with 16 character names 2012-11-20 22:27:11 +11:00
Andrew Tridgell 46473d7a8f AP_Param: support up to 16 character parameter names
MAVLink allows for 16 chars, with no null termination if all 16 are
used
2012-11-20 21:35:22 +11:00
Andrew Tridgell bbb2bbc721 INS: set the acceptable calibration error equal on all axes 2012-11-20 19:28:49 +11:00
Andrew Tridgell b9fb683236 INS: show calibration values on failure
this will help debug bad calibrations
2012-11-20 19:28:15 +11:00
Andrew Tridgell e2afc9ea18 INS: get check for send_msg the right way around!
I broke this in my previous commit
2012-11-20 19:10:30 +11:00
Andrew Tridgell 4174cfd4a7 INS: disable accel calibration on the 1280
this would put us well over 128k in sketch size
2012-11-20 18:41:04 +11:00
Andrew Tridgell 98a806fb90 INS: make calibrate_accel() return a bool
this will allow APM to auto set MANUAL_LEVEL to 1
2012-11-20 18:32:27 +11:00
Andrew Tridgell 2a70138ad1 INS: fixed raw accel offset for APM1
we now get reasonable offset values
2012-11-20 18:32:27 +11:00
Andrew Tridgell f2744f8ff7 INS: use vector subtraction to make code clearer 2012-11-20 18:32:27 +11:00
rmackay9 317b719a62 AP_InertialSensor: correct typo to datasheet's filename 2012-11-20 00:37:42 +09:00
Andrew Tridgell 41baa09c96 AHRS: changed the docs for AHRS_YAW_P and AHRS_RP_P
a user had set AHRS_YAW_P to zero. Make it clear that zero is not a
good value. MichaelO will change MP to give a warning for a value
below 0.1
2012-11-19 22:50:05 +11:00
Andrew Tridgell df19bef23c SITL: don't define __AVR_ATmega2560__ on desktop build
this allows us to properly separate the desktop build in the code
2012-11-19 09:03:35 +11:00
Andrew Tridgell 1229cb06c0 DigitalWriteFast: added README about license and author 2012-11-19 08:46:47 +11:00
Andrew Tridgell 7800b27b42 AP_OpticalFlow: fixed some memory cast warnings 2012-11-19 08:42:36 +11:00
Andrew Tridgell 859401f334 AP_Limits: fixed some memory cast warnings 2012-11-19 08:42:36 +11:00
Andrew Tridgell 0534406f6d SITL: added SREG declaration 2012-11-19 08:42:36 +11:00
Andrew Tridgell 7c90931306 DigitalWriteFast: fixed memory cast to work on SITL build 2012-11-19 08:25:53 +11:00
Andrew Tridgell 85b87b752a APM: change WIND direction to match convention
Thanks to Leo Hogg for pointing this out
2012-11-19 07:16:47 +11:00
rmackay9 55e47f5504 DigitalWriteFast: first addition of lib to speed up read and writes of analog pins 2012-11-19 01:07:10 +09:00
rmackay9 85a77554e1 Filter: improved low pass filter allows setting gain using time_step and cutoff freq 2012-11-19 01:06:06 +09:00
rmackay9 2374806bfc APM_RC: allow ppm sum for as few as 5 channels 2012-11-16 11:07:11 +09:00
rmackay9 25d404587c APM_RC: fix _last_update definition to resolve build error 2012-11-16 10:00:56 +09:00
John Arne Birkeland 47d2602019 APM_RC - Interupt safe get_last_update(); 2012-11-15 22:42:28 +01:00
rmackay9 414f9b9759 ArduCopter, APM_RC: failsafe if PPM encoder fails to update for 2 seconds 2012-11-15 23:35:36 +09:00
Andrew Tridgell e28cbed1e9 AP_AHRS: prevent a large delta_t from affecting DCM solution
this should fix large changes in attitude directly after arming
ArduCopter
2012-11-13 15:33:10 +11:00
Andrew Tridgell a523c319ce SITL: fixed build with new sonar driver 2012-11-13 15:12:38 +11:00
rmackay9 48fcf1ee8b AP_RangeFinder_MaxsonarI2CXL: fix compiler error re undefine I2c 2012-11-12 12:23:46 +09:00
rmackay9 7681e25d99 AP_RangeFinder_MaxsonarI2CXL: resolve shadowed variable compiler warning 2012-11-12 10:41:09 +09:00
Andrew Tridgell 7868d5ed3d AP_Compass: force I2C speed low in a couple more situations 2012-11-12 11:26:20 +11:00
Andrew Tridgell d43f61de3c I2C:: catch some more types of I2C errors for error count 2012-11-12 11:25:07 +11:00
Andrew Tridgell 9b42a97de9 AP_Compass: print I2C error count in test sketch 2012-11-12 10:28:26 +11:00
rmackay9 242ab5325f AP_RangeFinder: added support for MaxBotix XL I2C sonar 2012-11-12 00:25:29 +09:00
rmackay9 fb91be06f2 AP_IMU: delete now that all functionality is moved to AP_InertialSensor 2012-11-11 22:44:36 +09:00
Jason Short efeffc1c4b APM1 Dataflash update
My data flash would never erase, this fixed it.
2012-11-09 22:15:16 -08:00
John Arne Birkeland 77c35d0ae4 Optimized APM_RC.InputCh() to prevent global interrupt disable each time a value is read. 2012-11-08 01:03:24 +01:00
rmackay9 caeeca3c3c AP_Motors, AP_RangeFinder, Filter: fixes to example sketches 2012-11-08 00:29:43 +09:00
rmackay9 4053346022 AP_AHRS: fix example sketch
AP_Airspeed: fix example sketch
AP_Baro: fix example sketch
AP_Declination: fix example sketch
AP_Math: fix example sketch
2012-11-08 00:08:18 +09:00
rmackay9 93010fc79f AC_PID: fixed example sketch's compile errors 2012-11-07 23:34:10 +09:00
rmackay9 34ae673058 AP_Mount: resolve compiler warning about unused mount_open variable 2012-11-07 23:29:25 +09:00
rmackay9 56f374fc7d AP_InertialNav: reanme AP_InertialNav and ThirdOrderCompFilter classes to resolve desktop build compiler errors 2012-11-07 22:24:00 +09:00
rmackay9 3fcc38315f AP_InertialNav: removed IMU.h to fix compiler error from example sketch 2012-11-07 19:48:13 +09:00
rmackay9 4ad8c402b0 ThirdOrderCompFilter3D: fix compiler error 2012-11-07 19:47:48 +09:00
rmackay9 c717d333b0 AP_Baro: added get_last_update which returns the time the barometer sensor was last read 2012-11-07 19:21:25 +09:00
rmackay9 e2b1cb7e8d AP_InertialSensor: changes after review with Tridge.
sanity checking added to accelerometer calibration routine.
user feedback is sent using gcs_send_text_fmt instead of Serial.printf.
moved ins parameters to new eeprom number to avoid conflicts with older parameters.
other small changes including renaming of functions and parameters.
2012-11-07 19:21:15 +09:00
rmackay9 575382b5f4 APM_Control: move reliance from IMU to INS 2012-11-07 19:20:54 +09:00
rmackay9 ebf3e609a2 AP_InertialNav: first implementation of inertial nav library 2012-11-07 19:20:49 +09:00
rmackay9 9b4d107e96 ThirdOrderCompFilter3D: first implementation of complementary filter for use with inertial navigation 2012-11-07 19:20:43 +09:00
rmackay9 4a6261af64 AP_Buffer: initial implementation of FIFO buffer for use with inertial nav 2012-11-07 19:20:37 +09:00
rmackay9 8ab0611261 AP_AHRS: replace IMU with INS and add roll and pitch trim 2012-11-07 19:20:32 +09:00
rmackay9 e835cef181 AP_InertialSensor: merge in calibration features from IMU library
add gauss-newton method of accelerometer calibration
2012-11-07 19:20:27 +09:00
Andrew Tridgell 85054c1541 AP_AnalogSource: allow for the 'NONE' pin in Arduino ADC
This allows us to have a configuration parameter for a pin which
defaults to -1, meaning not to read a pin at all. It will always
return 0
2012-11-06 21:45:40 +11:00
Andrew Tridgell 33338e7173 AP_Var: move the MetaClass lib into AP_Var
AP_Var is the only one that uses it, and it generates warnings in our
build if we leave it in AP_Common
2012-11-06 21:42:54 +11:00
Andrew Tridgell c14788240f SITL: set a reasonable number of satellites in simulated uBlox 2012-11-06 14:26:49 +11:00
Andrew Tridgell 2d1b68fb22 AP_AHRS: removed the 6 sats min
this would put us into dead-reckoning mode
2012-11-06 14:26:49 +11:00
Andrew Tridgell 3a1f85a4b0 RC_Channel: added pwm_to_angle_dz() function
will be used by k_aileron in APM
2012-11-05 23:37:25 +11:00
Andrew Tridgell df96832900 AP_Param: fixed a bug with setting nested parameters
This bug meant that setting a parameter in a parent class for a doubly
nested parameter group, where the parameter index in the parent class
is 4 or greater would actually set the first element in that parent
class.

At the moment only one parameter fits these narrow constraints - the
RCn_DZ element of the RC_Channel_aux class. So if someone set RC5_DZ
to 17 in ArduPlane it would actually set RC5_MIN to 17.
2012-11-05 22:08:43 +11:00
Andrew Tridgell c1fbad52c0 RC_Channel: removed set_filter() and scale_output
these unused options were costing 5 bytes per channel, for a total of
50 bytes on ArduCopter
2012-11-05 20:49:42 +11:00
Andrew Tridgell 7a679dc19a AP_AHRS: require at least 6 satellites to use the GPS for velocity
logs of a recent flight show the velocity estimate can be very poor if
the GPS can see 5 satellites or less
2012-11-05 20:07:37 +11:00
Andrew Tridgell 1cbd8ba7b3 AP_GPS_UBLOX: ask for nav settings every 20 seconds
this ensures we don't run with the wrong nav settings on a uBlox if
we get a bad checksum on the initial nav settings message
2012-11-05 14:58:40 +11:00
Andrew Tridgell 2ed3c84a8c AP_GPS: start detection timer on first bytes
this prevents a uBlox plugged in late from being detected as a NMEA
GPS
2012-11-05 14:58:40 +11:00
Andrew Tridgell 1fcf6ebca7 AP_GPS: removed shadowed class variable _nav_setting
this caused a uBlox to incorrectly configure as "portable" instead of
airborne if the detection took more than 2 seconds. That led to
terrible performance.
2012-11-05 14:58:40 +11:00
Andrew Tridgell 3c025c6113 AP_AHRS: use GPS vertical velocity when available 2012-11-05 14:58:40 +11:00
Andrew Tridgell 5d2bfab23c AP_GPS: added velocity_down() call
on GPSes with raw velocity support this will be used for DCM
correction
2012-11-05 14:58:40 +11:00
rmackay9 f32c1ce80a AP_Math: added rotation method accuracy test to example sketch 2012-11-04 13:05:37 +09:00
rmackay9 19a2b368e5 AP_Math: fix compile errors example sketches 2012-11-04 11:55:59 +09:00
rmackay9 1e0cf2644d AP_AHRS: fix compile error in example sketch 2012-11-01 21:56:34 +09:00
rmackay9 d74636b980 AP_Motors: bug fix to reached_limits so by default it returns true if any limits have been breached 2012-10-31 22:00:17 +09:00
Andrew Tridgell 8deba5f43b RC_Channel: added set_radio() and set_radio_to_trim() functions 2012-10-31 12:43:53 +11:00
Xichen Shi f1fd7479bd APM: Added functionality to use differential spoilers in elevon mode
spoiler 1 and 2 are connected to 2 auxiliary channels, functions are
set to 16 on left wing and 17 om right wing respectively. Worked in
FBW + mode (auto etc.). No manual mode supported yet (need more
channels in my case).
2012-10-31 12:43:42 +11:00
rmackay9 514cd728a0 AP_OpticalFlow: fix example sketch to work with modified AP_Opticalflow library after memory saves 2012-10-22 16:41:45 +09:00
rmackay9 a3f1aa0c7b AP_Curve: replace Serial.print with Serial.print_P to save 18 bytes of memory 2012-10-22 16:40:57 +09:00
rmackay9 00279c6d3a AP_OpticalFlow: change Serial.print to Serial.print_P to save 27 bytes 2012-10-22 16:37:24 +09:00
rmackay9 eaf75d3be4 AP_Limit_Geofence: reduce maximum number of fence points to 6 from 20 to save memory 2012-10-22 16:34:25 +09:00
Pat Hickey 53c471e8fc AP_Menu unit test fixup 2012-10-18 21:08:37 -07:00
Pat Hickey 7f06fa94a5 AP_Menu: create new library with menu from AP_Common 2012-10-18 20:50:16 -07:00
Andrew Tridgell 44f49aafb6 Desktop: fixed build with recent SPI changes 2012-10-19 11:21:42 +11:00
rmackay9 96470e2d49 Desktop: fix build error 2012-10-18 19:33:31 +09:00
rmackay9 4055066779 Desktop: add AP_Semaphore to list of includes for DataFlash_APM1.cpp 2012-10-18 19:25:53 +09:00
rmackay9 0722d671d6 SPI3: add checks that SPI bus has been initialised to reduce possibility of interfering with UART3 on APM1 2012-10-18 19:17:24 +09:00
rmackay9 2428cc647c DataFlash_APM1: use spi_semaphore to avoid conflicts with optical flow 2012-10-18 17:03:50 +09:00
rmackay9 a7d9e181d3 AP_OpticalFlow: added ability to pass in semaphores for main spi bus to stop conflicts with dataflash on APM1 2012-10-18 17:02:45 +09:00
rmackay9 5f2c900797 DataFlash_APM2: renamed semaphore to spi3_semaphore to make it more obvious which semaphore is required. 2012-10-18 17:00:05 +09:00
Andrew Tridgell 890bed4918 GPS: avoid output delays in the GPS auto detection
this sends out the GPS init strings in 16 byte chunks to avoid causing
timing glitches when no GPS is attached
2012-10-18 16:18:32 +11:00
Andrew Tridgell f541b2a081 AP_AnalogSource: added set_pin() interface
this allows pin numbers to be changed at runtime
2012-10-16 17:20:15 +11:00
Andrew Tridgell dac569a393 RC_Channel: simplify the example
use an array of channels
2012-10-16 15:50:54 +11:00
Andrew Tridgell bad02cab04 RC_Channel: ensure _reverse is not 0
this caused the example to fail
2012-10-16 15:50:29 +11:00
Pat Hickey 8577a0c7a1 MultiFastSerial example sketch: notes on fatal error in avr-gcc 4.5.x 2012-10-15 20:42:19 -07:00
Pat Hickey 2dace5cf5f FastSerial example sketch: Depend on AP_Common for PSTR definitions 2012-10-15 20:42:18 -07:00
Pat Hickey def4ffbe86 AP_Common: PSTR def has specific version for avr-gcc 4.6 compatibility
* Also a small change in FastSerial/vprintf.cpp, which duplicates the
  PSTR definition
* Won't effect others using earlier versions of avr-gcc
2012-10-15 20:42:18 -07:00
Pat Hickey 5dd12bbe9d RC_Channel unit test: fixed build, functionality still wrong 2012-10-15 10:37:29 -07:00
Pat Hickey 2c9678bf01 MultiFastSerial test: make it easier to observe which serial port causes crash 2012-10-14 21:08:33 -07:00
Pat Hickey afcc3c735a FastSerial: add extra example sketch MultiFastSerial to test multiple ports 2012-10-14 18:58:12 -07:00