1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-02 10:24:11 +01:00
Commit Graph

1885 Commits

Author SHA1 Message Date
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
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
Oleg Semyonov
481bff2578 spektrum: code style fixes accoring to OPReview-122 2011-11-01 18:48:07 +02: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
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
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