1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-12 20:08:48 +01:00
Commit Graph

2828 Commits

Author SHA1 Message Date
Stacey Sheldon
59cb489e01 usb: clean up pios hooks into stm32 usb_core
Reduced scope of many variables since they were being
exposed unnecessarily.

Renamed pios_usb_hid_prop code to pios_usbhook to reflect
the fact that it implements all of the callout functions
that are hooked into the stm32 usb library.
2011-12-30 23:05:33 -05:00
Stacey Sheldon
c0259dc616 usb cdc: USB composite device with HID + VCP 2011-12-30 23:05:33 -05:00
James Cotton
25dfb5463e Add option to switch to using the MPU6000 accel instead of BMA180. Disabled by
default.
2011-12-29 02:08:13 -06:00
James Cotton
c080080810 Add ability to change the SPI bus runs at 2011-12-29 00:09:53 -06:00
James Cotton
bf98630851 Add streaming the sensor data out of the serial port 2011-12-26 17:52:45 -06:00
James Cotton
9bf06bbd3e Force the loading of the sensor gains and biases at the beginning 2011-12-24 16:14:28 -06:00
James Cotton
1092ac3184 Use the scale and bias terms for hte mag and accel 2011-12-24 15:58:12 -06:00
James Cotton
05da41a79b Get FirmwareIAP object working on revo 2011-12-24 13:15:56 -06:00
James Cotton
569b201b58 Move the bl_helper out of the common directory as it isn't 2011-12-24 13:10:23 -06:00
James Cotton
5d4da2213f Accidentally used floating point when parsing NEMA. Lost resolution on
position.
2011-12-24 10:37:30 -06:00
Oleg Semyonov
7fbbb0e6af Merge remote branch 'origin/next' into os/TxPID-module 2011-12-24 15:44:16 +02:00
Oleg Semyonov
495a8f2836 TxPID: initialize the AccessoryDesired object before use its handle
Also save few bytes of static RAM and add PIOS_Assert(0) for unhandled cases.
2011-12-24 15:37:14 +02:00
James Cotton
0b00e748a9 OP-565: Added the ability to do a trim flight to compute the accels for level flight 2011-12-21 15:25:00 -06:00
James Cotton
dd89d232ba Add a magnetometer bias term although currently hardcoded to my board 2011-12-15 00:57:19 -06:00
James Cotton
0432dd450e Enable the mag to be used in the complimentary filter to stabilize the yaw
direction
2011-12-15 00:56:50 -06:00
James Cotton
2240ad924a Fix the orientation of the magnetometer 2011-12-15 00:46:43 -06:00
James Cotton
43ed6cd89c Need to initialize the HomeLocation object 2011-12-14 14:08:03 -06:00
James Cotton
9148bb2c65 Make sure the sensors module grabs the sesor biases initially. 2011-12-14 10:38:43 -06:00
James Cotton
6dbad243db Convert the CoordinateConversion functions to all be float until I determine
how to use doubles safely on F4.
2011-12-14 02:08:14 -06:00
James Cotton
09864a8cf6 Get outdoor EKF running although need to add in the ability to swap modes
(probably).
2011-12-14 02:07:33 -06:00
James Cotton
fd8899018f Get EKF running 2011-12-14 01:54:06 -06:00
James Cotton
ed7cbd5a6c Have to initialize the BaroAltitude object ini the init section for it to show
up on telemetry
2011-12-13 23:27:26 -06:00
James Cotton
9f50391fc5 Merge branch 'next' into revolution_sensors
Conflicts:
	ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.xml
2011-12-13 20:50:10 -06:00
James Cotton
a37a17a4fb Created a separate Sensor module and Attitude module for revolution 2011-12-12 21:40:39 -06:00
James Cotton
53cb5b67d1 Make the revo attitude now use the separate gyro object. CopterControl
attitude still needs an update.
2011-12-12 13:28:35 -06:00
James Cotton
d22e0e66dd Create separate UAVOs for the sensors. 2011-12-12 13:05:40 -06:00
James Cotton
7273f87f9b Fix NMEA parsing for M4 FPU 2011-12-12 09:47:11 -06:00
James Cotton
a9c61845af Create a separate task for sensors and attitude on revo. 2011-12-12 00:47:16 -06:00
James Cotton
33a12d829e Merge branch 'next' into revolution
Conflicts:
	flight/PiOS/Common/pios_flashfs_objlist.c
2011-12-11 22:55:54 -06:00
Oleg Semyonov
10287e3e29 CC: rename ReceiverPort PPM+Servo (Servo) options to PPM+Outputs (Outputs) 2011-12-11 22:52:51 +02:00
James Cotton
162b0d7f75 Because the UAVO field sorting required for revo changes all the object IDs,
trigger a flash wipe on all existing boards with this upgrade.
2011-12-10 14:13:28 -06:00
Corvus Corax
a0cd71abe6 UAVObjects ; Modules/ManualControl: Fixed metadata interface and segfault when retrieving it 2011-11-30 09:20:46 +01:00
James Cotton
44ca9736df Fix floating point calculation in NMEA parser and delete duplicate of NMEA
functions
2011-11-28 09:36:31 -06:00
James Cotton
43fa9e702e Move DSM to Flexiport and enable GPS on GPS port. Currently GPS module locks
up though.
2011-11-28 09:11:13 -06:00
James Cotton
c33816dd79 Force mode switch to be floating point so F4 works 2011-11-28 09:10:26 -06:00
James Cotton
671c7537a0 Reorganize the pios_config.c file for revolution 2011-11-28 08:29:14 -06:00
James Cotton
1af66fc3d2 Get rid of 500 ms delay in startup for the pios_sys so that servos start
properly but a delay is still needs to get MPU6000 up right.  Fucking POS.
2011-11-27 18:05:20 -06:00
James Cotton
9357960268 Get rid of old bootloader code for revolution using the ahrs spi link 2011-11-27 18:04:31 -06:00
James Cotton
f7f94011ee Damnit. For higher bus speeds MPU6000 chip must be initialized twice in a row.
WTF piece of shit.
2011-11-27 02:35:08 -06:00
James Cotton
deea7cde41 Speed up coms to MPU6000 2011-11-27 01:51:43 -06:00
James Cotton
57e7126979 Increase stack size for manualcontrol. This might need to be applied to main
code.
2011-11-27 01:51:23 -06:00
James Cotton
f7d13ebd57 Hack to tweak the gyro gain for now although its too far out at the moment so
something isn't configured properly.  Possibly it is staying in 250 deg/s mode.
Also make sure if the MPU6000 fifo backs up to pull extra data.
2011-11-27 01:22:37 -06:00
James Cotton
8bbc767a4e Get the pressure sensor working and reading into Revolution 2011-11-27 00:52:09 -06:00
James Cotton
cd65df013e Merge branch 'next' into revolution
Conflicts:
	flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-11-26 22:52:32 -06:00
James Cotton
13729f854e PiOS F4: Fix PWM timer interrupts and enable PWM input 2011-11-26 22:41:41 -06:00
James Cotton
21367d3a22 Spektrum support for Revolution 2011-11-26 22:19:42 -06:00
James Cotton
e24c905ff7 F4 PiOS: Reimplement the RTC logic for F4 2011-11-26 22:13:57 -06:00
James Cotton
b11a4f7405 Clean up the actuator module for floating point usage. Also there was a bug I
don't understand where the channels should be scaled AFTER all of them are
computed.  It feels like a memory overwriting bug and needs followup.
2011-11-26 16:12:32 -06:00
James Cotton
07e3ad10af Force some floating point units to be safe 2011-11-26 15:52:25 -06:00
James Cotton
04f4afce46 Set idle load for revo 2011-11-26 15:52:04 -06:00
James Cotton
8c0db424fa Fix long subtle bug where failsafe didn't show the output values it was using 2011-11-26 15:51:24 -06:00
James Cotton
c70a9a5381 Sanitize the floating point math in systemmod.c to be consistently floating and
not double
2011-11-26 15:16:16 -06:00
Oleg Semyonov
1f60f80053 Bring back the ERASE_FLASH option support for SettingsEraseFirmware 2011-11-26 22:57:33 +02:00
James Cotton
d3314f041a MPU6000: Bring SPI down to 5 Mhz - much closer to spec 2011-11-26 14:56:28 -06:00
James Cotton
99123372d0 TO BE REVERTED: Temporary patch to make the w25x driver work with the revo m25p
chip.  Need to abstract out the erase commands into a general pios_spi_flash
driver.
2011-11-26 14:55:16 -06:00
James Cotton
8b7aca0dcd Include the accel bias into revolution attitude function and also make sure
downsampling is correct.
2011-11-26 14:40:32 -06:00
James Cotton
11ad135b27 Some changes to MPU6000 driver to make it start more reliably on fresh powerup 2011-11-26 14:12:12 -06:00
James Cotton
1574c96c3a Add all the pin remappings and pin sources for F4 timers 2011-11-26 03:36:36 -06:00
James Cotton
c57acf6459 F4 PiOS: Must use a different remap command on F4 for timer module to command
pin.  Include the remap source in the config structure now.
2011-11-26 03:35:26 -06:00
James Cotton
57b381235e Init the timers and PWM in the board file 2011-11-26 02:19:56 -06:00
James Cotton
de9a8453ef Configure the board to use PWM input and servo output 2011-11-26 02:19:56 -06:00
James Cotton
3e01c84a15 Add pin mappings for PWM and receiver port 2011-11-26 02:19:56 -06:00
James Cotton
e71030c6ce Remove testing code for pressure sensor 2011-11-26 02:19:56 -06:00
James Cotton
c118159a6f Remove refence to deleted object 2011-11-26 02:19:55 -06:00
James Cotton
fae611a01f Fix bug where clicking back at last screen of input wizard would go back to
main screen and then in future buttons hung around for no reason
2011-11-25 11:30:12 -06:00
Oleg Semyonov
6d78b97d92 dsm: update DSM protocol binding details in the comments (no code change) 2011-11-19 17:33:04 +02:00
James Cotton
7637e9f669 Get flash chip working and saving to memory. Also get the I2C working with
BMA180 driver.
2011-11-19 00:13:02 -06:00
James Cotton
da75e9fdaf PiOS: Make I2C return an error code for NACK 2011-11-19 00:11:16 -06:00
James Cotton
a7ef5601e0 Update the MPU6000 FIFO code and also fix the temperature code 2011-11-18 00:24:55 -06:00
James Cotton
6d74e96c31 Got attitude working again. MPU6000 FIFO reading needs a bit of work. 2011-11-18 00:00:55 -06:00
James Cotton
79730d5afa Try and get the MPU6000 buffer to run down. Staying high for some reason. 2011-11-17 11:23:31 -06:00
James Cotton
0efffef1fa Work on bringing the Revolution board up 2011-11-17 10:13:34 -06:00
James Cotton
d97e5dbc59 Add SPI MPU6000 driver. Unfortunate hack in HMC5883 EXTI handler to call
MPU6000.  Need to generalize EXTI ASAP.
2011-11-17 10:12:10 -06:00
James Cotton
8477c2229b Using real prototype board now. Move telemetry to GPS port for easy-ness right
now.
2011-11-17 01:58:51 -06:00
James Cotton
1c7c85635d Typo with renamed PI 2011-11-16 19:48:13 -06:00
James Cotton
1deb799b6f Get simple attitude estimation working on F4 INS. Also make MPU6050 return
scaling that casts to degrees.
2011-11-16 11:36:04 -06:00
James Cotton
8e79f86716 Make the CoordinateConversions use a floating point PI 2011-11-16 11:35:52 -06:00
James Cotton
aa698f7b0a Increase the CC IRQ stack to avoid some memory warnings 2011-11-16 09:20:30 -06:00
James Cotton
aeb42332d6 Get the MPU6050 fifo running and read by the attitude module 2011-11-14 11:23:14 -06:00
James Cotton
59507249e1 Hack in attitude to read directly from gyros instead of fifo. All sensors
reading now.
2011-11-14 11:12:10 -06:00
James Cotton
1086df5b21 Correctly configure MPU6050 interrupt. However currently not pushing data to
the buffer as that seems to fail.
2011-11-14 11:11:40 -06:00
James Cotton
2cc2e55248 Add attitude solution for revo 2011-11-14 10:49:37 -06:00
James Cotton
4c04d01be4 Dos2unix pios_config.h for revo 2011-11-14 10:25:57 -06:00
James Cotton
e32cc92002 For now act like revo is using init call system to fix compile errors. 2011-11-14 10:25:28 -06:00
James Cotton
da679441ec Duplicate the spektrum (dsm) driver to F4 branch 2011-11-14 10:12:51 -06:00
James Cotton
684715930a Merge branch 'next' into revolution
Conflicts:
	flight/OpenPilot/Makefile
	flight/Revolution/System/inc/openpilot.h
2011-11-14 10:11:53 -06:00
James Cotton
180d84e373 Update the MPU6050 code a bit more to use the right registers. 2011-11-14 10:09:49 -06:00
James Cotton
2eb89e9b81 No reason for the data read flag in pios_bmp085.c to be a semaphore 2011-11-14 10:07:19 -06:00
James Cotton
76a956416c Switch revo over to MPU6050 2011-11-13 19:45:06 -06:00
James Cotton
96a098bf74 Add code for MPU6050 driver 2011-11-13 19:44:56 -06:00
James Cotton
1e2fe77e3f Start migrating the attitude solution to FreeRTOS 2011-11-13 18:51:35 -06:00
James Cotton
0c103f7b2c Delete F2 PiOS port since unused 2011-11-13 17:33:43 -06:00
James Cotton
fffb6449ac Delete the old INS target 2011-11-13 17:31:34 -06:00
James Cotton
c44235494c Update the Revolution board file a bit 2011-11-13 17:23:56 -06:00
James Cotton
938a577d11 Small change to pios_adc so it works when not enabled 2011-11-13 17:14:08 -06:00
James Cotton
ec84fc4058 Get the Revolution bootloader working 2011-11-13 17:13:42 -06:00
James Cotton
2b37d4bbb5 Enable telemetry on revo 2011-11-13 16:10:19 -06:00
Oleg Semyonov
4a99ec3298 code style: move variable into function and free 1 byte of RAM :-)
component     free heap used
    ----------------------------
    Nothing            2560    -
    PWM                2432  128
    PPM                2408  152
    DSM                2464   96
    S.Bus              2448  112
    GPS (port only)    2368  192
    GPS (port+module)  1312 1248
    CameraStab         2096  464
    Telemetry          1928  632
2011-11-13 18:27:52 +02:00
Oleg Semyonov
de6e450b5f Merge branch 'next' into os/TxPID-module
Conflicts:
	flight/CopterControl/Makefile
	flight/CopterControl/System/coptercontrol.c
	ground/uavobjgenerator/generators/generator_common.h
	shared/uavobjectdefinition/hwsettings.xml

component    	free heap used
----------------------------
Nothing            2544    -
PWM                2416  128
PPM                2392  152
DSM                2448   96
S.Bus              2432  112
GPS (port only)    2352  192
GPS (port+module)  1296 1248
CameraStab         2080  464
Telemetry          1912  632
TxPID              2272  272
2011-11-13 16:25:58 +02:00
James Cotton
b110e9c549 Style suggestions to cleanup GPS from Stac 2011-11-12 21:31:01 -06:00
James Cotton
f0b22519be Merge remote-tracking branch 'origin/corvuscorax/CC_GPS' into next 2011-11-12 21:30:53 -06:00
James Cotton
fdcc6c2d41 Fix a bug I made in programming the bootloaders via jtag 2011-11-12 21:29:46 -06:00
Corvus Corax
198c819943 some more makefile cleanup 2011-11-11 11:54:31 +01:00
Corvus Corax
cd473ed1fd some makefile cleanup 2011-11-11 11:51:45 +01:00
Corvus Corax
aa69027cb2 Merge branch 'next' into CC_GPS 2011-11-11 11:44:11 +01:00
Corvus Corax
61ecc0d310 make optional modules check themselves if they should start or not 2011-11-11 11:39:57 +01:00
Corvus Corax
e03e3c2ed8 removed "special code" to start optional modules 2011-11-11 11:22:54 +01:00
Corvus Corax
5e14e69a08 Revert "OpenPilot: Initialize optional modules based on UAVObject"
This reverts commit 9f03ba178b.
2011-11-11 11:08:49 +01:00
Corvus Corax
9679638244 Revert "Modules/GPS: removed comment line"
This reverts commit 109a58ef30.
2011-11-11 11:07:02 +01:00
Corvus Corax
88f161dd42 Revert "Makefiles: fixed comment line"
This reverts commit 0065842de7.
2011-11-11 11:06:32 +01:00
Oleg Semyonov
8f77d07119 System Module: fix stupid out of memory detection bug 2011-11-07 19:14:55 +02:00
Oleg Semyonov
f5e82b8242 spektrum: rename Spektrum to DSM (DSM2/DSMJ/DSMX used by Spektrum and JR radios)
No code changes, just file, variable and define names are changed.

First, it better describes the serial protocol used by DSMx satellite
receivers. Second, many people using Spektrum radio, assume Spektrum
protocol. This is the attempt to address those inaccuracies.
2011-11-04 21:40:34 +02:00
Oleg Semyonov
8ed23c76b7 spektrum: fix OpenPilot MB target (deprecated) after spektrum changes 2011-11-04 20:43:49 +02:00
James Cotton
c0f16d2f44 Revolution: Configure clocks correctly 2011-11-03 20:12:34 -05:00
James Cotton
a2015a4f8d Compiled and flashing 2011-11-02 13:20:39 -05:00
James Cotton
0ce80e02f5 Compiles now 2011-11-02 02:51:20 -05:00
Oleg Semyonov
481bff2578 spektrum: code style fixes accoring to OPReview-122 2011-11-01 18:48:07 +02:00
James Cotton
0931a518d4 Bring F4 PiOS up to date with some of our timer conventions 2011-11-01 04:39:51 -05:00
James Cotton
48d2e038bb More work to the revolution build 2011-11-01 04:39:20 -05:00
James Cotton
4d6f810984 Make ADC driver play properly when not included 2011-11-01 03:22:48 -05:00
James Cotton
7eee6bf85b Create revolution board file 2011-11-01 03:22:19 -05:00
James Cotton
7ee4a0412c Work on the build process and include FreeRTOS 2011-11-01 03:20:25 -05:00
James Cotton
9607da9c62 Add some drivers to the device specific library for now until the exti problems
are fixed
2011-11-01 03:19:58 -05:00
James Cotton
2cc0b301ce Make some of the StdPeriph function calls const where appropriate 2011-11-01 03:18:59 -05:00
James Cotton
cdb6059752 Coyp over some of how the PH build system works 2011-11-01 01:36:52 -05:00
James Cotton
9bdd021b2e Make new Revolution target 2011-11-01 01:17:59 -05:00
James Cotton
3388843fb5 Merge in PixHawk F4 work 2011-11-01 01:09:55 -05:00
Oleg Semyonov
a8b36ddd28 HwSettings: disable GPS and telemetry port speed updates at run-time
This is to be consistent across the HwSettings object fields which are
read on boot only by convention.
2011-10-31 23:04:17 +02:00
Oleg Semyonov
0116e6a007 spektrum: rework DSM2/DSMJ/DSMX driver for explicit DSMX resolution support
- both CC serial ports are now disabled by default (no telemetry);
- serial ports now have DSM2, DSMX (10bit) and DSMX (11bit) options;
- ReceiverGroups now have DSM (MainPort) and DSM (FlexiPort) options.

For DSM2 protocol there is an explicit resolution bit in the stream, so
the DSM2 should be selected. For DSMX there is no such bit, and user
should choose the resolution from the list configuring the spektrum port.
ReceiverGroups have single DSM option which is handled by the same driver.

Downside: this implementation saves received frame first, unrolls by the
end of frame. This should be ok, but may be improved by unrolling channels
on the fly in the rx callback.

Another minor difference is that a ChannelGroup is now bound to port:
DSM (MainPort) or DSM (FlexiPort). This was considered as acceptable
solution in order to not have 6 DSM options for each ChannelGroup and
even more in case of new DSM protocol variations.

Known problem: it is not possible to choose same protocols like
DSM2/DSM2 for two ports. It can be enabled by adding an exception to
common rule, though.

The DSMX throttle channel misbehavior (zero value) is not treated
specially yet. It should trigger the failsafe being out of bounds.
More info and data dumps are required to handle this properly.
2011-10-30 19:29:03 +02:00
James Cotton
f019412209 Various tweaks to get the F4 working 2011-10-26 21:56:00 -05:00
James Cotton
d786c152e3 Merge F4 files from PixHawk branch 2011-10-26 18:23:35 -05:00
James Cotton
0f8ae1e076 Merge branch 'next' into ins
Conflicts:
	flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-10-26 13:18:44 -05:00
Oleg Semyonov
a19bbba858 Merge branch 'next' into os/alternative_spektrum_driver 2011-10-25 11:55:05 +03:00
James Cotton
27bf2b383e Merge remote-tracking branch 'origin/james/remap_outputs' into next 2011-10-23 18:35:25 -05:00
Oleg Semyonov
4ed23dd891 Output Remapping: renamed PPM_SERVO option to PPM+Servo 2011-10-24 00:34:01 +03:00
James Cotton
23150a48fe Merge remote-tracking branch 'origin/os/sbus_dynamic_malloc' into next 2011-10-23 15:26:26 -05:00
James Cotton
24d6ae731b Output Remapping: Added option to just use servo outputs on input lines but not
PPM.  This saves resources.  Good suggestion Os.  In this configuration we
could allow 12 channels of output but for now I'll leave it capped at 10 to
lessen resources on the mixer table.

With spektrum and camera stab enabled there was
1632 bytes heap remaining
180 bytes irq stack remaining
2011-10-23 15:21:40 -05:00
Oleg Semyonov
2a98a52f4c gps: include optional GPS module by default 2011-10-23 00:41:18 +03:00
Oleg Semyonov
6a9208e8c3 Merge branch 'next' into os/TxPID-module 2011-10-22 23:34:58 +03:00
Oleg Semyonov
f71361ca83 Merge branch 'next' into os/GPS-on-CopterControl_next_v2
Conflicts:
	flight/Modules/System/systemmod.c
2011-10-22 23:00:47 +03:00
Oleg Semyonov
58d0812309 sbus: better frame syncronization, some cosmetic changes
In the previous version the decoder could in rare cases get synced from
the middle of data stream in case of data byte equal to the S.Bus start
of frame (SOF) byte (wrong data will be rejected but it was not perfect).
Now it waits for the real start of frame and then checks the SOF byte.
2011-10-22 00:44:09 +03:00
Oleg Semyonov
62bca651d5 spektrum: alternative DSMx (DSM2/DSMJ/DSMX) driver
- does not glitch when used in 2-frame mode (DM9, 9503, etc)
- does NOT provides yet DSMX stream decoding - do NOT merge
- uses a bit more time in the interrupt, but frees 16 bytes of RAM.
  This is done to help decoding the weird DSMX stream which does not
  contain explicit resolution/frame/lost frames info and needs special
  processing (to be done yet).
2011-10-21 23:35:17 +03:00
Corvus Corax
167010e8a0 UAVTalk: Fixed bug in parser failing to handle length of multi-instanceobjects
UAVTalk (on GCS): Fixed a null pointer dereference when receiving in a NACK
2011-10-21 02:04:29 +02:00
Oleg Semyonov
92b81e3f88 sbus: refactor the code using unified PIOS RCVR driver structure
- allow more than one S.Bus receiver (needs hardware support)
- use dynamic memory allocation (frees around 72 bytes of RAM when unused)
2011-10-20 18:23:23 +03:00
James Cotton
e0cc289de0 Remapping inputs to outputs: Drop S2 so there are ten outputs
Output 7 = S3 input
Output 8 = S4 input
Output 9 = S5 input
Output 10 = S6 input

Also fix bug that prevented them outputting signal
2011-10-20 06:28:07 -05:00
Corvus Corax
cb8d9c791c PiOS.posix: fixed missing defines in pios_config. removed platform specific inclde from Systemmod (pios_config.h gets included from pios.h) 2011-10-19 22:28:39 +02:00
Corvus Corax
b00751af91 Systemmod bugfix: UAVObject used without Initialization 2011-10-19 22:28:08 +02:00
Corvus Corax
e244581b18 PiOS.posix: bugfix in pios_udp com driver - data send loop 2011-10-19 13:37:35 +02:00
James Cotton
9312610f3b Output: Enable two more channels to support octo + camera 2011-10-15 16:59:42 -05:00
James Cotton
ce7f424131 CC: When receiver port is set to PPM_SERVO use the spare pins as outputs 2011-10-15 16:59:42 -05:00
James Cotton
19c9528d80 CopterControl: Create structures to supply more output channels 2011-10-15 16:59:42 -05:00
Corvus Corax
425bc5abbe PiOS.posix: PIOS_RCVR : fix posix port of pios_rcvr to allow compilation on 64bit systems 2011-10-11 18:07:04 +02:00
James Cotton
9cbb48417a Merge branch 'long_erase_settings' into next 2011-10-08 14:18:56 -05:00
James Cotton
0f1a6264de Fix jtag programming of bootloader 2011-10-08 14:14:11 -05:00
James Cotton
5dc0f397a6 OP-499 Erase settings bug: Make hte flash chip read a wrong value for 1 second
before wiping settings.
2011-10-07 14:08:56 -05:00
Oleg Semyonov
7800fbe6de gps: initialize GPS UAVO and start GPS module only if port is configured 2011-09-29 00:41:51 +03:00
Oleg Semyonov
469feecb13 pios: remove some unused #defines 2011-09-28 23:40:12 +03:00
Oleg Semyonov
ed8cf89888 Initcall: fix compilation errors for firmware which does not use Initcalls 2011-09-28 22:57:18 +03:00
Oleg Semyonov
a38c569cd0 HwSettings: move Telemetry and add GPS port speed to the HwSettings object
TelemetrySettings object removed (saved 200+ bytes of RAM). Telemetry
port speed moved to the HwSettings object. Added GPS port speed setting.
GCS code updated to reflect changes and support both fields.
2011-09-28 22:11:42 +03:00
Oleg Semyonov
53c098dd08 Merge branch 'next' into os/GPS-on-CopterControl_next_v2
Conflicts:
	flight/OpenPilot/System/pios_board.c
	flight/OpenPilot/UAVObjects.inc
	shared/uavobjectdefinition/hwsettings.xml
2011-09-28 22:02:02 +03:00
James Cotton
fef9570e4d INS: Get bootloader working again 2011-09-27 01:17:14 -05:00
James Cotton
cf6a59468f Merge branch 'next' into ins
Conflicts:
	flight/INS/Makefile
	flight/Project/OpenOCD/stm32f1x.cfg
	flight/Project/OpenOCD/stm32f2x.cfg
	make/firmware-defs.mk
2011-09-27 01:02:06 -05:00
James Cotton
f1e70d2ff5 Merge remote-tracking branch 'origin/msmith/OP-578' into next 2011-09-23 16:43:00 -05:00
Oleg Semyonov
a9137e9db1 TxPID: add update mode option as a workaround for GCS interaction 2011-09-19 16:16:28 +03:00
Oleg Semyonov
aad263bdd8 TxPID: enable ramp-shaped throttle-dependent PIDs
Besides of knob PID tuning it is now possible to use throttle channel
to ramp-shape PID coefficients. This can be used to lower some PIDs on
VTOL while sinking to prevent wobble.

To use the feature select throttle as control input, choose throttle
range max and min values, assign the instance to particular PID
coefficient and define a range for it. When throttle is lower than
defined throttle range min value (or higher than max), then min and max
PID values will be used accordingly. Changing throttle from throttle
min to max will linearly scale PID value.

Note that it is possible to set MinPID > MaxPID. In that case increasing
control input value will decrease the PID coefficient.

Up to 3 independent instances can be configured. The number can be
increased changing the UAVO definition, but at the cost of extra RAM.
2011-09-18 14:38:50 +03:00
Oleg Semyonov
d923117c25 TxPID: optional module to tune PID settings using R/C transmitter
This module will periodically update values of stabilization PID settings
depending on configured input control channels. New values of stabilization
settings are not saved to flash, but updated in RAM. It is expected that the
module will be enabled only for tuning. When desired values are found, they
can be read via GCS and saved permanently. Then this module should be
disabled again.
2011-09-17 22:49:51 +03:00
James Cotton
a1aeab9393 Increase size of framing signal for logging 2011-09-15 10:19:59 -05:00
James Cotton
0d3d5ad094 INS: Get rid of old code that tried to detect when indoor mode wasn't called
for a while
2011-09-14 17:30:02 -05:00
James Cotton
acf2aa218b Merge remote-tracking branch 'origin/stac/upgrade-to-openocd-0.5.0' into next 2011-09-14 11:49:01 -05:00
James Cotton
06190d1d95 Fix altitude hold dead band range 2011-09-13 10:34:56 -05:00
James Cotton
3b399ad44c Increase gyro bias rate again 2011-09-13 08:30:50 -05:00
Oleg Semyonov
c92870d29e Remove unused file (versionblob.py) 2011-09-13 16:10:10 +03:00
James Cotton
1783817b96 INS: First pass at altitude hold code 2011-09-13 01:44:53 -05:00
James Cotton
400ba3bd47 Merge branch 'next' into ins 2011-09-12 18:57:11 -05:00
James Cotton
c36297227d Stabilization fix typo 2011-09-12 11:56:01 -05:00
James Cotton
63bb80649b Merge branch 'max_rate_for_attitude' into next 2011-09-12 11:51:03 -05:00
James Cotton
00c9d62f6a INS: Miscellaneous changes for debugging handling and also some stuff for GPS
signal loss.
2011-09-12 11:17:17 -05:00
James Cotton
5b836db54c INS/Guidance: Convert distance to using m instead of cm. This is mainly to be
able to use NAN to indicate when values aren't valid from INS.
2011-09-11 23:02:05 -05:00
James Cotton
a682d5deb6 INS: In indoor mode if GPS is found use that to populate PositionActual 2011-09-11 22:53:07 -05:00
James Cotton
8f2fad6918 Fix for merging with the collective channel with the swashplate fix. 2011-09-11 18:53:10 -05:00
James Cotton
6457276438 Merge branch 'input_configuration' into next 2011-09-11 18:52:35 -05:00
Oleg Semyonov
f5369f9338 Input Configuration: support all 18 S.Bus input channels 2011-09-12 02:06:50 +03:00
Oleg Semyonov
7b3056d10f Input Configuration: fix S.Bus receiver in multi-receiver code 2011-09-12 02:06:48 +03:00
James Cotton
b38081bb1b Stabilization: When in none mode zero the integral accumulators for rate and
attitude loops.  When not using outer loop zero that accumulator.
2011-09-11 16:33:38 -05:00
Mike Smith
deade53c5d OP-578 - check for CODE_SOURCERY before setting -fpromote-loop-indices 2011-09-11 10:49:09 -07:00
James Cotton
6945f17eba Make the StabilizationSettings.MaxRate field only apply to the stabilized
modes.  That way ManualRate can exceed MaxRate.
2011-09-11 12:27:17 -05:00
James Cotton
b8bb2dd2ca Merge branch 'next' into ins 2011-09-10 17:02:15 -05:00
James Cotton
aad41ebb4f Merge branch 'mainboard_receiver_fix' into next 2011-09-10 16:01:22 -05:00
James Cotton
01cd2ded57 Mainboard config: The rcvr port is used for PPM/PWM/Spektrum so make these one
setting that is mutually exclusive.
2011-09-10 14:20:51 -05:00
James Cotton
4847a04db8 Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
TIM5-8.  Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update.  I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 14:20:40 -05:00
James Cotton
eb191d869a Mainboard: Get spektrum working again. 2011-09-10 14:19:54 -05:00
James Cotton
c2a8cc3faa Mainboard config: The rcvr port is used for PPM/PWM/Spektrum so make these one
setting that is mutually exclusive.
2011-09-10 14:19:12 -05:00
James Cotton
f725fbe128 CopterControl: Fix build due to changing the AttitudeRaw structure. 2011-09-10 13:56:00 -05:00
James Cotton
2871c75a79 Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
TIM5-8.  Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update.  I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 13:53:38 -05:00
James Cotton
199db1362d Actuator: Found a bug in actuator that affects how throttle and pitch curves
were used.  Basically 80% was always 100%.  This should make hovering better
and fix heli swash pitch.
2011-09-09 19:40:58 -05:00
James Cotton
1d2a424296 Mainboard: Get spektrum working again. 2011-09-09 09:42:13 -05:00
James Cotton
3239fdf21b Merge branch 'next' into ins
Conflicts:
	flight/CopterControl/Makefile
	flight/OpenPilot/System/pios_board.c
	flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-09-09 08:33:34 -05:00
James Cotton
dfe91af686 UAVObjects: Space allocated in manualcontrolcommand did not match the number of
channels in settings.  Fixed this and added assertion to catch in future.
2011-09-09 01:17:13 -05:00
James Cotton
22821e3c93 HMC5883: Missed a channel for HMC5883 2011-09-08 22:25:35 -05:00
James Cotton
552022250b INS: Disable power up checks until these are made more reliable and remove some
debugging outputs.
2011-09-08 21:44:27 -05:00
James Cotton
e79e8cdbde INS data output: Add the latency the logged messages 2011-09-08 03:39:39 -05:00
James Cotton
c87a042195 IMU3000: For now sample at 1k which allows us to bring down the I2C clock rate
to 400k
2011-09-08 03:37:51 -05:00
James Cotton
0eb4fd113b PiOS BMA180: Increase the comms speed for BMA180 and perfom SPI without
callback.  This takes less time.
2011-09-08 03:28:32 -05:00
James Cotton
d7ea1fc306 PiOS I2C: Swap the expected return value of the F2 pios i2c calls 2011-09-08 01:32:27 -05:00
James Cotton
1a5fd9f30e Heli: Added an explicit collective channel. Also make the default channel
number 0 since that is not invalid.
2011-09-07 01:48:39 -05:00
James Cotton
72625d9971 PiOS RCVR: Make the public API use a 1 based indexing for channel numbers.
This may or may not get into next, but if so anyone following it MUST
reconfigure their inputs.
2011-09-06 16:39:08 -05:00
James Cotton
8f7712435f Merge branch 'safer_failsafe' into next 2011-09-06 16:23:11 -05:00
James Cotton
627c931c79 PiOS I2C: Swap the convention of returned values for I2C 2011-09-06 03:27:20 -05:00
Sambas
a8ef57c6d6 Redo DX8 changes 2011-09-06 08:40:10 +03:00
Stacey Sheldon
1e9bcf8426 openpilot: fix merge of unidirectional gps feature branch 2011-09-04 23:22:29 -04:00
James Cotton
465527a980 INS: Enable GPS parsing. GPS data is processed on INS now. HomeLocation and
WMM are not currenly implemented.
2011-09-04 20:03:04 -05:00
James Cotton
7ff5cd7655 INS: Try and get load down on event system. 2011-09-04 16:21:04 -05:00
James Cotton
cd8ebdf427 INS: Store the gyro bias in the settings so it doesn't get overwritten 2011-09-04 15:21:53 -05:00
James Cotton
b1e0366525 Merge remote-tracking branch 'origin/CorvusCorax_unidirectional-GPS-com' into next
Conflicts:
	flight/OpenPilot/System/pios_board.c
2011-09-04 13:33:52 -05:00
James Cotton
82c5f9f0f4 PIOS_RCVR: Document return values better and use enum for them 2011-09-04 12:37:39 -05:00
James Cotton
533ae9bb41 SBUS: Missed handling the S.Bus failsafe. Now returns PIOS_RVCR_TIMEOUT for
either SBus failsafe mode or when no data for 100 ms.
2011-09-04 12:15:34 -05:00
James Cotton
5e2a36aa03 Merge branch 'stac/allocate-device-instances-from-heap' into next 2011-09-04 12:03:42 -05:00
James Cotton
c326c0941d INS: Work on initialization. Improve the zeroing of the gyros at powerup. 2011-09-04 11:49:15 -05:00
James Cotton
510a1760ca When disconnected set any accessory channels to neutral. Otherwise the
actuator module could keep the pitch at high.  However the "right" thing to do
seems very specific.  For example negative pitch is probably preferable.
2011-09-04 03:45:36 -05:00
James Cotton
89e640ae7f Make sure all receiver drivers return correct constants for invalid channels. 2011-09-04 01:24:16 -05:00
James Cotton
51967ae63f OP-571 PIOS_PWM: Add back the PWM supervisor 2011-09-04 01:17:40 -05:00
James Cotton
20de046292 Force system to be disarmed when a bad configuration is present 2011-09-04 00:43:33 -05:00
James Cotton
d3de8ff0ef OP-559: Process the arm status when disconnect and allow it to timeout and
disarm
2011-09-03 23:57:51 -05:00
James Cotton
697dbf4f5f OP-568 PIOS_RCVR: Standardize the values that are returned from the PIOS_RCVR and make
them symbolic constants.
- A timeout is 0
- A missing driver is 65534
- An invalid channel is 65535

ManualControl: Make it deal with the values explicitly.  A timed out value
should not be treated like a minimum duration signal.  Instead it does not
updated the scaled value but marks the data window as invalid to trigger the
failsafe.
2011-09-03 23:50:56 -05:00
James Cotton
dae11cf877 INS Logging: Enable temperature reading from gyro and accel (may be removed in
future), push it into UAVO and introduced a logging mode for INS that outputs
all sensor data from aux port.
2011-09-03 15:10:47 -05:00
James Cotton
5eaebac8d8 INS: Get the aux uart working. All F2 GPIO pins need to be remapped to work. Good thing to remember. 2011-09-02 17:04:39 -05:00
James Cotton
63f64003e5 INS: Change how the initialization of algorithms is handled to ensure sensor
dat always good
2011-09-02 13:50:36 -05:00
James Cotton
c40e5800ab BMA180: Enable the EEPROM writing on startup so settings take the first time. 2011-09-02 13:28:36 -05:00
James Cotton
e0ed82eef0 INS Settings: Use the calibration data on the sensors 2011-09-02 13:28:01 -05:00
James Cotton
1d04715476 INS: Rework how the sensor calibration behaves and clean up the interface a
bit.
2011-09-02 13:24:35 -05:00
Mathieu Rondonneau
ae1dd945b1 Fix win32 sim macro problem
This is to get the macro in pios.win32 in sync with sim posix and
real flight.
2011-09-01 21:50:13 -04:00
James Cotton
3b20df22d1 Updates to config gadget for new INS objects
Make scope gadget check if object exists before using it.  Avoids segfaults
when scoped objects disappear.
2011-09-01 12:21:37 -05:00
James Cotton
612d3336b4 This patch breaks backward compatibility with AHRS solidly.
Move the configuration files for INS from AHRS* to INS*.  Strip out unused
fields in settings and merge calibration and settings since settings has
basically no information.
2011-09-01 12:21:33 -05:00
James Cotton
37878ed4e8 Get the OpenPilot compiling again using a previvous pios_board until doing a
proper merge with next
2011-09-01 03:31:23 -05:00
Stacey Sheldon
eea011c53b openpilot: fix compile error on OP 2011-09-01 03:31:23 -05:00
Stacey Sheldon
43b31efb76 pios: allocate driver instance data from heap
Allocate per-instance data for drivers from the heap
rather than as static variables from the .data segment.

This converts > 800 bytes of RAM from being always consumed
as static data into being allocated from the heap only when
a particular feature is enabled in the hwsettings object.

A minimal config (no receivers, flexi port disabled, main port
disabled) leaves 2448 bytes of free heap.  That's our new baseline.

Approximate RAM (heap) costs of enabling various features:
 + 632 Serial Telemetry (includes 400 bytes of Rx/Tx buffers)
 + 108 PWM Rcvr
 + 152 PPM Rcvr
 + 112 Spektrum Rcvr
 + 24  S.Bus (Should be closer to 68 since driver is still using
              static memory)

There are still some drivers that pre-allocate all of their memory
as static data.  It'll take some work to convert those over to
dynamically allocating their instance data.
2011-08-31 22:35:03 -04:00
Stacey Sheldon
86ce79af1d openpilot: fix compile error on OP 2011-08-31 21:43:57 -04:00
Stacey Sheldon
2f86e4dd4f Make PWM/PPM and Servo drivers play nicely together
PWM and PPM can now coexist in the same load and be
selected at boot time via the hwsettings UAVObject.

This is basically a complete restructuring of the
way the drivers interact with the TIM peripheral in
the STM32.

As a side effect, the PWM and PPM drivers are now
ready to support multiple instances of each.

This also provides the first step toward being able
to reassign some of the PWM input pins to be servo
output pins.  Still more work required, but this is
a good start.
2011-08-27 21:39:56 -04:00
Stacey Sheldon
b3c43da90a stdperiph: Make TIM related APIs use const pointers
This allows the configuration parameters to be stored in
flash instead of copied to RAM.
2011-08-27 21:39:17 -04:00
Stacey Sheldon
a72c657e21 rcvr activity: Speed up activity acquisition
Activity detection logic can now move through
the active receivers more quickly.
2011-08-27 20:17:56 -04:00
James Cotton
6514fd95c7 Also initialize the ReceiverActivity object in manual control 2011-08-27 16:08:57 -05:00
James Cotton
c5746335c6 Initialize GCSReceiver object if it is being used 2011-08-27 15:57:09 -05:00
James Cotton
dc340596f5 Merge branch 'next' into GCS_ChangesToUI-RuntimeCFG
Conflicts:
	flight/CopterControl/Makefile
	flight/OpenPilot/System/pios_board.c
	flight/OpenPilot/UAVObjects.inc
	flight/PiOS/STM32F10x/pios_spektrum.c
	ground/openpilotgcs/src/plugins/config/config.pro
	ground/openpilotgcs/src/plugins/config/configgadget.qrc
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	shared/uavobjectdefinition/hwsettings.xml
2011-08-27 15:26:05 -05:00
Stacey Sheldon
f29b99521e openocd: collapse JTAG rules for STM32F1 and STM32F2 2011-08-27 10:43:02 -04:00
Stacey Sheldon
5a51077493 openocd: add support for RTOS autodetection
This allows things like 'info threads' to work in gdb when
combined with openocd 0.5.0+.
2011-08-27 10:38:50 -04:00
Stacey Sheldon
89d23df8cd openocd: Add default config for stm32f2x
Pulled from origin/james/ins.
2011-08-27 10:37:20 -04:00
Stacey Sheldon
3d22258843 Merge remote branch 'origin/james/openocd' into upgrade-to-openocd-0.5.0 2011-08-27 09:19:46 -04:00
James Cotton
1d77d77832 Merge branch 'stac/use-malloc-failed-hook' into next 2011-08-27 00:24:13 -05:00
James Cotton
274333a9bf Merge branch 'next' into stac/use-malloc-failed-hook 2011-08-27 00:12:45 -05:00
James Cotton
55f64802d1 Also enable malloc error catching on OpenPilot 2011-08-27 00:12:16 -05:00
Corvus Corax
0065842de7 Makefiles: fixed comment line 2011-08-25 16:28:34 +02:00
Corvus Corax
658ae3f809 Modules/System: removed comment line 2011-08-25 16:26:46 +02:00
Corvus Corax
109a58ef30 Modules/GPS: removed comment line 2011-08-25 16:25:19 +02:00
Corvus Corax
8173c7b7c6 Refactor GPS_PURISTIC into GPS_MINIMAL 2011-08-25 15:44:49 +02:00
Corvus Corax
3690586f3a Optional Modules: Forced re-generation of mod init.h when makefile has changed 2011-08-25 15:42:11 +02:00
Corvus Corax
1d797bf004 Fixed error introduced by merge 2011-08-25 15:40:45 +02:00
Corvus Corax
c63a10d05e CopterControl: Fix GPS buffer sizes 2011-08-25 15:37:38 +02:00
Corvus Corax
4bd72923e5 Merge branch 'CorvusCorax_unidirectional-GPS-com' into CC_GPS
Conflicts:
	flight/Modules/GPS/GPS.c
	flight/Modules/GPS/GTOP_BIN.c
	flight/Modules/GPS/NMEA.c
	shared/uavobjectdefinition/hwsettings.xml
2011-08-25 15:33:23 +02:00
Corvus Corax
54ecf233f3 Modules/PS: typo fix 2011-08-25 15:13:50 +02:00
Corvus Corax
7e396efbbf Modules/GPS: Assert buffer creation 2011-08-25 15:11:29 +02:00
Corvus Corax
dfdea16065 Modules/GPS: Make GPS COM unidirectional (rx only) and use smaller, runtime allocated heap buffers 2011-08-25 14:46:30 +02:00
Corvus Corax
8b7fea0d19 Merge branch 'OP-567 GPS com layer fix' into next 2011-08-25 13:35:49 +02:00
Corvus Corax
697ac6067e OP-567 Modules/GPS: Block in PIOS_COM, not in TaskDelay - or we will miss updates! 2011-08-25 13:33:41 +02:00
James Cotton
5f7a9b513a Merge branch 'sambas/dsmx_stuff' of ssh://git.openpilot.org/OpenPilot into next
Conflicts:
	shared/uavobjectdefinition/hwsettings.xml
2011-08-24 11:37:30 -05:00
James Cotton
1477ea6e94 Make mag updated flag always true when it's updated. Responsibility of INS
algorithm whether to use data.
2011-08-22 03:05:02 -05:00
James Cotton
4e59e697af IMU3000: Sometimes the irq is called before previous I2C transaction. This
isn't good but for now just deal with it.  Need DMA I2C driver.
2011-08-22 02:34:40 -05:00
James Cotton
8c16f614f2 INS: Use the data from the BMP085 and feed into EKF 2011-08-22 02:32:40 -05:00
Stacey Sheldon
edc0caf521 heap: set memory critical alarm on malloc failures
Activate the FreeRTOS malloc failed hook and use it
to set the memory critical alarm.
2011-08-21 23:14:32 -04:00
Corvus Corax
838149b53f GPS: homelocation init is optional, satellites must be initialized 2011-08-21 18:20:33 +02:00
Corvus Corax
0ce337b42d UAVTalk: fix off by one error preventing the largest UAvObject (gpssatellites) from being sent. 2011-08-21 18:15:10 +02:00
James Cotton
e4e952f270 Manual control settings needs to be initialized in OpenPilot board file for
spektrum to work
2011-08-21 02:21:09 -05:00
James Cotton
04072accd4 Manual control settings needs to be initialized in OpenPilot board file for
spektrum to work
2011-08-21 02:20:10 -05:00
James Cotton
b1c522def3 Merge remote-tracking branch 'origin/next' into ins 2011-08-21 01:34:40 -05:00
James Cotton
38d9df8fcb HMC5883: Clean up the mag driver 2011-08-21 01:29:55 -05:00
James Cotton
f756e9cbc8 INS: Swap the mag axis 2011-08-21 01:29:24 -05:00
James Cotton
a642f3672c Report running time per loop in us 2011-08-21 00:54:31 -05:00
James Cotton
e1afc9a19a Merge branch 'next' into ins
Conflicts:
	flight/Libraries/inc/fifo_buffer.h
	flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
	flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-21 00:47:43 -05:00
James Cotton
c82aa64c53 INS: General clean up to deal with new driver formats. Also automatically
monitors the EKF rate.
2011-08-21 00:42:06 -05:00
James Cotton
af69e0a1a8 BMA180 driver; Don't externalize the fifo buffer but handle it in the driver
layer.  General driver cleanup.
2011-08-21 00:40:10 -05:00
James Cotton
8ae53a4f97 PiOS: Cleanup IMU3000 driver a fair bit. 2011-08-21 00:39:20 -05:00
James Cotton
368323fd59 Merge remote-tracking branch 'origin/james/erase_settings' into next 2011-08-20 13:07:01 -05:00
Corvus Corax
1ad65e0718 Fixed include in sysstemmod. pios_config.h should not be included explicitly. 2011-08-20 15:04:00 +02:00
Corvus Corax
9f03ba178b OpenPilot: Initialize optional modules based on UAVObject 2011-08-20 15:03:31 +02:00
Corvus Corax
4f1f20e801 OpenPilot: Bugfix: For some reason Debugging information didn't work. Symbols are created now 2011-08-20 14:37:53 +02:00
Corvus Corax
d21f6705aa Disabled double definition of pmlib compilation in openPilot/Makefile - target gencode 2011-08-20 13:11:15 +02:00
Corvus Corax
5ea35bb28c Make Diagnostic UAVObjects optional in OP and Sim_Posix (but enabled by default) 2011-08-20 13:06:58 +02:00
Corvus Corax
7395a369a9 Optional Modules: Ported optional module concept to OpenPilot and Sim_Posix 2011-08-20 13:02:44 +02:00
Corvus Corax
53d0732fc6 Enable GPS module as "optional module" in CooterControl 2011-08-20 01:25:49 +02:00
Corvus Corax
dfd301571a HWSettings: Allow late Initialization and Start of Modules as defined in Makefile(available modules) and UAVObject(actually started modules) 2011-08-20 01:24:06 +02:00
James Cotton
952b4e1809 Have to speed up the comms rate for gyro to handle the oversampling we are
using.
2011-08-19 14:35:13 -05:00
James Cotton
cefc2b8c2e Clean up main INS function a bit. 2011-08-19 14:34:56 -05:00
Corvus Corax
b75890fcd4 Merge branch 'next' into CC_GPS 2011-08-19 21:34:38 +02:00
James Cotton
d103541970 IMU3000: Make the IRQ trigger the callback based I2C read. Drop the
temperatured data from the FIFO stream.  Add some flags to stop the callbacks
trampling over the configuration.
2011-08-19 14:28:33 -05:00
James Cotton
3465eb2f30 PiOS F2 I2C: Add a callback based transfer. This needs merging into the main
transfer function like SPI but I will leave that for now to avoid creating a
lot of changes in the main code.
2011-08-19 13:38:11 -05:00
Corvus Corax
85aef9c7b4 OpenPilot: bugfix: Add GPS tx buffer by default (needed until GPS has been refactored to not send or only send when configured so) 2011-08-19 20:22:05 +02:00
Corvus Corax
2062ec0aeb AHRS_COM: Initialize transpherred objects before using them 2011-08-19 19:52:27 +02:00
Corvus Corax
5e4941f7cb PiOS.posix: make PiOS.posix bail in case of a Panic with an error message 2011-08-19 18:41:59 +02:00
James Cotton
7444337418 F2 PiOS I2C: Add a poor man semaphore here in case we start calling I2C
transfers from IRQ.  Also catch the double 0x70084 event which was locking up
the FSM with -Os enabled.  I did this in a cheating way (filtering the event
based on state) but it's the cleanest I can see.  Hopefully a DMA version of
I2C will fix this.
2011-08-19 11:39:50 -05:00
Corvus Corax
9bba1f7ae9 Posix: fix object initialization where necessary 2011-08-19 18:36:30 +02:00
James Cotton
b0e04e5f79 PIOS SPI: Make sure the non-freertos busy flag inits to zero 2011-08-19 10:52:50 -05:00
James Cotton
03a8bd7674 Statically initialize object handles to null to make sure the uavobjectmanager
can catch it and return -1.  Do NOT panic when they are null as this is
something that should be caugth at run time in some cases.

Ideally as a compromise in a task start it could have a set of
PIOS_Assert(ObjectNameHandle()) to make sure the minimal set of objects it
needs are there.
2011-08-19 10:12:39 -05:00
James Cotton
ab7e57ad2b Initialize objects for guidance in the correct place. Init some objects in
pios_board_posix since AHRSComms not around.
2011-08-19 09:52:05 -05:00
James Cotton
ced29e221e Revert "Debugging: Add PIOS_DEBUG_Panic() call wen an UAVObject handle is requested but object is uninitialized, make PiOS.posix bail in case of a Panic with an error message"
We do not want to panic in this case as we want the ability to detect if
objects exist at run time

This reverts commit 78e42470d4.
2011-08-19 09:45:10 -05:00
James Cotton
482bec497b Revert "Fixed modules that didn't initialize used UAVObjects correctly"
Modules should initialize their settings and the objects they source.  Not just
everything.

This reverts commit 9ad85e9b7b.
2011-08-19 09:44:38 -05:00
Corvus Corax
69f10cd6d0 PiOS.posix: bugfix in COM_UDP 2011-08-19 13:54:16 +02:00
Corvus Corax
adfb6eccc2 fixed usage of GPS buffer in sim_posix 2011-08-19 13:20:40 +02:00
Corvus Corax
9ad85e9b7b Fixed modules that didn't initialize used UAVObjects correctly 2011-08-19 13:20:15 +02:00
Corvus Corax
78e42470d4 Debugging: Add PIOS_DEBUG_Panic() call wen an UAVObject handle is requested but object is uninitialized, make PiOS.posix bail in case of a Panic with an error message 2011-08-19 12:56:26 +02:00
Corvus Corax
01a844e0da Fixed redefinition of configCHECK_FOR_STACK_OVERFLOW in OpenPilot/System/inc/FreeRTOSConfig.h 2011-08-19 12:11:05 +02:00
Corvus Corax
f86e53bf91 Merge branch 'OP-536_CorvusCorax_ObjectOrientedFirmwareUAVTalk' into next
Conflicts:
	flight/Modules/Telemetry/telemetry.c
2011-08-19 12:10:40 +02:00
James Cotton
f85ae84ec3 Merge branch 'camera_stabilization' into next
Conflicts:
	flight/OpenPilot/System/pios_board_posix.c
2011-08-19 01:48:24 -05:00
James Cotton
c7034ef8a6 IMU3000: Fix a constant that made the sampling rate 1kh instead of 8 internaly.
No downsample that (in IMU3000) by 8 to get gyros at 1khz.  Well about 256 Hz
nyquist and shouldn't cause substantial issues for EKF.
2011-08-18 13:01:51 -05:00
James Cotton
bdb9dc0a54 BMA180: Use DMA for getting the accels and use callback to push it onto the
stack.
2011-08-18 12:51:22 -05:00
James Cotton
3b6ffc8afa PiSO SPI: Implement a poor mans semaphore for non-freertos systems. 2011-08-18 12:51:00 -05:00
James Cotton
294e0cbdff IMU3000: Change IMU3000 api right now so it only reads one element from the
fifo but swaps the endian appropriately.
2011-08-18 11:03:56 -05:00
James Cotton
11ac0707da BMA180: Reset BMA180 chip at reconfiguration. 2011-08-17 06:49:56 -05:00
James Cotton
29026db5d5 Refactor the INS code out a bit but still a mess. 2011-08-17 06:15:14 -05:00
Corvus Corax
6fe495c088 Merge remote branch 'origin/next' into OP-536_CorvusCorax_ObjectOrientedFirmwareUAVTalk
Conflicts:
	flight/Modules/Telemetry/telemetry.c
2011-08-17 08:30:32 +02:00
James Cotton
c0ead372e1 INS: Change LED flashing to indicate connected. 2011-08-16 11:30:38 -05:00
James Cotton
71a1cdff62 PiOS SPI: For F2 need to have the same receive and transmit length when using
CRC.  This wasn't the case on F1.  With CRC the last byte of the buffer passed
to PIOS_SPI_TransferBlock is NOT USED.  This is the case on both F1 and F2.

Also need to DeInit DMA before enabling or it doesn't enable successfully.

Finally added a timeout which sets a fail on the pios spi transfer in the case
that either of the dma channels fails to enable.
2011-08-16 11:29:15 -05:00
James Cotton
bcca705750 Disable beta hardware bmp085 driver until it's updated. Not necessary anyway
since on the INS.
2011-08-16 08:55:02 -05:00
James Cotton
35eef66bfe OP-557: Add a UAVO access method to erase the entire flash chip. Normally not
needed by users because if too much changes I change the FS magic and trigger a
wipe.

Possibly the erase should require a particular "magic" object id value to
execute?  This would make it harder to do manually through UAVOs though.
2011-08-15 10:33:27 -05:00
James Cotton
db9c73db45 Get SPI closer to working. The flags in the pios_config should match the
stream number, not channel number.  Also DeInit DMA section in the init process
which makes debugging and init behavior more reliable.
2011-08-15 04:47:53 -05:00
James Cotton
86b652bbab Merge branch 'next' into camera_stabilization 2011-08-14 18:07:57 -05:00
zedamota
e736b17cc4 Merge remote-tracking branch 'remotes/origin/next' into GCS_ChangesToUI-RuntimeCFG
Conflicts:
	ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp
	ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
	ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
2011-08-14 15:48:16 +01:00
Corvus Corax
b75653a226 PiOS.posix: small corrections and bugfixes to make pios_com_udp work correctly. Telemetry works now. 2011-08-14 14:21:54 +02:00
Corvus Corax
5b240a2675 PiOS.posix: port pios_udp and pios_com to "next" 2011-08-14 14:21:54 +02:00
Corvus Corax
8a47ade16b flight/Libraries/fifo_buffer: Use platform independent <stdint.h> instead of "stm32xxx.h" to get definition of intX_t types 2011-08-14 14:21:54 +02:00
James Cotton
c5ed82086d Configure the interrupt information before enabling. Still looping in IRQ so
configuration needs work.
2011-08-14 02:00:52 -05:00
James Cotton
02d5e27e93 Got SPI IRQ from mainboard firing 2011-08-14 01:44:44 -05:00
James Cotton
80c2d45d93 Fix the BMP085 interrupt handler and get it producing data. Driver needs some
work to abstract away the actual calculation of altitude from pressure and
temperature.
2011-08-13 20:49:07 -05:00
James Cotton
f766ba47aa Increase the size of the eventdispatcher task and lower the maximum queue size. 2011-08-13 19:21:58 -05:00
James Cotton
a2b76adc33 Attitude: Do not start attitude estimation until accel data appears. This
fixes the NaN when AttitudeSettings not available.
2011-08-13 18:53:42 -05:00
James Cotton
ca413415a0 Code to make openocd 0.5.0 work. I'll keep this branch rebased on next. 2011-08-13 18:03:49 -05:00
James Cotton
62f51fc92d Some improvements to the HMC5883 driver. Still getting funny values but I
suspect the chip at this point.
2011-08-13 11:20:32 -05:00
James Cotton
13e5f4123a Reading gyro registers directly working. 2011-08-13 08:33:46 -05:00
James Cotton
e7990f5d43 Got a hint of some data with this code :) 2011-08-13 07:13:43 -05:00
James Cotton
f82e5dde33 Fix the EXTI IRQ handlers 2011-08-13 07:13:21 -05:00
James Cotton
e1f7a5003d Fix up SPI DMA streams 2011-08-13 04:54:19 -05:00
James Cotton
8929e2f359 Update some of the DMA settings 2011-08-13 02:46:13 -05:00
James Cotton
77cca9ba30 Move EXTI handlers into other drivers 2011-08-13 01:29:17 -05:00
James Cotton
6d018c046e Get BMA180 working. Need to move exti stuff into it until pios_exti
implemented properly
2011-08-13 01:10:33 -05:00
James Cotton
5619e33292 Bootloader now jumps to functioning code for INS. Consistent with AHRS code. 2011-08-12 22:52:47 -05:00
James Cotton
6529b8360f Trying to get linker system working for INS 2011-08-12 21:28:02 -05:00
James Cotton
e993fae463 Fix bootloader 2011-08-12 04:32:02 -05:00
James Cotton
e57f774bb8 F2 INS compiles now 2011-08-12 04:30:14 -05:00
James Cotton
1d1f351233 Pios Delay: Add function for measuring time difference between two cycle counts 2011-08-12 04:29:53 -05:00
James Cotton
b3b4fcd007 Fix linker script and get rid of dead code 2011-08-12 03:44:55 -05:00
James Cotton
f247112090 PiOS F2: Move IMU3000 to device dependent :(. Now they all are. Need to
abstract as much as possible out since init is almost identicalc and protocol
COULD be device independent.
2011-08-12 03:38:45 -05:00
James Cotton
8c1dd7b929 Make BMP085 driver device dependent and update to new driver style. 2011-08-12 03:38:45 -05:00
James Cotton
9d76efa2aa Move BMA180 driver to common architecture style. 2011-08-12 03:38:45 -05:00
James Cotton
1dc08e5cf7 F2 PiOS: Small fix to hmc5883 driver 2011-08-12 03:38:44 -05:00
James Cotton
ba413d5dad F2 StdPeriph: Make the StdPeriph take in config parameters as const.
Unfortunately they don't do this upstream :(
2011-08-12 03:38:40 -05:00
James Cotton
ef0cdae622 PiOS F2: Remove clock initialization from usart since it is in pios_sys.c 2011-08-12 02:28:02 -05:00
James Cotton
6310f46705 HMC5883: Update driver for F2. Move to STM32F2xx directory since it is device
dependent.  Abstract configuration out of board.h file into a standard board.c
structure.
2011-08-12 02:26:51 -05:00
James Cotton
784c7b2646 Merge branch 'next' into ins 2011-08-11 21:52:10 -05:00
James Cotton
ec4e23aff9 Camera Stabilization: Bound outputs to [-1,1] although this should be redundant
with checks in actuator.
2011-08-11 14:34:38 -05:00
James Cotton
9c7799dfe6 UAVObject Init: Get rid of deprecated linker init code 2011-08-10 22:48:42 -05:00
James Cotton
c8313d7b3e Add the camera stabilization files to the Pro build. Not functional though. 2011-08-10 22:31:38 -05:00
James Cotton
bbe3c1533a Merge branch 'next' into camera_stabilization 2011-08-10 21:57:45 -05:00
James Cotton
ab288e95ab Stabilization: Small patch so that by default the integral is zeroed while
throttle is low (good for quads) but can be disabled (good for planes and also
testing helis).
2011-08-10 03:51:46 -05:00
James Cotton
f23eaa8273 Make the Actuator pull from the CameraDesired fields 2011-08-09 21:47:42 -05:00
James Cotton
f11aa80444 CameraStabilization: Make the CameraStabilization module put the desired
position into another object (will help with configuration).
2011-08-09 20:45:38 -05:00
James Cotton
c4e272b9ad Merge branch 'next' into camera_stabilization 2011-08-09 20:16:45 -05:00
James Cotton
0c2c48bee6 F2 PiOS: More changes for spi to work (not completed) 2011-08-09 12:59:10 -05:00
James Cotton
a097ff784b F2 PiOS: Getting the I2C driver working again (copying changes from Zippe,
thanks again man!)
2011-08-09 12:58:46 -05:00
James Cotton
8be9ac9cc9 PiOS: Move driver out of common directory since it makes calls to configure the
EXTI system.
2011-08-09 12:51:26 -05:00
James Cotton
d78450eae8 Move some of the F2 defines into the makefile to make them global. Fixes some
issues with grabbing the wrong stm32 configuration file.
2011-08-09 01:19:05 -05:00
James Cotton
27213c7fd9 F2 PiOS USART: Update to the new driver format for coms 2011-08-09 01:18:25 -05:00
James Cotton
ec2121bca8 Attitude: Keep first element of quaternion positive 2011-08-08 21:16:04 -05:00
James Cotton
d23e13716b dos2unix: fifo_buffer 2011-08-08 08:37:14 -05:00
James Cotton
479ba7c21f OP-378 INS: Continue getting F2 INS to compile 2011-08-08 08:36:40 -05:00
sambas
9f35b6939c Bind IO fix 2011-08-07 10:10:52 +03:00
James Cotton
558bdddeaf INS: Almost got Bootloader compiling *sigh* 2011-08-06 21:27:29 -05:00
James Cotton
a0d77faf4b PiOS: Move pios_iap out of common. It is STM32F1x specific. Created an
STM32F2xx stub version.  This needs cleaning up - there is some common code,
most of which can probably move to the bl_helper function.
2011-08-06 20:24:07 -05:00
James Cotton
f23ec059fe dos2unix 2011-08-06 19:53:46 -05:00
James Cotton
1ccb9a1947 Some changes to BL to get running on F2. Also disables it for now (flash
interface is different).
2011-08-06 19:46:41 -05:00
James Cotton
d1c9ac0705 PiOS F2: Commit the F2 port of PiOS from Zippe. Thanks for doing all the hard
work man :-D
2011-08-06 19:36:56 -05:00
James Cotton
7720f9ff09 Add F2 support for the new OpenOCD for newer targets. Requires compiling
OpenOCD from repo.
2011-08-06 18:21:21 -05:00
James Cotton
0bba13a0e9 Merge branch 'next' into ins
Conflicts:
	flight/INS/Makefile
	flight/INS/pios_board.c
	flight/Modules/Altitude/altitude.c
	flight/PiOS/Boards/STM3210E_INS.h
	flight/PiOS/STM32F10x/link_STM3210E_INS_BL_sections.ld
	flight/PiOS/STM32F10x/link_STM3210E_INS_HD_BL.ld
	flight/PiOS/STM32F10x/link_STM3210E_INS_HD_NB.ld
	flight/PiOS/STM32F10x/link_STM3210E_INS_memory.ld
	flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
	flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-06 17:25:56 -05:00
sambas
1e67b5e3b5 DSMx_binder, hw setting 0 disabled, 1-10 bind pulses. Manual disable after successful bind. Only for flexiport. 2011-08-06 22:16:47 +03:00
James Cotton
fd86c25b49 Make sure OP compiles with new object init structure. 2011-08-04 15:01:54 -05:00
sambas
a454cf844b DX8 support, BIND3 only 2011-08-04 19:20:05 +03:00
James Cotton
a592e7d398 ManualControlSettings must be also initialized in pios_board.c 2011-08-04 07:47:50 -05:00
James Cotton
bac7836318 Revert "uavobj: shrink metadata struct to save RAM". I was premature merging
this to next as it changes the on-the-wire representation and thus doesn't
allow GCS to set the metadata.

This reverts commit a641cd7956.
2011-08-04 07:17:36 -05:00
Stacey Sheldon
a641cd7956 uavobj: shrink metadata struct to save RAM
This update saves 448 bytes of RAM with the current
crop of UAVObjects.  It reduces a 19 byte struct to
8 bytes.

Note: This also introduces a limit of 65.534s for the
update periods.
2011-08-03 00:00:50 -04:00
Stacey Sheldon
90b2625deb rcvractivity: Add tracking of Rx channel activity 2011-08-02 01:27:37 -04:00
Stacey Sheldon
06cdeb7b61 rcvr: support multiple simultaneous receivers
Now also supports multiple instances of the Spektrum driver.
These are configured as Spektrum1 and Spektrum2.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
829b8b83f6 rcvr: Add GCS receiver driver for rcvr via telemetry
This allows the GCS to emulate a receiver device via the
telemetry link.

Select "GCS" as your input type in the manualcontrol config
screen and calibrate it as normal.

Note: The expected values for the channels are in microseconds
      just like a PWM or PPM input device.  The channel values
      are validated against minimum/maximum pulse lengths just
      like normal receivers.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
2f79e4fa76 Merge remote branch 'origin/stac/refactor-usart-com' into next 2011-07-31 09:41:06 -04:00
James Cotton
035b4103c4 Need to initialize the HwSettings before using them. 2011-07-31 09:42:15 +09:00
James Cotton
c5bf0ac657 Merge branch 'stac/refactor-usart-com' into camera_stabilization 2011-07-31 09:13:37 +09:00
James Cotton
568ea13471 Merge branch 'next' into stac/refactor-usart-com 2011-07-31 09:13:27 +09:00
Stacey Sheldon
6b1ec9a54e bl: fix LED pwm computation with new stopwatch 2011-07-30 16:59:57 -04:00
James Cotton
3df730c64f Merge branch 'stac/refactor-usart-com' into camera_stabilization 2011-07-30 13:38:43 +09:00
James Cotton
387a22398e Make it possible to optionally enable the CameraStab module 2011-07-30 12:08:47 +09:00
Stacey Sheldon
8c0b60099f rcvr: don't init spektrum and sbus rcvrs twice 2011-07-29 22:59:50 -04:00
James Cotton
cb9c6dfb5e Change the sequencing of telemetry starting to make sure all the objects that
were registered in an initialize and then enumerated by telemetry
2011-07-30 11:31:45 +09:00
James Cotton
132e19d613 Change the makefiles - always compile the optional objects but the flag
indicates whether they are registered
2011-07-30 11:29:29 +09:00
James Cotton
ae67c51632 Register some missing objects with their modules 2011-07-30 11:28:21 +09:00
James Cotton
2e5a36a4db Merge branch 'stac/refactor-usart-com' into camera_stabilization 2011-07-30 10:55:16 +09:00
James Cotton
b2d2114ede Disable auto registration of all objects. Later the uavobj_init linker scripts
should be deleted to not carry around old code.
2011-07-30 10:24:46 +09:00
James Cotton
23e9b56839 Dos2unix flight/CopterControl/System/coptercontrol.c 2011-07-30 10:06:35 +09:00
James Cotton
96c2d24253 Merge branch 'next' into camera_stabilization
Conflicts:
	flight/CopterControl/Makefile
	flight/CopterControl/System/coptercontrol.c
	flight/Modules/Actuator/actuator.c
	flight/Modules/GPS/GPS.c
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/Stabilization/stabilization.c
	flight/Modules/System/systemmod.c
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/stabilizationdesired.xml
2011-07-30 10:06:10 +09:00
James Cotton
333ab645ec Dos2unix manualcontrol.c to facilitate merging 2011-07-30 09:55:02 +09:00
Stacey Sheldon
c2fb0d8b43 com: allow run-time allocation of buffers 2011-07-29 15:33:14 -04:00
Stacey Sheldon
8b0415d905 bl: alternate stopwatch for small bootloaders
The small bootloaders (CC and PipX) are out of flash space
so their stopwatch implementation has been swapped out for
one based on the DELAY clock that takes about 500 bytes less
of code space.

Identical functionality is preserved.
2011-07-29 15:33:01 -04:00
Stacey Sheldon
13f9b0e09d Merge remote branch 'origin/OP-498_jwhitlock_add-ppm-to-cc' into next 2011-07-28 22:15:01 -04:00
Stacey Sheldon
a3888ecd48 usart: ensure callbacks are bound in the correct order 2011-07-27 23:21:39 -04:00
Stacey Sheldon
5f8760a55c com: Move buffering out of USART/HID layer and into COM layer
This allows the spektrum and sbus receiver drivers to bind
directly to the usart layer using a properly exported API
rather than overriding the interrupt handler.

Bytes are now pushed directly from the usart layer into the
com layer without any buffering.  The com layer performs all
of the buffering.

A further benefit from this approach is that we can put all
blocking/non-blocking behaviour into the COM layer and not
in the underlying drivers.

Misc related changes:
 - Remove obsolete .handler field from irq configs
 - Adapt all users of PIOS_COM_* functions to new API
 - Fixup callers of PIOS_USB_HID_Init()
2011-07-27 19:45:38 -04:00
James
60136f0464 Add support for PPM transmitters up to 12 channels. Small array indexing issue in PIOS_PPM_Get. 2011-07-27 00:33:32 +01:00
Stacey Sheldon
b70d5ae148 Merge remote branch 'origin/msmith-delay-timer' into next 2011-07-26 09:04:06 -04:00
Mike Smith
df5569c758 Fix a stupid off-by-one that prevented this code from working.
Update to use 32-bit microsecond values.

Remove PIOS_DELAY_DiffuS per consensus (caller can do it easily themselves).

Update the core delay logic per Stac's suggestion to a version that is
resistant to various overflows.
2011-07-25 20:55:48 -07:00
James Cotton
056db1cdda Merge branch 'bugfix-flight' into next 2011-07-24 07:09:42 +09:00
James Whitlock
6a6ec41809 Build fixes 2011-07-23 22:10:17 +01:00
Mike Smith
480f07a264 Typo fix. 2011-07-23 13:58:56 -07:00
Mike Smith
a89092e275 Update to use the delay API to get entropy rather than reading the timer directly. 2011-07-23 13:53:42 -07:00
Mike Smith
0df3bb2c37 Restore functions lost due to inept merging, and refactor to take advantage of them.
Address the following review feedback items:
 - use stdint types
 - avoid the use of magic numbers (define CYCCNTENA)
 - remove expository comment about sneakiness and corresponding code, replace with something simpler based on the API
 - remove commented/#if 0 code
2011-07-23 13:53:16 -07:00
Mike Smith
dae4b44100 Remove commented code that refers to the now-obsolete PIOS_DELAY_TIMER 2011-07-23 13:49:36 -07:00
Mike Smith
c3267a3b53 Remove PIOS_DELAY_TIMER definitions from configuration files, as there is no longer a delay timer to configure. 2011-07-23 13:48:40 -07:00
James Whitlock
11c568ec50 Add in a PPM input frame size tracker.
Move update of capture values to start of new frame.
Fix an issue with setting channels to invalid.
2011-07-23 01:38:51 +01:00
James Whitlock
7a58b4cceb A quick clean of ppm code to remove white space and duplicated comments 2011-07-23 01:32:57 +01:00
James Cotton
abee34e551 Getting posix simulation compatible with init and receiver changes 2011-07-22 07:50:06 -05:00
Mike Smith
6bc5339015 Change the pios_delay implementation to use the CPU cycle counter rather than burning a timer. 2011-07-21 23:21:26 -07:00
Stacey Sheldon
a7cce25252 usart: fix lower usarts clobbering higher ones
The break statements are clearly missing from this
switch statement.

This would lead to problems when using more than one
USART on CC.
2011-07-22 00:30:49 -04:00
James Whitlock
7ce5daef8f Clean up of PPM code in master. 2011-07-19 20:46:24 -04:00
Stacey Sheldon
8dbace5ee2 Merge branch 'rcvr_mem_reduction'
Conflicts:
	flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld
2011-07-17 17:14:40 -04:00
James Cotton
2da65014c7 Fix typo in servo doxygen header 2011-07-16 03:25:33 -05:00
James Cotton
14370b5ac4 Reenable serial telemetry on OP main board 2011-07-15 19:10:00 -05:00
James Cotton
b83f731c03 Remove all references to vTaskDelay in the flash code as it can run before the
FreeRTOS scheduler

Also increaes init stack size from 0x80 to 0x100
2011-07-15 18:16:16 -05:00
James Cotton
01b62cf98f Fix a typo 2011-07-15 15:30:10 -05:00
James Cotton
72e80d407c Change the magic value in the object file table. Forces all objects to be
erased since all ids are changing - this frees up memory.
2011-07-15 11:11:29 -05:00
James Cotton
d41260d54c Make the stabilization settings query correctly now by increasing the TX buffer
on the CC side to 256 bytes instead of 128 to support large objects (max object
size is 256 bytes)
2011-07-15 10:40:21 -05:00
James Cotton
3d35e249c8 Merge branch 'master' into bugfix-flight 2011-07-15 10:33:54 -05:00
Stacey Sheldon
6580462916 rcvr: specify drivers for groups of channels
Each channel was previously tracking a separate driver.
Now, channels are grouped within a channel group to save
RAM used for tracking and to better reflect how channels
are actually mapped.
2011-07-14 23:22:42 -04:00
Stacey Sheldon
442d56c1c5 linker: Add section to record unused RAM
Note that this section will be absorbed by the heap at runtime.
2011-07-14 23:22:42 -04:00
zedamota
b005346fab Windows eclipse workspace. Sorry for the mess, all is good know...I think 2011-07-14 18:16:38 +01:00
zedamota
e559582bb8 Eclipse workspace update 2011-07-14 17:09:58 +01:00
zedamota
c22bc2a675 Merge branch 'bugfix-flight' of ssh://git.openpilot.org/OpenPilot into bugfix-flight 2011-07-14 14:07:28 +01:00
zedamota
16e28900d0 Created new eclipse workspace for windows 2011-07-14 13:34:34 +01:00
sambas
18a5465246 Bugfix: CC flexiport spektrum config
Working spektrum bind routine, depending your TX try BIND_PULSES 3,5,7,9 (5 works with DX7)
Boot process takes too long on MB so bind command misses the window (20-140ms).
2011-07-14 14:43:26 +03:00
Mathieu Rondonneau
612a439199 OP-423: simplify the MODULE_INITCALL macro and remove the ordering loops 2011-07-12 20:44:32 -07:00
James Cotton
0aec3b592c Changing stabilization so that the PIDs are zeroed when not armed, but NOT when
the throttle is < 0.  This will make things like axis-lock work while armed
without throttle.  HOWEVER don't hold your stick in the arming position for a
long time or you can wind up the integrals now.
2011-07-12 14:35:32 -05:00
James Cotton
2c7cfe435f Somehow this task runs quite a few times at the beginning so dT was going to
zero and making the attitude get NaN.  Wrote recovery code for that condition
(should never occur) and also force minimum dT to 1 ms (also shouldn't occur)
2011-07-12 14:18:19 -05:00
James Cotton
53ca934b2b Merge branch 'heli_stabilization'
Conflicts:
	flight/CopterControl/System/inc/pios_config.h
	flight/Modules/Attitude/attitude.c
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/Stabilization/stabilization.c
2011-07-12 13:28:20 -05:00
James Cotton
9e94f9fee9 Fix typo from SISE to SIZE 2011-07-12 12:48:06 -05:00
James Cotton
2fe7ee40b1 Merge branch 'OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint' 2011-07-12 12:44:59 -05:00
James Cotton
c33d3057cc Dos2unix evendispatcher file 2011-07-12 12:36:20 -05:00
James Cotton
15a2b85729 For OpenPilot use the minimal stack size (512 words) for eventdispatcher as
this is necessary for object saving.  Creating a new define to override this
for CopterControl down to 96.
2011-07-12 12:34:40 -05:00
James Cotton
557771d3ef Change to OP MB code to make it work with input changes. Previously tried to
register every possible input channel.  Slipped through review because
"obviously correct" change fixed previous bug masking this.  Woohoo testing :)
2011-07-12 11:41:21 -05:00
James Cotton
59798701a2 Merge branch 'master' into bugfix-flight
Conflicts:
	flight/CopterControl/System/inc/pios_config.h
2011-07-12 11:40:47 -05:00
James Cotton
3b3b76aa46 Revert "Drop 8 bytes per PID of unecessary information. Also trying to compute"
This reverts commit 9c1e523260.
2011-07-12 11:37:36 -05:00
Mathieu Rondonneau
d38f6167e3 OP-423:
Also reduce heap has it does not fit in SRAM anymore (not with current compiler).
(that's ok since if there is more space available, it will be reclaimed).

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/pios_config.h
	flight/Modules/ManualControl/manualcontrol.c
2011-07-08 06:29:34 -07:00
Stacey Sheldon
b86ef4de82 bootcfg: fix incorrect bounds checking on rcvr registration
This was preventing any receivers from registering their
channels.
2011-07-07 23:59:12 -04:00
Stacey Sheldon
2e8d3a9be3 clean up cut/paste cruft 2011-07-07 23:02:09 -04:00
Stacey Sheldon
1f004ee896 ppm: port PPM driver onto new CC driver layers
This is a port of a work-in-progress by Sambas onto
the new driver infrastructure needed for boot-time
configuration.

PPM and PWM still don't coexist in a build but this
is closer.
2011-07-07 22:27:57 -04:00
Stacey Sheldon
226f095a2e bootcfg: remove baudrate #defines for USARTs
The initial baud rates of each interface are now forced in the
board init code.

Any modules using USARTs should have fields added to
their settings object to allow the user to change the
baud rate from the default by using the COM layer APIs.

Developers requiring custom baud rates before the settings
objects are in place should locally edit the cfg structs
to specify the desired baud rates.
2011-07-06 23:03:54 -04:00
Stacey Sheldon
a8787ee015 bootcfg: Add support for selecting S.Bus receivers in inputtype 2011-07-06 22:38:23 -04:00
Stacey Sheldon
bf39ab7a22 remove left-over comment about compile time configs
No functional changes.
2011-07-06 22:36:15 -04:00
Stacey Sheldon
e82539c654 bootcfg: additional validation during board init 2011-07-06 22:34:59 -04:00
Mathieu Rondonneau
36f28f8037 OP-423: Fixing heap2 (puting back bytes from the post heap stack (used during init) back into the free list).
Tested this heap2 at runtime with CC and new compiler since old one (current) triggers strict alliasing error.
That's ok since strict aliasing is disabled on OP, and CC only use heap1.
2011-07-05 21:45:39 -07:00
James Cotton
2d995dc2f7 OP-539: Don't call the gyro setting callback during init because it clears the
gyro bias estimation.
2011-07-05 22:27:03 -05:00
Mathieu Rondonneau
9b9b5a1367 OP-423: remove ';' at the end of macro 2011-07-05 19:44:54 -07:00
Stacey Sheldon
dbf7574946 bootcfg: use UAVobj to control boot-time HW config
This should mark an end to the compile-time selection of HW
configurations.

Minor changes in board initialization for all platforms:
 - Most config structs are marked static to prevent badly written
   drivers from directly referring to config data.
 - Adapt to changes in .irq fields in config data.
 - Adapt to changes in USART IRQ handling.

Major changes in board initialization for CC:
 - Use HwSettings UAVObj to decide which drivers to attach to
   the "main" port and the flexi port, and select the appropriate
   device configuration data.
 - HwSettings allows choosing between Disabled, Telemetry, SBUS,
   Spektrum,GPS, and I2C for each of the two ports.
 - Use ManualControlSettings.InputMode to init/configure the
   appropriate receiver module, and register its available rx channels
   with the PIOS_RCVR layer.  Can choose between PWM, Spektrum and PPM
   at board init time.  PPM driver is broken, and SBUS will work once
   it is added to this UAVObj as an option.
 - CC build now includes code for SBUS, Spektrum and PWM receivers in
   every firmware image.

PIOS_USART driver:
 - Now handles its own low-level IRQs internally
 - If NULL upper-level IRQ handler is bound in at board init time
   then rx/tx is satisfied by internal PIOS_USART buffered IO routines
   which are (typically) attached to the COM layer.
 - If an alternate upper-level IRQ handler is bound in at board init
   then that handler is called and expected to clear down the USART
   IRQ sources.  This is used by Spektrum and SBUS drivers.

PIOS_SBUS and PIOS_SPEKTRUM drivers:
 - Improved data/API hiding
 - No longer assume they know where their config data is stored which
   allows for boot-time alternate configurations for the driver.
 - Now registers an upper-level IRQ handlerwith the USART layer to
   decouple the driver from which USART it is actually attached to.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
6415fc84a5 rtc: allow registration of callbacks on RTC tick
This separates the RTC device and interrupt handling
from the devices that rely on the tick notifications.

Drivers can now register tick notification functions
that will be called on each RTC tick event.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
740b5f1584 rcvr: convert PWM, PPM, SBUS and Spektrum to use PIOS_RCVR
All receivers now fall under the same driver API provided
by pios_rcvr.c.

This is part of a larger sequence of commits that will
switch the receiver selection over to boot time dynamic
configuration via UAVObjects.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
e77795dc28 rcvr: add generic driver API for receivers
Will be used to collapse PWM, PPM, Spektrum and SBUS so we
can choose between them at boot time instead of at compile time.
2011-07-05 22:02:47 -04:00
Stacey Sheldon
0c4facac46 heap: reduce stack size on IDLE and Event tasks
The FreeRTOS IDLE task was using 512 bytes of stack.
The UAVObject Event task was also using 512 bytes of stack.

Both have been reduced, recovering 400+ bytes of heap.
2011-07-05 20:13:00 -04:00
James Cotton
010f0255a4 OP-543: When the magic header on file system is bad at init, read multiple
times.  It's not written as cleanly as I'd like but works for wiping when magic
value changes.  Testing will reveal if this stops the lost settings.
2011-07-04 21:44:41 -05:00
James Cotton
ad8876c62a OP-193: Weak leveling variant on rate mode. Slowly will return to level. 2011-07-04 20:44:55 -05:00
Mathieu Rondonneau
f864d723dd OP-423: Cleanup and remove recently added *_BL.S startup file. 2011-07-03 18:45:02 -07:00
Mathieu Rondonneau
2daa36aad9 OP-423: Remove *_BL.S 2011-07-03 13:14:42 -07:00
Mathieu Rondonneau
b3740ec025 OP-423: Clean startup and add weak function call for stack swap. 2011-07-03 12:43:38 -07:00
James Cotton
46ae7eb17b Merge remote-tracking branch 'origin/bugfix-ground' into heli_stabilization 2011-06-30 19:40:22 -05:00
James Cotton
39e646ae1d Make the rates all work properly in axis lock 2011-06-30 19:38:52 -05:00
zedamota
567e3ffcad OP-542 Board resets with new Uploader
IAP module now checks magic value
2011-06-30 12:17:27 +01:00
James Cotton
a7206361d2 Slightly different way to respond to sticks in axis lock that is much more
responsive and avoids overshoot.
2011-06-26 21:59:54 -05:00
Mathieu Rondonneau
fbf0b021c7 OP-423: Replace hardcoded value and get value from memory section (change from code review) 2011-06-25 20:06:33 -07:00
Corvus Corax
fc62f6e522 Module initialisation rework ported to PiOS.posix 2011-06-26 00:25:06 +02:00
Mathieu Rondonneau
6683ce8570 OP-423: Make it more obvious that MODULE_TASKCREATE_ALL and MODULE_INITIALIZE_ALL are macro (for now):
- remove the ;
  - also encapsulate the macro by {} in his own scope.
2011-06-25 11:40:01 -07:00
James Cotton
4c0245281d Now we store the gyro bias avoid quashing the initialization correction. 2011-06-25 12:32:06 -05:00
Mathieu Rondonneau
de55c56427 OP-423: Change capital on macro to be uppercase for consistency. 2011-06-24 22:03:03 -07:00
James Cotton
dedbcbfceb Correct nasty bug on range checking for max rate and use the axis lock rate
desired when in that mode.
2011-06-24 11:30:28 -05:00
James Cotton
e6ad21d881 Make gyro bias in deg/s * 100 to calibrate more precisely. 2011-06-24 10:51:07 -05:00
James Cotton
5127d1e7ba Change actuator memory to 900 bytes since it uses less now. 2011-06-24 10:49:36 -05:00
James Cotton
038f955cb1 OP-410 OP-333: Axis lock (heading hold) implemented 2011-06-24 10:38:26 -05:00
James Cotton
ab7ff56d96 Compute initial gyro bias while calibrating to speed up convergence 2011-06-24 10:38:26 -05:00
James Cotton
c0eff41dc6 OP-410 OP-333: Created an Axis-lock setting for stabilization 2011-06-24 10:38:26 -05:00
James Cotton
0a4bbcc12e Added a field for initial gyro bias to speed up initialization. 2011-06-24 10:38:26 -05:00
James Cotton
28501842c3 Expose the rate D term which in simulations seems to help damp oscillations for
high RateKp terms.  However it might be sensitive to gyro noise (vibrations).
In addition it is mathematically similar to lead shapign so probably only use
one or the other.
2011-06-24 10:38:25 -05:00
James Cotton
a09642675c Tweak the integral calculation so it is scaled in ms internally. This avoids a
loss of precision on the accumulation.
2011-06-24 10:38:25 -05:00
James Cotton
373689207a Add a 1-tap IIR filter into the gyros in the feedback path. This will make the
stabilization output a bit more resilient to the high frequency noise from
gyros.  However this value shouldn't be too high as it will increase the phase
delay of the feedback loop and decrease stability.  Default is 5 ms.

Note: this resests the stabilizationsettings object.  Sorry guys.
2011-06-24 10:38:25 -05:00
Stacey Sheldon
d1104d3fdc alarms: lower heap warning and critical thresholds for CC
Free heap on CC is currently 160 bytes so the current thresholds
were causing a continual alarm condition, thus preventing arming.
2011-06-24 10:38:25 -05:00
Mathieu Rondonneau
dcd2774103 OP-423 Fix some comment from code review:
- update example module
- use module init macro for POSIX and WIN to make code cleaner.
2011-06-24 06:59:51 -07:00
Corvus Corax
f52f6d30c6 VTalk (flight): Buffers allocated dynamically with size calculated by UAVObjGenerator. Support for tx packet sizes < object size.i 2011-06-24 02:08:20 +02:00
James Cotton
f6312c7798 OP-410 OP-333: Created an Axis-lock setting for stabilization 2011-06-23 14:51:18 -05:00
James Cotton
9aba787b02 OP-193: Check for instance read success was backwards 2011-06-23 03:01:37 -05:00
James Cotton
368d5b649a OP-193: Output mixer should read from up to 6 accessory channels (may add more
in future).
2011-06-23 01:47:55 -05:00
James Cotton
493fcaef2a OP-193 OP-511: Add settings to scale the camera input output range 2011-06-23 00:47:27 -05:00
Mathieu Rondonneau
703919daf4 OP-423 Reduce IRQ stack limits (CC onlyt) 2011-06-22 06:32:27 -07:00
Mathieu Rondonneau
0ff5e9a46f Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint 2011-06-21 22:02:13 -07:00
James Cotton
9c1e523260 Drop 8 bytes per PID of unecessary information. Also trying to compute
integral in ms instead of seconds to avoid rounding errors.
2011-06-21 17:54:03 -05:00
James Cotton
8976d22fad Merge remote-tracking branch 'origin/OP-159_os_sbus' 2011-06-21 17:51:22 -05:00
Oleg Semyonov
fba201c8b3 usart: move default port numbers from pios_config.h to pios_board.c 2011-06-22 01:32:18 +03:00
Mathieu Rondonneau
74e5e2015e Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint 2011-06-20 20:28:12 -07:00
Stacey Sheldon
80709f356f alarms: lower heap warning and critical thresholds for CC
Free heap on CC is currently 160 bytes so the current thresholds
were causing a continual alarm condition, thus preventing arming.
2011-06-20 22:31:05 -04:00
unknown
9e632b532e Fix win32 SiTL by adding PiOS CRC and another missing function. 2011-06-20 15:48:05 -04:00
Mathieu Rondonneau
fc1e3f574c OP-423: Split task create and module init in order to postpone task creation once the full heap is available.
Also implement some ordering (quite ugly still) in the module init and task creation order so we can decide which module to start/init first
and which module to start/init last.
This will be replaced/adapter with the uavobject list later (once it's implemented).
reserving some space for module init and task create parameters to customize module/task creation (this will be usefull once we get the list and customization from customer).

Changes have been made for OP and CC. Tested comped with CC,OP, sim_posix.
Only ran on bench with CC for couple of minutes (code increase expected but no dropping of stack which is good).

This gives task creation at the time wherethe all heap is available.
2011-06-19 22:35:40 -07:00
James Cotton
17fa227d1f Fixed typo, thanks Os 2011-06-19 16:51:54 -05:00
Oleg Semyonov
6272210df7 sbus: some code cleanup (no functional changes) 2011-06-19 14:30:13 +03:00
Mathieu Rondonneau
2b11395a67 OP-423 just move stack from systemmod back to heap (200 bytes) that are not needed anymore. 2011-06-18 17:31:29 -07:00
Mathieu Rondonneau
5e3e7cc4e3 OP-423 Fix issue with init not properly started in the right order endup up object thinking other where not init. 2011-06-18 17:28:37 -07:00
Oleg Semyonov
59da5055cd usart: make USART ports configurable from make command line
For CopterControl the following make options are available:

USE_TELEMETRY=[YES|NO|1|3]    (default is YES, USART1)
USE_GPS=[YES|NO|1|3]          (default is NO, USART3)
USE_SPEKTRUM=[YES|NO|1|3]     (default is NO, USART3)
USE_SBUS=[YES|NO|1]           (default is NO, USART1 only)
2011-06-18 23:54:32 +03:00
Oleg Semyonov
311902f1f2 sbus: implemented S.Bus stream decoding 2011-06-18 23:19:57 +03:00
James Cotton
724016ffb0 When erasing flash at the end start flashing LED to indicate it is done 2011-06-18 14:32:09 -05:00
James Cotton
2218ff6fe9 Change to object template so when they are already registered it doesn't
initialize them a second time (which causes the handle to get lost)
2011-06-18 14:21:14 -05:00
James Cotton
5044ea36de Start initializing objects in the modules that consume them. Shouldn't affect
OP yet but not tested.
2011-06-18 14:20:51 -05:00
Mathieu Rondonneau
b67a38661e OP-423: merge master into that branch, resolve conflicts and test with CC and bl_CC
heap reamining is low (about 500) but stacks can be ajusted (specially the 200 bytes from system) to give the level close to 1Ko if needed.

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/FreeRTOSConfig.h
	flight/CopterControl/System/inc/pios_config.h
2011-06-17 19:04:09 -07:00
James Cotton
9720a8444f Make a few things optional if they are mostly for diagnostics to keep memory
down
2011-06-17 21:00:21 -05:00
Mathieu Rondonneau
693c6bc5b0 OP-423: fix bl and bu, also fix compiler problems encountered with make all 2011-06-17 18:54:25 -07:00
Mathieu Rondonneau
65cf467ca4 OP-423: move the module initialize funtion into a specific section for OP and CC.
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
Corvus Corax
926246b402 UAVTalk: Make UAVTalk object oriented, allowing multiple UAVTalk instances 2011-06-16 16:35:37 +02:00
Oleg Semyonov
aeda61d252 usart: serial telemetry can be disabled to free USART
It was tested being merged with OP-472_CorvusCorax_CopterControl-Guidance_v3
branch, Spektrum on USART3 and GPS on USART1 and seems to work.

Currently defaults mimic original behavior, that is, if USE_SPEKTRUM
is not defined - define USE_PWM and USE_GPS. Thsi should be refactored
later to make it configurable from the Makefile.

Also it was not ported to the OP MB: it currently does not support the
S.Bus hardware and still has original behavior with the patch. But this
is one more step to dynamic configuration of ports.
2011-06-16 15:06:01 +03:00
Mathieu Rondonneau
e8cdf22427 OP-423 Port to OP: Claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...

also move address into linker (CC and OP)
2011-06-15 18:54:35 -07:00
Oleg Semyonov
50e819192b usart: make CC USART ports compile-time configurable
TODO: This should be dynamic in the future.
But for now define any compatile combination of:
   USE_I2C (shared with USART3)
   USE_TELEMETRY
   USE_GPS
   USE_SPEKTRUM
   USE_SBUS (USART1 only, it needs an invertor)
and optionally define PIOS_PORT_* to USART port numbers

Defaults are:

#define PIOS_PORT_TELEMETRY 1
#define PIOS_PORT_GPS       3
#define PIOS_PORT_SPEKTRUM  3
#define PIOS_PORT_SBUS      1

#define USE_TELEMETRY
#define USE_GPS

Telemetry, GPS and PWM input are enabled by default.
2011-06-15 22:37:44 +03:00
Oleg Semyonov
d8201ec45b sbus: provide a stub based on Spektrum driver (for CC only) 2011-06-15 22:35:21 +03:00
James Cotton
7d7d03cfd0 OP-193 OP-511: Basic code for camera stabilization. Currently tune range with
the servo endpoints and neutral.
2011-06-15 11:18:29 -05:00
Mathieu Rondonneau
ab4e15e9aa OP-423 also claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...

Tested with GCC 4.5.2 this gives 1K of free bytes usable in heap right away (including the 200 bytes saved just by using the new gcc).
This does not include any code re-org yet!
2011-06-14 22:13:30 -07:00
Mathieu Rondonneau
3780de8d3e OP-423 port to OP (heap2) the previous changes done in CC (heap1) (see c95b199166)
I managed to test CC with heap2 changes and the init stack claimed back to heap once scheduler starts.

the changes of this commit are OP related (just cleanup on CC side):
Arch specific stuff (in reset vector) to hide this from portable code:
     - switch back to MSP stack before starting the scheduler so that the sheduler can use the IRQ stack (when/if needed).
     - call the C portable function in heap2 to claim some stack back (the number to claim is taken from linker file).
     - start the scheduler from reset vector (I move this here from main because it make sense to not go back to C (so that I don't need to copy the rolled stack in case the sheduler returns). This make it more clean.
     - Also I have added the call to the mem manager if sheduler return. that way, we don't reset indefinitely if memory runs out. We will go to this handler and figure things out (right now, it's just looping but at least not rebooting. Probably trap NMI would be better (later improvement).
2011-06-14 20:10:53 -07:00
James Cotton
144f36dfb7 Merge branch 'bugfix-flight' 2011-06-14 10:02:55 -05:00
Mathieu Rondonneau
c95b199166 OP-423 do the arch specific stuff (in reset vector) to hide this from portable code:
- switch back to MSP stack before starting the scheduler so that the sheduler can use the IRQ stack (when/if needed).
 - call the C portable function in heap1 to claim some stack back (the number to claim is taken from linker file).
 - start the scheduler from reset vector (I move this here from main because it make sense to not go back to C (so that I don't need to copy the rolled stack in case the sheduler returns). This make it more clean.
 - Also I have added the call to the mem manager if sheduler return. that way, we don't reset indefinitely if memory runs out. We will go to this handler and figure things out (right now, it's just looping but at least not rebooting. Probably trap NMI would be better (later improvement).

The part missing for this part is the weak attribute for the function in heap1.c so that we don't have to update everything with empty stub.
I think the weak atrribute for C function called in assembly is arch dependent so I am not sure if this is possible (will look into it, maybe somebody outthere nows).
Right now, it's heap1 dependent and won't work with heap2. I will clean that up the next couple of days.

I did some test and it looks good.
this is without init code re-organization so we don't free as much as we will be it's good starts.

This compile with sim_posix (since it does not affect portable code) so this is really clean.
I only tested this with CC. I will port it for OP when I will work on heap2.
2011-06-13 21:49:17 -07:00
Mathieu Rondonneau
1f54e32ea9 OP-423 also add changes to OP. (I can not test it because I don't have a board so only compile test) 2011-06-13 17:10:14 -07:00
James Cotton
404c026188 Patch from Zippe to use cycle timer for CPU monitoring. 2011-06-13 00:24:30 -05:00
Mathieu Rondonneau
7598e898fa OP-423 Step-1: split system stack and implement water mark for IRQstack:
- use IRQStack for ISRs (at begening of SRAM) (let's call it the irq stack)
- use end of heap for stack needed during initialization (let's call it the init stack).
- the systemStats in GCS indicate the remaining bytes in the IRQ stack (this is realy usefull to monitor our (nested) IRQs.

This is the base ground to provide as much memory as possible available at task creation time.

Next step is to re-organize the initialization in order to move all the init out of the thread's stacks onto the init stack.
This will provide as much memory as possible available at task creation time.
Basically the stack during initialization will be destroyed once the scheduler starts and dynamic alloc are made (since the init stack is at the end of the heap). We will need to make sure we don't clobber the heap during initialization otherwise this will lead to stack corruption.
2011-06-12 20:23:00 -07:00
James Cotton
0f5fe54329 FlashFS: Should clear the 0 sector when wiping flash chip, not 10 bytes in. 2011-06-11 22:31:51 -05:00
Oleg Semyonov
5d0c7fe42e Merge branch 'master' into heli_improvements 2011-06-11 12:19:07 +03:00
Corvus Corax
a7841a523a bugfix: forgot to add header file (pios.posix) 2011-06-10 22:04:54 +02:00
Corvus Corax
47a6643318 PiOS.posix: ported PiOS_CRC to PiOS.posix to fix compilation error on OpenPilot introduced by new dependency 2011-06-10 17:16:15 +02:00
James Cotton
4a59c03b0e OP-493: Unfortuantely have to change stack alarms for this to work :( 2011-06-07 10:31:40 -05:00
James Cotton
bdc9094975 OP-493 OP-505 OP-511: Make up to 6 accessory channels so some can go from
ManualCommand to a camera module and some could go from that camera module to
output (i.e. mixing of inputs to pan tilt with stabilization)
2011-06-06 10:56:31 -05:00
James Cotton
1ecd244aff OP-493 OP-505 OP-511: Fixed bug with the direct mapping where it looked at throttle curve
source instead of directly bypassing
2011-06-06 10:53:55 -05:00
James Cotton
6c6906d61e OP-493: Switch to using Accessory0:2 to match the InstId 2011-06-05 15:38:58 -05:00
James Cotton
99b3a629a8 OP-493: Force three AccessoryDesired objects to always exist. Routing to
Mixing channel now works.  However Accessory desired instances do not show up
in GCS.
2011-06-05 15:38:58 -05:00
James Cotton
a1336e4d03 OP-493: Make sure accessory desired is not a single instance object 2011-06-05 15:38:57 -05:00
James Cotton
8ebd6a83d6 OP-493: Add support to bypass the mixer and route accessory data straight to
outputs.  Warning: This has no failsafes like arming.  We should discuss if
this is appropriate.

In addition accessory objects can be routed throught the mixer for collective
or flaperon.
2011-06-05 15:38:57 -05:00
James Cotton
a1d60cb77d OP-493: Use multiple instances when using multiple accessory channels 2011-06-05 15:38:57 -05:00
James Cotton
1365542103 OP-493: Populate the Accessory Desired from TX 2011-06-05 15:38:57 -05:00
James Cotton
4f47c06547 Merge branch 'saving_crc' into bugfix-flight 2011-06-05 15:37:44 -05:00
James Cotton
624baeda5c Merge branch 'OP-423_Mathieu_GetSet_Uavobjects' into bugfix-flight 2011-06-05 09:48:22 -05:00
James Cotton
0a56129b35 OP-452: Made the CRC calculation run in chunks to balance efficiency and ram
usage, because Stac caught me being lazy :)
2011-06-05 09:05:59 -05:00
James Cotton
56faad594e OP-423: Make sure to unlock semaphore before returning from error condition 2011-06-05 08:41:21 -05:00
James Cotton
599483d5ac OP-152: Save CRC for object and header into flash and only load object if CRC
matches.  Read the flash first bytewise to compute CRC instead of buffering
which is more RAM efficient but very inefficient as it sets up many one byte
SPI transfers.

Also incremented the filesystem magic flag to trigger an automatic flash wipe
on this upgrade.
2011-06-04 18:36:38 -05:00
James Cotton
3e5d02cbaf OP-152: Abstract the CRC code out of uavtalk to allow it to be reused (PT -
feel free to test moving this to the hardware CRC unit)
2011-06-04 18:36:26 -05:00
dankers
3013a092d9 Merge branch 'OP-519_Mathieu_Upgrade_FreeRTOS' into bugfix-flight 2011-06-04 16:42:15 +10:00
Mathieu Rondonneau
7b8d09371b fixing minor compiler error/warnings when compiling OP with DEBUG=NO 2011-06-03 21:47:43 -07:00
Mathieu Rondonneau
31a06a5ae7 OP-423 add set/get uavobjects functions to access objects fields separately. 2011-06-02 21:18:34 -07:00
Mathieu Rondonneau
6e64a546df Remove un-used code 2011-06-02 20:21:26 -07:00
Mathieu Rondonneau
071a684248 OP-519 upgrade to FreeRTOS-7.0.1
- only affect flight/PiOS (no change for posix and win32)
- tested on recent master (some runtime on CC with GCS)
- the new timer feature is not compiled-in since we don't use it yet.
- NO TEST FLIGHT
2011-06-01 21:46:28 -07:00
Oleg Semyonov
f770870af7 Merge branch 'bugfix-flight' 2011-06-01 14:53:31 +03:00
Oleg Semyonov
6e418735cf OP-509: fix for ld symbol reference (also fixes build with 4.5.2 gcc) 2011-06-01 00:31:27 +03:00
James Cotton
524cdf7743 OP-378: Start of IMU3000 fifo reading code 2011-05-31 01:51:05 -05:00
James Cotton
b6a8293f69 OP-378: Get BMA180 interrupt working. Data gets pushed onto a fifo that is
pulled from in the INS code.
2011-05-30 03:40:51 -05:00
James Cotton
efe50012cb Merge branch 'spektrum_rtc_supervisor' 2011-05-29 17:19:48 -05:00
sambas
17fb31a7fa Spektrum rtc supervisor working, tested on CC and all outputs are activated. Needs review and testing before merge. 2011-05-29 14:52:22 +03:00
sambas
86d02e2d34 Merge branch 'master' of ssh://git.openpilot.org/OpenPilot into spektrum_rtc_supervisor 2011-05-29 10:40:17 +03:00
Stacey Sheldon
5be27fda83 coptercontrol: Increase stack size for system module
When running flight software from master (cf74908), my
config was pushing the system module stack usage to within
16 bytes of its limit.  This triggers a stack overflow
alarm which prevents the quad from arming/flying.

This change increases the available stack size such
that there are 72 bytes of stack free (a previously stated
safe margin) when my quad is sitting idle and unarmed on
the bench.
2011-05-29 00:12:26 -04:00
Stacey Sheldon
ac0eb3a5c7 Merge remote branch 'origin/stac_build-opf-image' 2011-05-26 21:29:53 -04:00
James Cotton
66b85acebd Merge branch 'bugfix-flight' 2011-05-26 20:07:58 -05:00
James Cotton
ca2205d35f OP-378: Tweak INS stack definition to avoid faults 2011-05-26 16:02:15 -05:00
James Cotton
52e72f20e2 OP-378: Map gyros to board orientation 2011-05-26 16:01:10 -05:00
James Cotton
4a9e7604a1 OP-378: Push the sensor data into the UAVObjects, also hardcoded scaling
(temporary).  For some reason it segfaults when EKF enabled so use simple mode
for now.
2011-05-26 15:06:56 -05:00
James Cotton
d4a0f55cb7 Altitude.c: Indentation 2011-05-26 14:06:47 -05:00
James Cotton
eab8896f16 OP-378: INS code starts taking in sensors (timing not optimized at all yet) 2011-05-26 14:06:22 -05:00
James Cotton
9ede84680e OP-378: Start working on IRQ driven BMA180 reading and also fixed the mag order 2011-05-26 13:57:41 -05:00
James Cotton
6e186bab35 Merge branch 'bugfix-flight' into OP-378_James_INS 2011-05-26 12:19:35 -05:00
James Cotton
0a60c5b57c Merge branch 'master' into OP-378_James_INS 2011-05-26 12:19:30 -05:00
James Cotton
4bc763dafc Extend PiOS DELAY to allow querying the time value in uS 2011-05-26 12:19:04 -05:00
James Cotton
74b9c58f39 Make sensors return data as int16 array instead of struct 2011-05-26 02:49:25 -05:00
James Cotton
20775e806c Merge branch 'OP-378_James_INS' of ssh://git.openpilot.org/OpenPilot into OP-378_James_INS 2011-05-25 22:19:31 -05:00
Oleg Semyonov
36d2a467e0 manualcontrol: fix copy/paste error 2011-05-26 00:16:36 +03:00
Stacey Sheldon
4da671fc82 build: change firmware files from .opf to .opfw extensions 2011-05-25 00:20:02 -04:00
Oleg Semyonov
66804076b8 build: fix release/Makefile for *.opf files and changed targets 2011-05-24 23:49:51 -04:00
Stacey Sheldon
8bd08e381a build: add support for EE bank on pipx boards
The pipxtreme boards use a sector of the on-board flash
for configuration storage.  Adjust the memory maps to
reflect this.

The board_info_blob is also extended to include the EE
bank definitions.  This should be used by the pipxtreme
firmware rather than determining it based on chip size.
2011-05-24 01:10:40 -04:00
Stacey Sheldon
91cb294730 build: remove redundant PHONY for size target 2011-05-24 01:10:40 -04:00
Stacey Sheldon
0eb92fad91 build: refactor jtag program and add jtag wipe target
Macros for JTAG program and wipe for each target are now
provided in firmware-defs.mk.

The _wipe target for each firmware and bootloader image will
erase either the bootloader (bl_*_wipe) or firmware (fw_*_wipe)
bank.
2011-05-24 01:10:31 -04:00
Stacey Sheldon
9973fda23b build: define bootloader and firmware bank spans
The board-info.mk files now define the start and size
of the bootloader and the firmware banks.
2011-05-24 01:03:01 -04:00
Stacey Sheldon
504fe7a664 dfu: fix typo WRITABLA -> WRITABLE 2011-05-24 00:58:10 -04:00
Stacey Sheldon
96827eecff build: Make all flight sw use pios_board_info_blob
Now that every bootloader build has a board info blob,
make all fw and bl images use it.

The following MACROS are removed:
  BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION,
  START_OF_USER_CODE, HW_TYPE

These values are now ONLY available from the bootloader
flash via the pios_board_info_blob symbol.  These values
must not be #defined or otherwise hard-coded into the
firmware in any way.  The bootloader flash is the only
valid source for this information.

NOTE: To ensure that we have an upgrade path from an
      old bootloader (without board_info_blob) to a
      new bootloader (with board_info_blob), it is
      essential that the bu_* targets do not depend
      on (or validate) the board_info_blob being present
      in the bootloader flash.
2011-05-24 00:58:10 -04:00
David Carlson
38d416cf92 Fix Y/Z axis mixup in self-test procedure (currently not used) 2011-05-23 20:53:15 -07:00
Stacey Sheldon
2d47427b05 link: Use alternate declaration of pios_board_info_blob
Make use of a shorter notation to allow the linker to provide
the correct address for pios_board_info_blob.
2011-05-23 18:21:42 -04:00
Stacey Sheldon
6e406c0232 build: remove all remaining use of -DUSE_BOOTLOADER
The USE_BOOTLOADER compile flag was only being used
to determine where the ISR vector table was located.

Provide this explicitly from the linker since it knows
exactly where it is putting the ISR vector table.
2011-05-23 18:21:42 -04:00
Stacey Sheldon
0a67730d0f build: refactor fw, bl and bu rules
- New macros for fw, bl and bu rules in top-level make
- Per-board info factored into make/board/*/board-info.mk
- Per-board info now shared btw. fw, bl and blupd for each board
   - BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION, HW_TYPE
   - MCU, CHIP, BOARD, MODEL, MODEL_SUFFIX
   - START_OF_BL_CODE, START_OF_FW_CODE
- blupd_* goals renamed to bu_*
- all_blupd goal renamed to all_bu
- firmware goals renamed to fw_*, board name goals are preserved
- bu_*_program now writes updater to correct address for all boards
- BL updater firmware builds now produce .opf format including
  version info blob.
- BL updater firmware name now includes board name.
- INS makefile brought up to date w.r.t. linker scripts
2011-05-23 18:21:42 -04:00
Stacey Sheldon
6ec6425f5e build: build opf images including firmware + version blob 2011-05-22 10:55:13 -04:00
James Cotton
50161b4ad8 OP-378: Continue updating BMA180 sensor driver. 2011-05-20 16:38:53 -05:00
James Cotton
460cc1adc9 Merge remote-tracking branch 'origin/stac_add-bootloader-info-blob' 2011-05-19 16:08:58 -05:00
James Cotton
5d78a68bee OP-378: Got BMA180 working. 2011-05-19 11:36:43 -05:00
James Cotton
3093d26cf4 OP-378: Update BMP085 driver for convention that 0 is success, < 0 is failure 2011-05-19 11:36:32 -05:00
James Cotton
750097ea73 OP-378: Small changes to get drivers working again. Fix I2C port for IMU3000
and change convention so that 0 is success, < 0 is error.
2011-05-18 23:35:45 -05:00
James Cotton
ab3127a0ea OP-378 Update the INS Makefile for the new file formats 2011-05-18 14:39:38 -05:00
James Cotton
b7f25ea5d8 OP-378: Get startup script for HD parts working for INS 2011-05-18 13:41:31 -05:00
James Cotton
328b3b5fee OP-378: Update INS bootloader to new format 2011-05-18 13:41:25 -05:00
James Cotton
81b7fb6185 Merge branch 'master' into OP-378_James_INS 2011-05-18 12:50:29 -05:00
James Cotton
dd1e10a15d PiOS/Spektrum: Start swapping to using RTC and calls to PIOS_Spektrum_Get() to
monitor when call Spektrum watchdog
2011-05-18 01:46:00 -05:00
James Cotton
bdf862a712 PIOS/RTC: Add functions to get the rate. Also changed Start to Init to be more
consistent with pios.
2011-05-18 01:45:21 -05:00
dankers
5f32803763 Changed accelKp = 1; in 3C filter when calibrating bias when arming. Increase default yaw by 0.005 2011-05-17 04:15:28 +10:00
Stacey Sheldon
2044d777e6 coptercontrol: always enable -g debug symbols
This does not affect the size of the image or the RAM
used by the firmware image.  All debugging symbols are
stripped from the elf file during the conversion to a
.bin file.
2011-05-16 08:35:41 -04:00
Stacey Sheldon
575010169a build: add pios_board_info_blob struct to bootloader flash image
The board info blob is stored in the last 128 bytes of the
bootloader's flash bank.  You can access this data from the
application firmware like this:
  #include <pios_board_info.h>

  if (pios_board_info_blob.magic == PIOS_BOARD_INFO_BLOB_MAGIC) {
    /* Check some other fields */
  }

DO NOT link pios_board_info.c into your application firmware.
Only bootloaders should provide the content for the board info
structure.  The application firmware is only a user of the data.
2011-05-16 08:30:30 -04:00
Oleg Semyonov
39d4f23b67 Merge branch 'master' into OP-483_os_release-packaging 2011-05-15 21:32:20 +03:00
James Cotton
ae2759a957 Merge branch 'bugfix-flight' 2011-05-15 12:50:45 -05:00
James Cotton
eb2d094a66 Merge branch 'OP-499_216_Saving' 2011-05-15 10:09:29 -05:00
dankers
71d582495e On arm bias calibration terms now matches boot calibration terms 2011-05-16 00:16:19 +10:00
James Cotton
886f36dca1 Merge branch 'master' into OP-499_216_Saving 2011-05-15 03:58:30 -05:00
James Cotton
feb9c02780 OP-216: Small typo in flashfs code (thanks Zippe) 2011-05-15 00:18:15 -05:00
Oleg Semyonov
0005729056 OP-500: fix PyMite dependencies on autogenerated files
This is done by separating PyMite-dependent sources and making them
dependent on autogenerated python code. This was tested with make -j
on Windows and worked fine. It failed with errors otherwise:

In file included from ../Libraries/PyMite/vm/class.c:28:
../Libraries/PyMite/vm/pm.h:198: fatal error: pmfeatures.h: No such file or directory
2011-05-15 04:14:17 +03:00
James Cotton
b01e897e36 Merge branch 'OP-488_NeverHaltWhileArmed_James' 2011-05-14 17:21:05 -05:00
James Cotton
d312e876c4 OP-216: Some small bugs where things were stored 2011-05-14 16:11:30 -05:00
Oleg Semyonov
bac95dae11 OP-483: get rid of -D install switch (doesn't work on Mac) and use mkdir -p instead 2011-05-14 23:17:08 +03:00
James Cotton
d883c8af9f Whitespace and line endings 2011-05-14 15:15:33 -05:00
James Cotton
934addfdcc OP-216: Silly typo 2011-05-14 15:11:33 -05:00
dankers
84e09031a7 Faster attitude calc, be much more aggressive with working out bias.
Change AccelkP to 0.05 to give accels more influence, just balacing out the 3C filter.

Change stab setting to be a better default fopr most Quads.
2011-05-15 05:58:58 +10:00
James Cotton
c689d97961 OP-216: Improved error handling 2011-05-14 14:28:11 -05:00
James Cotton
0438f5cf66 OP-216: Check for existence of file table in flash and wipe sector and create
it if missing.
2011-05-14 14:23:23 -05:00
James Cotton
2087441006 OP-216: Make the object manager use new flash fs for objects 2011-05-14 14:23:02 -05:00
James Cotton
7e6e7bb391 OP-499 OP-216: Simple list of objects saved in flash to prevent objId
collision.  Note, this will wipe ALL your settings.
2011-05-14 14:05:02 -05:00
zedamota
a38fbe6cea Make CopterControl firmware non functional when using the ERASE_FLASH=YES compile flag 2011-05-14 19:03:31 +01:00
dankers
52fd23a3b9 Merge remote-tracking branch 'origin/bugfix-flight' 2011-05-14 00:28:42 +10:00
dankers
8e436eb2ac Merge remote-tracking branch 'origin/bugfix-flight' 2011-05-14 00:28:19 +10:00
James Cotton
dbf8a77a94 Now there are other attitude settings (like rotation angle) make sure these are
loaded right away at power up
2011-05-13 07:24:44 -05:00
Oleg Semyonov
a7833e0120 OP-483: add install target for bootloader updater 2011-05-13 11:25:35 +03:00
Oleg Semyonov
45c609100a OP-483: add install target for bootloaders 2011-05-13 11:25:33 +03:00
Oleg Semyonov
37868a4c10 OP-483: add install target for firmware
make INSTALL_DIR=dir INSTALL_PFX=pfx INSTALL_SFX=sfx install
installs binary file into specified install directory adding
optional prefix and/or suffix.
2011-05-13 11:25:32 +03:00
Oleg Semyonov
bf8939eb30 OP-483: cleanup: remove unneeded test.bin from BootloaderUpdater 2011-05-13 11:25:30 +03:00
James Cotton
3d5244c4b8 Fix small typo THRSHOLD to THRESHOLD in gps.c 2011-05-12 18:57:16 -05:00
Corvus Corax
bce51d4258 OP-435 Optionally allow building of GPS without support for GPSSatellites and GPSTime UAVObjects to save memory 2011-05-12 21:00:59 +02:00
James Cotton
612cd4ff55 Merge branch 'bugfix-flight' 2011-05-11 20:10:38 -05:00
James Cotton
338d363289 When a channel is disabled in the mixer force the channel to have a 0 us pulse
duration.  The default before was neutral in failsafe.
2011-05-11 20:09:28 -05:00
James Cotton
5d28276c49 Reshuffle memory allocation on CC after FlightStatus object introduced 2011-05-11 17:35:52 -05:00
James Cotton
fdd591b700 OP-488: If the FirmwareIAP receives a halt signal but system is not disarmed
abort the halt.
2011-05-10 14:40:21 -05:00
James Cotton
163d41fb60 OP-466: Make the test output panel work when there is not a valid mixer
configured.  However unlike previous patch keeps alarms showing so you will be
unable to arm normally.
2011-05-10 02:43:55 -05:00
James Cotton
d140d9c1fc Fix from Ivan for BootloaderUpdater not building with 4.5.1 2011-05-10 02:11:34 -05:00
elafargue
f904e09353 Merge branch 'master' into OP-307_Firmware_Description_Packaging 2011-05-10 08:31:25 +02:00
James Cotton
808e3c8ea2 Fix bug I made where guidance didn't look at new flight status object 2011-05-09 11:37:06 -05:00
James Cotton
fb8417a0ff Merge remote-tracking branch 'origin/op_475_476_calibrate_during_arming' 2011-05-09 09:23:16 -05:00
elafargue
c4c9be37c6 Fix typo 2011-05-09 15:30:02 +02:00
elafargue
437d33526a Add command line arguments to versionblob.py so that it is easier to use. 2011-05-09 10:54:29 +02:00
elafargue
adb1e77869 Merge branch 'master' into OP-307_Firmware_Description_Packaging 2011-05-09 10:18:00 +02:00
Stacey Sheldon
b2b1c184de stopwatch: Add support for timers 5-8
This fixes the OP bootloader getting stuck in the
bootloader forever when USB is plugged in.

This also fails hard on being passed an unsupported
timer value so that this can be caught more easily
in the future.
2011-05-08 12:41:02 -04:00
Stacey Sheldon
965867de7a gdb: add config file for coptercontrol bootloader 2011-05-08 12:40:29 -04:00
Stacey Sheldon
29ec2f198b build: convert all app loads to require bootloaders
This change is made up of a number of tightly coupled
changes:
 - Deprecate the use of the USE_BOOTLOADER command-line
   option.  It is now hard-coded in each Makefile.
   Overriding it on the command line is not allowed.
 - Split apart the memory declaration and the section
   declaration in all linker files (*_memory.ld and
   *_sections.ld).
 - Describe the split between bootloader and app sections
   of flash in each board's _memory.ld file.
 - Change program target to selectively erase flash so
   that the installed bootloader is preserved across even
   JTAG programming operations.
 - All elf files are built with debug symbols and are not
   stripped.  This should help debugging with gdb.  The
   images programmed on the boards are all .bin files now
   which do not include symbols.
2011-05-08 12:40:29 -04:00
Stacey Sheldon
465034cf94 bootloaders: always build with debug symbols enabled
This makes it easier to use gdb to debug issues.  This does
not change the -O flags, only makes -g always on and does
not strip the .elf files.
2011-05-08 12:40:28 -04:00
Stacey Sheldon
18ea93119f build: Add support for BL_Updaters to top-level makefile
New targets:
 - make blupd_all_clean
 - make blupd_all
 - make blupd_openpilot
 - make blupd_ahrs
 - make blupd_coptercontrol
 - make blupd_pipxtreme

These targets are also included in the 'all_flight' target.
2011-05-08 12:40:28 -04:00
sambas
a2c62d9a1b Merge branch 'master' of ssh://git.openpilot.org/OpenPilot into OP-378_CheBuzz_INS 2011-05-08 08:44:13 +03:00
elafargue
a2656ed589 Merge branch 'master' into OP-307_Firmware_Description_Packaging 2011-05-08 00:08:09 +02:00
Stacey Sheldon
2301600f11 Make missing definitions for essential macros more obvious 2011-05-07 18:05:50 -04:00
Stacey Sheldon
7e99419c8a build: Add support for %.bin.o generation
The .bin.o rule places the contents of a raw .bin file
into an .o file wrapped within fixed symbols for start
and end.  This can be used to embed a binary file inside
of an executable.

The symbols for the embedded binary blob are:
 _binary_start
 _binary_end
 _binary_size

NOTE: The way the .bin.o rule is currently written, you
can only embed one binary blob in an executable since the
symbol names will collide if you add multiple blobs.  This
limitation is easily removed later if necessary.
2011-05-07 18:05:50 -04:00
Stacey Sheldon
58a2c71532 line-end changes only 2011-05-07 18:05:50 -04:00
James Cotton
4ec0263dfc OP-476: If AttitudeSettings.ZeroDuringArming is true, then while arming (1
second) it will speed up the estimate of gyro bias.
2011-05-07 15:29:21 -05:00
James Cotton
8e06eb3162 Get the "IDLE_NO_LOAD" level closer for CC with optimizations on, but it would
be great if someone actually calibrated this for me!
2011-05-07 15:07:14 -05:00
James Cotton
10e55c25bc OP-475: More changes to get the FlightStatus object to work for Armed and
FlightMode
2011-05-07 15:06:04 -05:00
James Cotton
80c839d5bb OP-475: Starting to use the new FlightStatus object 2011-05-07 13:17:21 -05:00
James Cotton
ae841d57cb OP-475: New FlightStatus object. Removed from ManualControlCommand. Won't
build yet.
2011-05-07 12:45:35 -05:00
James Cotton
e2819c6815 Restructure the ManualControlCommand code to be much more readable. Also
facilitates the new FlightMode object.
2011-05-07 12:43:27 -05:00
sambas
454e8a1540 ins bootloader fixes 2011-05-07 18:36:21 +03:00
sambas
d61f3d4d94 Merge branch 'OP-378_CheBuzz_INS' of ssh://git.openpilot.org/OpenPilot into OP-378_CheBuzz_INS 2011-05-07 18:26:12 +03:00
James Cotton
d1fb254a41 Merge branch 'master' into bugfix-flight 2011-05-07 06:56:54 -05:00
James Cotton
d3247c9946 Remove unused code from coptercontrol.c 2011-05-07 06:56:20 -05:00
James Cotton
fef1e2dc2e Merge remote-tracking branch 'origin/OP-174_Sambas_BaroAlt_to_ETOSD' 2011-05-07 04:41:13 -05:00
elafargue
98c38a4e5e Bugfix 2011-05-07 09:25:27 +02:00
elafargue
a216d050ab Prototype 'version blob' python script to generate a binary description file to append to end of firmware before uploading. 2011-05-06 21:46:36 +02:00
Corvus Corax
5f749dda7e Modules/ManualControl: bugfix GCS Control was broken due to connection state and arming being checked outside of the "object_writable()? {}" if clause 2011-05-06 01:26:34 +02:00
Corvus Corax
39a9087c98 Merge branch 'master' into bugfix-flight 2011-05-06 00:29:31 +02:00
James Cotton
7e418866be Update the AttitudeSetting object to make the board rotation more human
readable and update the GCS fields appropriately.
2011-05-05 13:04:56 -05:00
Corvus Corax
59dd0637a3 PiOS_posix: Add support for pios_debug API, to allow building of GPS module in x86 environment 2011-05-05 14:57:30 +02:00
James Cotton
dd36192e37 Merge branch 'bugfix-flight' 2011-05-05 00:36:55 -05:00
James Cotton
93d8449814 OP-474: When throttle < 0 and "spin while armed" mode enabled don't take into
account stabilization or stick - stay at neutral
2011-05-05 00:32:15 -05:00
James Cotton
21a71e5294 Merge branch 'master' into spin_while_armed
Added back the "Spin arming" button to output panel and made it work
Conflicts:
	ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp
	ground/openpilotgcs/src/plugins/config/output.ui
2011-05-05 00:23:51 -05:00
James Cotton
05684e966b OP-470: Make arm/disarm threshold 50% instead of 90% 2011-05-04 22:53:00 -05:00
James Cotton
7e98bb42c9 OP-462: Patch from OS to override the debug flag for bootloaders 2011-05-03 12:54:11 -05:00
James Cotton
401a989c63 OP-474: Add option to ActuatorSettings to allow people to request their propellers always spin an neutral when armed (I don't recommend this). 2011-05-03 00:08:39 -05:00
James Cotton
9daca1ac41 OP-469: Wasn't paying attention and missed a line 2011-05-02 22:22:57 -05:00
James Cotton
2e552f767e OP-469: Wasn't paying attention and missed a line 2011-05-02 22:22:16 -05:00
Corvus Corax
8d8144f233 OP-441 Prevent double alarm set ( setFailsafe() already sets alarm to CRITICAL ) 2011-05-02 18:00:12 +02:00
James Cotton
9afedc0139 OP-469: Fix a bug I wrote where MaximumRate instead of ManualRate was used to
scale sticks in rate mode.
2011-05-02 04:33:32 -05:00
James Cotton
d9221fac06 Merge remote-tracking branch 'origin/OP-452_InputConfiguration' 2011-05-02 03:40:59 -05:00
James Cotton
1f36e00287 Merge remote-tracking branch 'origin/OP_442_OP_437_PT_Dreamer' 2011-05-02 03:34:09 -05:00
David Carlson
341dbd7ad9 Change blink rate to Hz rather than 1/2 Hz. As per comments in review OPReview-18. 2011-05-02 00:50:42 -07:00
David Buzz Carlson
edd5ad8a78 Update Stat LED blink rate when armed to 5 Hz from its current 1 Hz. This allows a more drastic change in LED behavior to highlight that the aircraft WILL NOW CUT YOUR FINGER OFF IF YOU DON'T RESPECT IT!! 2011-05-02 00:50:42 -07:00
David Buzz Carlson
c93ab7e723 Change CC, OP MB, and AHRS to use bootloader by default.
Also change AttitudeActual to update at 10Hz rather than 2 Hz.  The increased bandwidth is minimal and the resulting "polish" that it adds to the look-and-feel of the GCS is signifcant.
2011-05-02 00:50:42 -07:00
zedamota
5dd8a3eea2 Fix a silly mistake on the CC erase_flash compile flag. 2011-05-01 20:10:27 +01:00
elafargue
6b00ed3866 NACKs implemented on both ground and flight side, connect time goes under a few seconds now. 2011-04-30 19:32:42 +02:00
zedamota
3d209f2166 Fix to erase option. Erase must be performed after board initialization. 2011-04-30 14:17:44 +01:00
James Cotton
62e3d35a97 OP-452 Read the channel times even if a bad mixer is configured 2011-04-29 17:57:04 -05:00
zedamota
8dd46e1465 Should fix the CC showing as OP.
Added a compile flag to make a CC fw version that will erase flash.

Signed-off-by: zedamota <josembarros@hotmail.com>
2011-04-29 23:38:26 +01:00
zedamota
6172e45c0d Should fix CopterControl showing as Openpilot on DropDown box. 2011-04-29 21:42:59 +01:00
zedamota
1cc152b4dd More cleaning, moved stopwatch files to library folder, code formatting. 2011-04-29 20:48:13 +01:00
zedamota
3132de4e48 Fixes download being slow issue. Made some cleaning also 2011-04-29 19:22:21 +01:00
Sambas
2413fd451f OP-174 ET OSD: barometric altitude works now, units must be set metric with E-Logger 2011-04-29 19:08:28 +03:00
James Cotton
5f776f0b58 Merge branch 'master' into OP-439_CorvusCorax_Bootloader-Makefile-and-OpenOCD-config-for-Linux 2011-04-27 23:41:35 -05:00
James Cotton
819bc9d441 Merge branch 'master' into OP-430_Ligi_UAVTalk-Code-Review 2011-04-26 12:49:32 -05:00
Corvus Corax
8c7f3e2720 OP-435 #ifdef covered one command too many - bugfix 2011-04-25 18:37:28 +02:00
Corvus Corax
eb9ccc2f9b OP-383 Review 11 : Removed commented out unused variables as directed by review 2011-04-25 16:36:23 +02:00
Corvus Corax
cdb6b65e64 Merge branch 'master' into OP-383_Edouard_CPUSerial_in_FirmwareIAP 2011-04-25 02:36:44 +02:00
James Cotton
69d03ca101 OP-439: Simplify further. Abstract most of the OOCD flags into the common
firmware include and delete all the extra foss-jtag config files.  There is now
a legacy file for the revA board a second for AHRS that changes the port
2011-04-24 10:19:00 -05:00
Corvus Corax
ee7179bd53 OP-439 unified OpenOCD config for mac os x and Linux, Makefiles adapted accordingly 2011-04-24 12:10:33 +02:00
marcus bueschleb
06ac71b784 do not force telemetry update when alarm is changed - this was bypassing the MetaData of the UAVObject and seem to be a relict from times where no metadata existed - now doing it the MetaData way with onchange as updatemode - see http://forums.openpilot.org/topic/4208-systemalarms-bypassing-updatemode-from-metadata/ and OP-431 2011-04-24 03:43:05 +02:00
Corvus Corax
5d952f81e3 PIOS: BL_HELPER: refactored function names 2011-04-23 21:11:17 +02:00
Corvus Corax
150464344d BL_HELPER: call CRC_Ini() from within CRC check function 2011-04-23 20:55:21 +02:00
Corvus Corax
0a05896146 CopterControl: Added dependency: pios_bl_helper 2011-04-23 19:56:48 +02:00
Corvus Corax
357bc369db PIOS: Bootloader Helper functions should sit in HAL, not duplicated in every single architecture. 2011-04-23 19:40:41 +02:00
Corvus Corax
192e31986d PIOS, Modules/FirmwareIAP: Use correct HAL for CPU serial 2011-04-23 18:30:32 +02:00
Corvus Corax
2bf7ea2271 Modules/GPS: Make code to deal with home location optional to allow a sleeker GPS module for RAM challenged systems 2011-04-23 16:49:07 +02:00
David Buzz Carlson
876ca3044c Added EKF code. Most of this was bulk copy and paste from the AHRS, so a lot of verification needs to take place. Grabbing sensor data remains untested. 2011-04-20 03:37:50 -07:00
marcus bueschleb
b7eba1f9b9 made all periods unsigned 2011-04-20 12:33:16 +02:00
elafargue
e4112e210f Reduce size of FirmwareIAPObj to 40 bytes: only takes the 40 first bytes of the firmware description, ignores the rest. Makes the FWIAP UAVObject more decent size-wise, and does not break USB TX anymore. 2011-04-19 20:45:49 +02:00
elafargue
45e92d654e Implemented support for the Unique STM32 CPU serial number in the firmwareIAP object. 2011-04-19 00:31:20 +02:00
corvus
08eabd21e4 Fixed files with mixed line endings
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3168 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-15 12:03:20 +00:00
peabody124
3afdc7e41c CC-24: Rotate the CC board at any angle relative to "flat and level" with GCS
config plugin updates.  Has not been tested in flight yet although seems
sensible so please be careful when using this code.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3166 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-15 06:37:16 +00:00
edouard
08b154590d Correct a typo in the CC bootloader USB descriptor define file (in the comments)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3164 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 21:35:09 +00:00
edouard
1f88b7f5aa Remove obsolete README files. Obsolete and actually misleading...
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3163 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 21:00:40 +00:00
chebuzz
06443b4281 OP-378 - OP/INS - Add initial support for INS. HMC5883, BMP085, BMA180, IMU300 all added. Throrough verification has not been done on any of them. main() simply calls self-test functions on all of the hardware.
AHRS_comms still needs to be implemented.  INS/GPS functionality still needs to be implemented.  Double-check of the new drivers still needs to be done.


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3162 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 12:46:39 +00:00
chebuzz
7fcde2f248 OP-377 PiOS/BMP085 Update BMP085 driver to be FreeRTOS agnostic
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3161 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 09:53:04 +00:00
chebuzz
195e93c0d6 OP-377 PiOS/BMP085 - Update BMP085 driver to be FreeRTOS agnostic. This is required since new INS does not run FreeRTOS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3160 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 09:46:23 +00:00
zedamota
a893cd99da flight - Linux Eclipse Workspace - cleaned the workspace.
This file is exactly the same used in the video published on the wiki 

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3159 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-12 13:03:37 +00:00
peabody124
99c00fb9fe Revert changes to AHRS Makefile. Need to keep DEBUG=NO.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3155 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-11 18:47:36 +00:00
sambas
3b9e762b69 OP-22 Flight/PiOS: Spektrum bugfix, for other than DX7
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3154 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-11 13:42:32 +00:00
jonathan
9f5c393672 OP-191: Add svn:eol-style property for native line endings on checkout;
Add (temporarily disabled) hooks for the rotational misalignment between the accelerometer and magnetometer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3151 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-10 18:37:32 +00:00
jonathan
c70e134cf8 Add helper function for converting an Euler rotation vector to a rotation matrix
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3150 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-10 18:33:30 +00:00
pip
33d9d31082 Modified manual control input value checking to determine RC connection state - was previously checking only the throttle channel for semi-valid input range, it now checks the Throttle, Roll, Yaw and Pitch channels for full-valid values (manual value is within min and max values).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3146 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-10 14:00:46 +00:00
dankers
d285dc6a46 Remove my old Eclipse workspace, Jose is handling these from now on.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3138 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-10 00:17:16 +00:00
zedamota
1d4eb11c0e flight - don't know why but after I commit this file under windows and try using it on Ubuntu it messes the workspace, this time I'll try to commit in nix
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3137 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 22:36:46 +00:00
zedamota
3f15b71755 flight - updated eclipse workspace files
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3136 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 18:27:19 +00:00
sambas
dabc33c71c OP-22 Flight/PiOS: fix for 11ms framerate, Spektrum supervisor timer must have atleast one interrupt between frames
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3134 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 14:51:39 +00:00
sambas
cdfbf8614c OP-22 Flight/PiOS: Spektrum parser handles all known TXs, or atleast should. Test it well before sending aircraft to the sky.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3133 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 14:17:23 +00:00
ligi
c9f9400d75 unify the style rxbytes are assembled & remove the need for a tmp-buffer
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3131 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 04:26:25 +00:00
zedamota
7b1d87475a Flight - Commited Linux Eclipse working workspace. A usage "movie" will follow soon.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3126 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-07 13:54:45 +00:00
corvus
8a49dbb6ab OpenPilot_posix: Added ENABLE_QUATERNION_STABILIZATION define
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3116 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-01 15:14:33 +00:00
corvus
da76192e47 Modules/Guidance: Bugfix in Position-Hold code
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3112 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-31 20:08:14 +00:00
peabody124
a57c289b3a CC-24: Support mounting CC at any angle by applying a rotation. Now need to
rotate sensors to make sure stabilization behaves well so don't use till then.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3100 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-29 02:15:57 +00:00
peabody124
48c20d37a9 OP-349 CC-32: Added a Completed operation that is returned after successful
save or load

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3093 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-28 19:16:50 +00:00
peabody124
bd5925d526 CC-35: Separate term for CC yaw bias rate and others
Note: AttitudeSettings changed so you'll need to re-zero it

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3090 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-28 18:42:48 +00:00
peabody124
4120937391 OP-364 OP-191: Convert the OPMap setting of HomeLocation to mGau to match the
changes in flight code

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3083 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-28 10:40:26 +00:00
peabody124
3fc88f69e2 Covering a case that should not occur
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3081 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-26 21:02:43 +00:00
edouard
bce3d21a0f Fix FirmwareIAP module, as it failed to reset the board if the object was queried before for other purposes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3080 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-26 12:00:08 +00:00
peabody124
e262e3c220 Convert outer position controller to PI
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3077 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-26 11:40:33 +00:00
fredericg
662a3e5cc8 OP-361 Also parse ZDA message in order to get GPS time info with new GTOP FW
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3074 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-26 11:13:11 +00:00
peabody124
eafcf35fa6 Reenable position hold
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3072 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-25 20:17:31 +00:00
edouard
f19b0efc6f CC-40 Implemented support for FirmwareIAP on Coptercontrol: you can now use the "Halt" command on the uploader gadget.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3070 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-25 13:50:13 +00:00
chebuzz
2e5863281c CC/Stabilization - Fix attitude bias not being applied over all sampled quantities
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3065 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-24 17:12:04 +00:00
fredericg
b37dd770d2 Use attitudeActualData.Yaw for course
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3064 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-24 10:56:20 +00:00
peabody124
487b039229 Earlier patch broke coding conventions for line endings
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3062 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-22 12:47:15 +00:00