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

3625 Commits

Author SHA1 Message Date
Brian Webb
04da5d2377 USB/COM/RFM22B: Added a standard com callback to test for link availability. This replaces the PIOS_USB_CheckAvailable function with a generic PIOS_COM_Available function. This is now used by the RFM22B com driver to test if a good link is up. This was originally written by James, and Brian merged it into the latest RFM22B branch. 2012-12-11 17:44:03 -07:00
Brian Webb
e36bd678e1 RFM22B: Allow a receive to happen between transmitts. 2012-12-11 17:44:01 -07:00
Brian Webb
9f43e1151c RFM22B: Fixed status reporting and connection status for OPLink. 2012-12-11 17:44:00 -07:00
Brian Webb
15fc29560a RM: Remove configuration of the RFM22B from the RevoMini pios_board.c. This is in preparation for auto-configuration. 2012-12-11 17:43:58 -07:00
Brian Webb
bd42083376 RFM22B: Changed the way the frequencies and power settings are set for the rfm22b device. 2012-12-11 17:43:55 -07:00
Brian Webb
dae382564a RFM22B/RM: Added rfm22b com device, moved remaining functionality in the radio module to the rfm22 driver, and simplified configuration of the PipX/OPLink. The radio device now presents itself completely as a com device, both in RadioComBridge (OPLink devices) and Telemetry (RM). Also change the PipXStatus and PipXSettings UAVOs to OPLinkStatus/OPLinkSettings. 2012-12-11 17:43:53 -07:00
Brian Webb
0113b6a748 Added UAVTalkRelayInputStream to the UAVTalk library that parses a UAVTalk packet and sends it when it is complete. This allows the interlieving of packets on an output UAVTalk stream, and is used by the OPLink device to relay packets from an input com port to a different output com port without sending one packet in the middle of another packet. 2012-12-11 17:43:50 -07:00
Brian Webb
4b90f81f6f RFM22B: Modified the method of tracking RX errors, and now reporting Good, Corrected, Error, and Missed packets to the GCS. Also removed some less useful fields from the PipXStatus. 2012-12-11 17:43:49 -07:00
Corvus Corax
7ac258352a OP-753 - prevent flying in wrong direction in FlyVector mode. 2012-12-04 16:18:24 +01:00
a*morale
3dc11b297b Enabled airspeed module on RevoMini target 2012-12-02 17:14:54 +01:00
Oleg Semyonov
9420a76820 [OP-724] Better name for dT according to OPReview-368 comment 2012-12-02 14:09:21 +02:00
Oleg Semyonov
41d56b282e [OP-724] Remove LPF from throttle input channel (not necessary) 2012-12-02 13:50:03 +02:00
Oleg Semyonov
cc98962c36 [OP-724] Provide generic gimbal type 2012-11-29 18:03:05 +02:00
Oleg Semyonov
8adc2abd77 [OP-724] Now most camera options can be set independently per each axis. 2012-11-29 17:39:10 +02:00
Oleg Semyonov
5784ea8b36 [OP-724] Provide Actuator option to disable selected channels and use it for 7s camera boot delay
Actuator did not provide an option to completely shutdown selected channels
(set PWM pulse = 0). It is useful for camera stabilization boot delay (we
want few seconds of gimbal servo inactivity to calibrate gyros). It also
might be useful for failsafe on some channels. This option is now available.

It is used to disable camera outputs during fixed 7s delay after boot
instead of setting them to minimum position.

As a side effect, few bugs are fixed (ticks should be multiplied by
portTICK_RATE_MS, not divided, to get time in ms). And few floating point
operations were optimized out as well.

ActuatorCommand.UpdateTime was promoted to uint16 because it is not unusual
to have it 20000ms during flash updates (was seen on the CC after UAV
settings import). So it should be 16bit as well.
2012-11-29 17:39:09 +02:00
Oleg Semyonov
8f5fb5aeb0 [OP-724] Add camera gimbal filtering and feed forward options
This is a partial rework of Cossacs' camera gimbal software.

This patch adds LPF to airframe attitude used for camera stabilisation
and feed forward for camera actuators. Either of options can be
disabled on the compilation level to save flash and RAM if not
required.

Original Cossacs' code was optimized and code flow shortcuts were
added where applicable.
2012-11-29 17:39:08 +02:00
Oleg Semyonov
ee333f1569 [OP-724] Add manual control input filtering (useful for camera gimbal)
This is a partial rework of Cossacs' camera gimbal software.

This patch adds LPF to some of manual control inputs. Mostly
useful are accessory channels (for camera gimbal control) and
yaw channel (for smooth filming). The code may be used for
stand-alone CC[3D]-based gimbal software, but also should work
for complete FC+camera system.
2012-11-29 17:39:07 +02:00
Oleg Semyonov
ea1199603b Merge remote-tracking branch 'origin/rel-12.10.2' into next
Conflicts:
	MILESTONES.txt
2012-11-29 17:31:50 +02:00
Erik Gustavsson
4312652241 Use enum to index array.
Replace 0 with 0.0f in assignment.
2012-11-29 00:03:39 +02:00
Erik Gustavsson
5e14f5352f Minor codestyle/whitespace cleanup 2012-11-29 00:03:38 +02:00
Erik Gustavsson
dc5394dcf3 Add setting to suppress axis output from Stabilization module until armed and throttle is applied. Useful to keep the tail prop out of the grass while arming a tri. 2012-11-29 00:03:37 +02:00
Oleg Semyonov
96c7ec37a9 Merge remote-tracking branch 'origin/hyper/flight_uavo_access_type_safety' into next 2012-11-24 16:33:19 +02:00
a*morale
20eb2d7b98 Fixed RTC clock 2012-11-23 19:43:31 +01:00
a*morale
2d83e8a779 Fixes for SBUS support on RM2.
Note: it needs the RTC timing to be fixed as it seems that it runs at half its nominal 625Hz value
2012-11-23 19:41:23 +01:00
Corvus Corax
c6effbbb0f bugfix to pathplanner 2012-11-23 12:29:25 +01:00
Corvus Corax
55f0d41016 bugfix in fixed wing path follower 2012-11-23 11:49:17 +01:00
Richard Flay (Hyper)
5864219d27 Removed __attribute__((always_inline)) after review discussions. 2012-11-23 07:15:28 +10:30
Corvus Corax
7059d4f032 changed some details as to dschin's suggestions 2012-11-22 13:26:45 +01:00
Corvus Corax
264f631df6 Merge branch 'corvuscorax/baro_fixes' into revo-fixes 2012-11-22 11:51:36 +01:00
Corvus Corax
35509ee977 moved sanitycheck from system to manualcontrol to not break OSD and PipX
targets

Conflicts:

	flight/Modules/ManualControl/manualcontrol.c
2012-11-22 10:11:18 +01:00
Oleg Semyonov
1fbaaddcd4 Merge branch 'stac/stop-wasting-ram' into next 2012-11-19 01:51:37 +02:00
Stacey Sheldon
f0fb22c090 uavobjectmanager: initialize new uavo_handles section
The uavo_handles section is not part of the .data segment so
it doesn't get automatically zeroed during the startup code.

This led to random data being stored in the table which resulted
in bus errors at runtime.

This change ensures that the table is zeroed before we start to
use it.
2012-11-18 16:48:13 -05:00
Stacey Sheldon
c1fc605696 uavobjectmanager: remove linked list for UAVOs 2012-11-14 23:38:24 -05:00
Richard Flay (Hyper)
6c0b91dee7 Minor tweak for coding standard compliance. 2012-11-15 07:45:35 +10:30
Oleg Semyonov
79f95983da Merge remote-tracking branch 'origin/rel-12.10.2' into next 2012-11-14 17:26:18 +02:00
Oleg Semyonov
22173d96e5 Merge remote-tracking branch 'origin/cyr/accel_filter' into rel-12.10.2 2012-11-14 04:44:11 +02:00
Erik Gustavsson
f9f58f22d8 Take the magnitude of the correct gravity vector 2012-11-12 17:16:28 +01:00
Stacey Sheldon
e5c54cca00 freertos: change default alignment to 4-byte from 8-byte
There shouldn't be any reason to need 8-byte alignment on the
F1 platform.  This allows better packing of all malloc'd data.

Reducing this below 4-byte alignment is not recommended and will
likely result in misaligned pointers being passed to peripherals.

RAM savings is another 300 bytes.
2012-11-11 22:16:00 -05:00
Erik Gustavsson
e38ba912cd Clarify comment about gravity vector 2012-11-11 21:13:05 +01:00
Erik Gustavsson
04c194fa48 Coding style fixes 2012-11-11 21:10:52 +01:00
Corvus Corax
40381d98ae compile sanitycheck into simposix 2012-11-11 18:22:01 +01:00
Corvus Corax
5862346d40 Merge remote-tracking branch 'baseorigin/corvuscorax/simposix_firmwareiap' into corvuscorax/sanity_additions 2012-11-11 18:06:16 +01:00
Corvus Corax
ec5f9d232f Revert "do not do configuration check on SimPosix architecture, its not ported yet"
This reverts commit 112a3fe7e5.
2012-11-11 18:05:46 +01:00
Corvus Corax
112a3fe7e5 do not do configuration check on SimPosix architecture, its not ported yet 2012-11-11 17:39:37 +01:00
Corvus Corax
d1447ca3f8 Rise Botfault error whenever hwsettings has been changed but no reboot took place yet 2012-11-11 17:23:07 +01:00
Corvus Corax
4e32413954 removed pathplannersettings from flight 2012-11-11 14:57:52 +01:00
Stacey Sheldon
e2b019edd9 telemetry: stop registering periodic events for non-periodic UAVOs
Telemetry module was iterating over all UAVOs including
meta UAVOs and creating a periodic event item for each
object.  These items cost us about 32 bytes for each list
item.

This is wasteful for two main reasons.  First, meta UAVOs can't
meaningfully have periodic updates so excluding them entirely
makes sense.  That halves the number of objects in this list since
there is one meta object for every data object.  This is worth
about 500 bytes of RAM on CC.

Second, about half of the remaining UAVOs are not periodic by
default so they're wasting memory unless someone happens to want
to make them periodic at runtime.  This is worth another 450 bytes
of RAM on CC.

So, objects that are configured as periodic during board init will
support all of the periodic config at runtime.  Objects that are
*not* periodic during board init can only be made periodic on the
next boot.

Each object that you make periodic during init will cost you an
extra 32 bytes of RAM.

With erased settings, free RAM comparison for CC is:
  Before: 2736 bytes free
  After:  4048 bytes free

Total RAM savings with this update is 1312 bytes!
2012-11-10 18:04:16 -05:00
Richard Flay (Hyper)
54ebcb1ea8 Removed a spurious call to AccelsSet() that was causing garbage data to be transiently written to the Accels UAVO. Props to cyr for kicking off the discussion that led to the discovery of this bug. 2012-11-11 00:31:08 +02:00
lilvinz
a7029baa32 pios_jedec: fixed usage of uninitialized memory
When reading the jedec device id the code only transfered one byte via spi leaving
the expected input buffer uninitialized. This may lead to the problem that flash
initialization fails because the expected input may be whatever the stack was set
when entering the function. The impact of the bug is somewhat limited tough as the
initialization usually takes place before starting up the rtos and thus is pretty
deterministic. So if the code passed init while testing it should pass init in
production as well.
2012-11-11 00:31:07 +02:00
Richard Flay (Hyper)
eda6b6a24a Improved type-safety. Replaced flight side UAVO access macros with inline functions to ensure that correct pointer types are always passed to UAVO access functions. 2012-11-10 20:47:10 +10:30
Corvus Corax
064ed4087c set AirspeedActual from attitude module, feed true airspeed estimation into EKF to allow more accurate INS 2012-11-08 11:30:58 +01:00
Corvus Corax
8dd5d5a68b type fix in header file 2012-11-08 11:12:05 +01:00
Corvus Corax
e9da78406a Merge branch 'corvuscorax/baro_fixes' into corvuscorax/airspeed_fixes 2012-11-08 09:48:01 +01:00
Corvus Corax
b09027afe5 Completely refactored airspeed module, now a pure sensor input module without any complex sensor fusion features -- changed driver for mpxv analog airspeed to be more versatile 2012-11-08 01:31:21 +01:00
Erik Gustavsson
104c61a174 Move accel filter to separate function, for cleaner code and easier filter alteration.
Optimize for filter disabled case (AccelTau = 0.0).
2012-11-06 20:17:10 +01:00
Corvus Corax
5981d9acd6 removed surplus NEDposition uavobject 2012-11-06 10:13:09 +01:00
Corvus Corax
3c8ffa9773 Revert "When in indoor mode reset the baro offset to zero"
This reverts commit 9c512261e6.
2012-11-06 09:42:14 +01:00
Corvus Corax
e8232ba825 Pathplanner: removed pathPlannersettings and preprogrammed (hardcoded) paths 2012-11-05 16:04:45 +01:00
Corvus Corax
cc8e56f170 OP699: changed update rate to use constant 2012-11-05 15:59:13 +01:00
Corvus Corax
ce595a06d9 Merge remote-tracking branch 'baseorigin/revo/corvuscorax/airspeed_fixes' into corvuscorax/airspeed_fixes
Conflicts:
	flight/RevoMini/UAVObjects.inc
2012-11-05 15:16:03 +01:00
Corvus Corax
8f5b2954ac Airspeed module: use stored calibration if available 2012-11-05 10:59:06 +01:00
Corvus Corax
5bf18780c1 do not calibrate if there is a pre-stored calibration value 2012-11-05 10:41:24 +01:00
Corvus Corax
4367bd62bf OP-699 : removed unnecessary object queue in pathplanner 2012-11-05 10:34:44 +01:00
Corvus Corax
e5ab038a89 removed unnecessary comment 2012-11-05 10:33:51 +01:00
Corvus Corax
e2ca9cbb45 OP-699 - refacor ugly buzzer code actuaor module 2012-11-05 10:09:43 +01:00
a*morale
774dde3da5 Normalized the HW configuration to point to _RM_ configuration settins 2012-11-04 13:37:06 +01:00
a*morale
920c2682d2 Fixed UAVObjects.inc for RM to cope with airsped fixes 2012-11-04 11:37:41 +01:00
a*morale
75730e7260 Merge branch 'revo-next' of ssh://git.openpilot.org/revo into revo-next 2012-11-03 21:36:51 +01:00
a*morale
0df1c22933 Fixed channel group for DSM on flexyport 2012-11-03 20:41:33 +01:00
Corvus Corax
3f248915cb Merge remote-tracking branch 'origin/revo-next' into corvuscorax/airspeed_fixes 2012-11-03 20:03:18 +01:00
a*morale
553b49cdbf Fixed Flexy serial assingment and added case for telemetry on flexy port 2012-11-02 23:27:15 +01:00
a*morale
3affe846db Added support for TxPID for RM 2012-11-02 18:06:26 +01:00
a*morale
cfbdaddc94 Fixed invalid value for MS5611 oversample configuration 2012-11-02 17:31:51 +01:00
Erik Gustavsson
677f921b15 Take magnitude of filtered gravity vector into account. 2012-11-02 09:22:18 +01:00
Erik Gustavsson
f63db712d0 Disable accel smoothing during init/arming so it does not interfere 2012-11-02 09:12:24 +01:00
Erik Gustavsson
b7bdf9861d Run rotated gravity vector through smoothing filter to match phase with filtered accelerometer data. 2012-11-01 12:14:33 +01:00
Richard Flay (Hyper)
10865221b9 Removed a spurious call to AccelsSet() that was causing garbage data to be transiently written to the Accels UAVO. Props to cyr for kicking off the discussion that led to the discovery of this bug. 2012-11-01 18:15:47 +10:30
Corvus Corax
fbacf627ce Added AirspeedActual to RevoMini 2012-11-01 05:04:55 +01:00
Corvus Corax
ffaab02479 Use Correct Airspeed object in PathPlanner, (and use CalibratedAirspeed, since its more relevant) 2012-11-01 03:46:29 +01:00
Corvus Corax
3458aec53e Merge branch 'revo-next' into corvuscorax/airspeed_fixes 2012-11-01 03:40:20 +01:00
Erik Gustavsson
c207afbfef Implement smoothing filter for accelerometer data. 2012-10-31 19:05:59 +01:00
Stacey Sheldon
492fbc88b0 revomini: remove references to POI UAVOs 2012-10-30 21:47:17 -04:00
Sambas
f189596b3d bootfix, GPS module not included 2012-10-30 20:51:13 +01:00
Sambas
019691e49d Compile fixes 2012-10-30 20:50:58 +01:00
Stacey Sheldon
5aa3777078 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	flight/Modules/Telemetry/telemetry.c
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
2012-10-30 00:41:35 -04:00
Stacey Sheldon
2119067722 Merge remote-tracking branch 'op-revo/james/revo' into revo-next
Conflicts:
	Makefile
	flight/Modules/Attitude/revolution/attitude.c
	flight/Modules/Battery/battery.c
	flight/Modules/FixedWingPathFollower/fixedwingpathfollower.c
	flight/Modules/GPS/GPS.c
	flight/Modules/ManualControl/inc/manualcontrol.h
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/OveroSync/overosync.c
	flight/Modules/PathPlanner/inc/pathplanner.h
	flight/Modules/PathPlanner/pathplanner.c
	flight/Modules/Sensors/sensors.c
	flight/Modules/VtolPathFollower/vtolpathfollower.c
	flight/PiOS/Boards/STM32F4xx_Revolution.h
	flight/PiOS/Boards/pios_board.h
	flight/PiOS/STM32F4xx/library.mk
	flight/PiOS/inc/pios_hmc5883.h
	flight/PiOS/inc/pios_l3gd20.h
	flight/PiOS/inc/pios_rfm22b_priv.h
	flight/Revolution/Makefile
	flight/Revolution/Makefile.osx
	flight/Revolution/System/inc/pios_config.h
	flight/Revolution/UAVObjects.inc
	ground/openpilotgcs/src/libs/utils/coordinateconversions.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/config/configrevowidget.cpp
	ground/openpilotgcs/src/plugins/hitlnew/il2simulator.cpp
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/plugins.pro
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	package/Makefile
	shared/uavobjectdefinition/fixedwingpathfollowersettings.xml
	shared/uavobjectdefinition/fixedwingpathfollowerstatus.xml
	shared/uavobjectdefinition/flightstatus.xml
	shared/uavobjectdefinition/hwsettings.xml
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/pathdesired.xml
	shared/uavobjectdefinition/vtolpathfollowersettings.xml
	shared/uavobjectdefinition/waypoint.xml
2012-10-30 00:08:43 -04:00
James Cotton
9151e5cded Sanity Check: Fix indentation 2012-10-28 20:00:03 -05:00
Corvus Corax
6409dfb2df Further cleanup in PathFollower. Should now be safe to fly again 2012-10-28 21:49:22 +01:00
Corvus Corax
f7dd5cc8ad Refactored Airspeed and FixedWingPathFollowermodule to use AirspeedActual, which hitl writes to, too. Cleaned up both PathFollower and Airspeed a bit. 2012-10-28 17:45:40 +01:00
lilvinz
3db04ea174 pios_jedec: fixed usage of uninitialized memory
When reading the jedec device id the code only transfered one byte via spi leaving
the expected input buffer uninitialized. This may lead to the problem that flash
initialization fails because the expected input may be whatever the stack was set
when entering the function. The impact of the bug is somewhat limited tough as the
initialization usually takes place before starting up the rtos and thus is pretty
deterministic. So if the code passed init while testing it should pass init in
production as well.
2012-10-28 14:34:20 +01:00
James Cotton
a5c743d738 Sanity Check: Cannot connect callback to TaskInfo now it isn't always used. 2012-10-27 14:00:57 -05:00
James Cotton
8864b545ae Revert "Sanity Checking: Regardless of DIAG_TASK always populate TaskInfo.Running"
This reverts commit 0b6fa7fe6f.
2012-10-27 13:43:59 -05:00
James Cotton
11630b7f7e SanityCheck: Directly query the task monitor 2012-10-27 13:43:41 -05:00
James Cotton
07a08c327c Sanity Check: Fix comment 2012-10-25 23:01:35 -05:00
James Cotton
93349e9a56 Sanity Check: uint32_t for loop indexes instead of int 2012-10-25 22:57:57 -05:00
James Cotton
32bf63c436 Sanity Check: Perform the initial check then attach the callbacks to avoid
a case where two threads do the same thing.
2012-10-25 22:51:14 -05:00
James Cotton
b28cdba46d SanityCheck: Trigger sanity check code on callbacks from the appropriate settings.
The only downside is that it needs to update on the TaskInfo object which means
since htat updates periodically this code runs more often that really needed since
the modules only start at first.  However, leaving that connection out means it
misses the initial set of modules.
2012-10-25 21:49:53 -05:00
Stacey Sheldon
bc3a90c6a9 Merge branch 'one-way-telemetry' into next 2012-10-25 22:48:43 -04:00
James Cotton
736f96b297 Sanity check: Add some initial checks for revo that make sure the needed optional modules are
running.
2012-10-25 20:37:21 -05:00
James Cotton
23422d3cd4 Sanity Check. Add the first set of checks:
1. If a flight mode switch allows autotune and autotune module not running
2. If airframe is a multirotor and either manual is available or a stabilization mode uses "none"
2012-10-25 20:37:17 -05:00
James Cotton
b9ebeb2c2e Sanity Check: For now force the sanity check to run once a second and always set an error 2012-10-25 12:43:56 -05:00
James Cotton
0b6fa7fe6f Sanity Checking: Regardless of DIAG_TASK always populate TaskInfo.Running
so we can verify certain modules are running.
2012-10-25 10:01:24 -05:00
Kenz Dale
1ab1ea5899 Save ~150 bytes by moving GPSDataProtocol to SystemSettings.
All credit to Anstron.
2012-10-22 16:47:22 +02:00
Stacey Sheldon
4892fdb33d telemetry: allow telemetry to flow when not connected to GCS
Previously, when unconnected, only the flighttelemetrystats
UAVO was Tx'd.  All other UAVOs were inhibited.  This led to
zero telemetry data when the connection to the GCS was gone.
This precluded getting useful telemetry from a receive-only
station.

This commit changes two main areas.

First, UAVO updates are now allowed regardless of the "connected"
state between the GCS/FC.

Second, it makes both the flighttelemetrystats and gcstelemetrystats
UAVOs un-acked.  This prevents these objects from blocking all
other UAVOs while they wait for their ack.  This is OK since the
real "connection" negotiation happens via the states exchanged in
the Status field of these UAVOs.
2012-10-21 22:51:17 -04:00
Stacey Sheldon
127ca1e7e1 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	ground/openpilotgcs/src/plugins/hitl/plugin.pro
	ground/openpilotgcs/src/plugins/hitlnew/fgsimulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitlconfiguration.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitloptionspage.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitloptionspage.ui
	ground/openpilotgcs/src/plugins/hitlnew/il2simulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/simulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/simulator.h
	ground/openpilotgcs/src/plugins/hitlnew/xplanesimulator.cpp
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
2012-10-20 13:56:18 -04:00
Corvus Corax
1fe41c7a67 circular dependency on firmwareinfo due to checksum of firmware required to link firmware - fixed by creating checksum of uavobject inittialization object file instead 2012-10-20 16:07:16 +02:00
Corvus Corax
898292fcdb added (fake) firmware version information to simposix 2012-10-20 15:22:54 +02:00
James Cotton
96afe7cffd Merge remote-tracking branch 'origin/stac/add-debug-consoles' into next 2012-10-12 08:07:44 -05:00
Stacey Sheldon
f0e0c2e79e console: add debug console via USB CDC/VCP interface
The USB VCP Port has a new DebugConsole setting that
routes all output destined for PIOS_COM_DEBUG to the
emulated serial port.

To enable this in your build, you'll have to build like:
 - make fw_coptercontrol_clean
 - make fw_coptercontrol ENABLE_DEBUG_CONSOLE=YES

You can then output formatted text to the console
like this:
  #if defined(PIOS_INCLUDE_DEBUG_CONSOLE)
  PIOS_COM_SendFormattedString(PIOS_COM_DEBUG,
                               "foo is %u\r\n",
                               foo);
  #endif	/* PIOS_INCLUDE_DEBUG_CONSOLE */

Please ensure that all of your debug output is
wrapped with these macros so that your debug
code doesn't bloat the firmware image.
2012-10-11 00:51:09 -04:00
Stacey Sheldon
75170177df console: example usage of the debug console 2012-10-11 00:22:07 -04:00
Stacey Sheldon
6088c05946 console: add support for serial debug consoles
Serial ports now have a new HW setting called DebugConsole
which can be used to dump internal state to a serial port
for debug.

To enable this feature, you need to:
 - make fw_coptercontrol_clean
 - make fw_coptercontrol ENABLE_DEBUG_CONSOLE=YES
 - configure one of the serial ports as DebugConsole in the GCS
 - save settings
 - power-cycle your board

Things to note:
 - The console is at 57600,8N1.
 - This is not currently configurable via the GCS.
 - You can only have a single console enabled at a time.
2012-10-11 00:22:07 -04:00
James Cotton
c0b9d9015d Hack: The OSX sim includes modules slightly differently than the
main code so needs an implementation of FirmwareIAPStart() until
this is fixed.
2012-10-10 08:29:30 -05:00
James Cotton
715fb65df7 OSX Simulation: Start populating the board and fw information
This will allow testing the tablet to know what type of UAVOs to
expect.

Conflicts:

	flight/Revolution/Makefile.osx
2012-10-10 08:29:20 -05:00
James Cotton
aad1c3bd32 FreeRTOS: Make F1 targets use the FreeRTOS common code from PiOS/Common 2012-10-09 10:08:06 -05:00
James Cotton
17f3c4d4e0 Re-add our code for accessing the run time information in freertos. 2012-10-09 09:57:57 -05:00
James Cotton
72c84fc49c Upgrade to FreeRTOS 7.2.0 2012-10-09 09:48:02 -05:00
Laura Sebesta
c2b49b6ef3 Merge branch 'kenz/cc_hitl_merge' into next
Conflicts:
	ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetoptionspage.ui
	ground/openpilotgcs/src/plugins/hitlnew/hitloptionspage.ui
	ground/openpilotgcs/src/plugins/hitlv2/hitlv2optionspage.ui
2012-10-08 15:30:27 +02:00
James Cotton
4b35cdf0ef OSX Simulation: Start populating the board and fw information
This will allow testing the tablet to know what type of UAVOs to
expect.
2012-10-07 13:53:19 -05:00
Stacey Sheldon
157aeac9fc Merge remote-tracking branch 'origin/stac/ppm-and-pwm-inputs' into next 2012-10-06 23:04:49 -04:00
sambas
9212bbeb20 DSMx bindmode delay was too long, satellite binding works again. 2012-10-07 12:09:42 +11:00
James Cotton
2191befe17 Merge remote-tracking branch 'revo/brian/rfm22_rf2' into revo
Conflicts:
	flight/PiOS/Common/pios_rfm22b.c
2012-10-05 08:20:35 -05:00
Brian Webb
9ea572f4f7 RFM22B: Fixed the signedness of the return value of the RSSI function. 2012-10-04 21:23:44 -07:00
Brian Webb
5724fa083c RFM22B: Added link quality calculation based on number of dropped packets. Also added packet error correction, which apparently wasn't being done before. 2012-10-04 21:11:40 -07:00
Brian Webb
2541affd80 RFM22B: Added back configuration of the RF Power and RF Datarate. Also added setting of the destination ID in the rfm22b driver. 2012-10-04 16:39:07 -05:00
James Cotton
13cabd2ea4 Merge branch 'next' into revo
Conflicts:
	flight/PiOS/Common/pios_rfm22b.c
2012-10-04 16:38:08 -05:00
Brian Webb
9b9d0c0d1e RFM22B: Added back configuration of the RF Power and RF Datarate. Also added setting of the destination ID in the rfm22b driver. 2012-10-03 20:03:35 -07:00
James Cotton
c8d9f89ea3 Default DIAG_TASK was on for PipX 2012-10-03 15:11:15 -05:00
James Cotton
5eed0db61b Hardcode rates to 64kbps 2012-10-03 15:10:12 -05:00
Brian Webb
36437f695f RFM22B: Moved radio status reporting from the radio module into the rfm22b driver task. 2012-10-03 11:35:02 -05:00
Brian Webb
2d4e0b397a RFM22B: Removed setting register 0x58 in the rfm22_setDatarate call, which was breaking all data rates < 100000 bps. Also temporatily fixed the datarate at 64kbps. 2012-10-03 11:32:33 -05:00
James Cotton
a39cbdbcb1 RadioBridge: Send data from UAVTalk non blocking, otherwise it can lock up the packet handler. 2012-10-03 10:43:18 -05:00
Brian Webb
3cdb9df05f RFM22B: Removed setting register 0x58 in the rfm22_setDatarate call, which was breaking all data rates < 100000 bps. Also temporatily fixed the datarate at 64kbps. 2012-10-02 20:59:43 -07:00
Brian Webb
a8590045a8 RFM22B: Moved radio status reporting from the radio module into the rfm22b driver task. 2012-10-02 19:52:21 -07:00
James Cotton
897b07da02 Merge remote-tracking branch 'origin/kenz/diag_stack_split' into next 2012-10-02 14:20:08 -05:00
James Cotton
0c8c148b51 PipX HW Def: Use PIOS_BOARD_HW_DEFS_GetRfm22Cfg since the radio module initializes the modem
and doesn't know teh difference between RM2 and PipX
2012-10-02 10:07:50 -05:00
James Cotton
879dfed288 RM2/RM1: Make the firmware and bootloader support the pin mappings between these two targets
for USB and radio

A side-effect of this is the pipxsettings are no longer populated into the rfm22b cfg structure
as that was made constant to be consistent with other drivers.
2012-10-02 09:31:15 -05:00
a*morale
c2910d0ce0 Receiver input working for both PPM/PWM mode for rm2 2012-09-30 20:54:10 +02:00
a*morale
227aa98ebc Added TIM12 to PIOS_TIM 2012-09-30 20:32:03 +02:00
a*morale
be752b8075 Fixed some declaration to Exti functions to make it compile. 2012-09-30 17:04:36 +02:00
a*morale
504d691487 Fixed declaration of PIOS_L3GD20_IRQHandler. 2012-09-30 15:44:31 +02:00
Stacey Sheldon
2f4b1e69dd rcvr: Support PPM and PWM at the same time on CC
Adds a new mode for the receiver port (PPM+PWM) which
will allow simultaneous use of 1 pin for PPM and the
rest of the pins for PWM inputs.
2012-09-29 19:11:48 -04:00
James Cotton
b0d8487e27 PIOS_RFM22: Make the irq return false for the exti changes 2012-09-28 02:14:15 -05:00
James Cotton
61f1140645 Merge branch 'revo' into rm2 2012-09-28 01:01:35 -05:00
James Cotton
5c13c31c08 Merge branch 'next' into revo
Conflicts:
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp
2012-09-28 01:00:10 -05:00
James Cotton
8979c00fba Merge branch 'exti_end_switching_isr' into next 2012-09-28 00:41:08 -05:00
James Cotton
519e3e2e3a PIOS_EXTI: Make the line task macro now take in the xHigherTaskPriority variable name 2012-09-28 00:40:36 -05:00
Stacey Sheldon
9896a0d416 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp
	shared/uavobjectdefinition/taskinfo.xml
2012-09-27 22:42:44 -04:00
James Cotton
f12d5c04fb Merge remote-tracking branch 'origin/lilvinz/mpu6000_masked_locals_fix' into next 2012-09-27 14:43:54 -05:00
James Cotton
1ba40ee9b0 PIOS_EXTI: Make sure to use pdTRUE instead of true where appropriate. 2012-09-27 14:41:38 -05:00
James Cotton
1721479a12 Fix for vinz' merge to pios_mpu6000 exti changes 2012-09-27 14:34:11 -05:00
James Cotton
a021659b75 Merge remote-tracking branch 'origin/lilvinz/exti_end_switching_isr' into next 2012-09-27 14:31:16 -05:00
James Cotton
303fe17969 Merge remote-tracking branch 'revo/brian/rfm22_refactor' into revo 2012-09-27 14:04:48 -05:00
James Cotton
6e114360f4 Merge branch 'next' into revo
Conflicts:
	shared/uavobjectdefinition/taskinfo.xml
2012-09-27 14:04:44 -05:00
Laura Sebesta
8997df2438 Merge branch 'next' into kenz/diag_stack_split
Conflicts:
	flight/Modules/Stabilization/stabilization.c
2012-09-27 19:29:23 +02:00
Laura Sebesta
4923655cd3 Added global flag for enabling all diagnostic tools. 2012-09-27 18:51:12 +02:00
James Cotton
d2842169ee Sensors: Need to support MPU6000 for revision 3 2012-09-26 04:04:48 -05:00
James Cotton
93c44f2a4e RM2 Temporary patch: Swap the GPIO pins and the VSense pins. This needs to be based on the hardware revision later. 2012-09-26 03:02:25 -05:00
James Cotton
333a96516c Merge remote-tracking branch 'revo/brian/rfm22_refactor' into rm2 2012-09-26 01:40:23 -05:00
James Cotton
dadc38d82d Revo Mini 2: Get basic LED working. Board revision is actually 3 since right now it masquerades as Revo. 2012-09-26 01:17:32 -05:00
James Cotton
0fa4b062a4 Merge branch 'next' into revo 2012-09-26 00:43:02 -05:00
Brian Webb
6972c29813 RFM22B: Added check for timeout wating for sync on receive. This virtually eliminates the number of timeouts. 2012-09-25 18:10:15 -07:00
Brian Webb
88be2ddf1e RFM22B: Added a message timeout event to the RFM22B state machine that will fire if a packet takes too long to transmit / receive. 2012-09-24 20:51:34 -07:00
Stacey Sheldon
215ff56fe8 usbcdc: fix handling of CDC SET_LINE_CODING request
The SET_LINE_CODING request contains data and must be
handled as such.

Previously, the only requests that had data were IN
requests.  SET_LINE_CODING is an OUT request so it
required additional changes to support a new type of
data request.
2012-09-24 00:56:25 -04:00
Stacey Sheldon
5e37448814 usb: correct enum for CDC SET_CONTROL_LINE_STATE request 2012-09-24 00:53:52 -04:00
Stacey Sheldon
c056ac5261 usbcdc: don't assert on calls when CDC is not initialized
The CDC interface is always advertised in the FW USB
descriptors.  It is NOT always enabled/initialized at
runtime.  Specifically, it can be Disabled in HwSettings.

Previously, any CDC-related query that the host would send
resulted in an assert and a watchdog.

Now, a suitable return code indicating that the request is
unsupported is returned in this scenario.
2012-09-24 00:53:12 -04:00
Brian Webb
a070e1cc3e RFM22B: Added PIOS_RFM22B_Receive_Packet function and removed rx buffer. 2012-09-23 08:36:38 -07:00
Brian Webb
a46e3cdec3 RFM22B: All outgoing data to the radio is now going through the PIOS_RFM22B_Send_Packet call. Also removed all global variables with the exception of the rx buffer. 2012-09-22 20:13:11 -07:00
Brian Webb
61200f01f5 RFM22B: Major refactoring of te RFM22B driver to implement a state machine for the driver. The state machine should now be complete, and the driver seems to be working pretty well on both the RM and the pipx. 2012-09-22 20:13:10 -07:00
Brian Webb
80509d264e RFM22B: Start at cleaning up the processing interrupt handling, and starting to make it more of a state machine. Also removed the supervisor, which was causing unnecessary resets. The supervisor functionality is not in the the driver thread. 2012-09-22 20:13:08 -07:00
Brian Webb
057227726b Radio: Make sure pios_packet_handler is set to 0 when radio module is not initialized. 2012-09-22 20:13:07 -07:00
Brian Webb
8ca2e85f4c RFM22B: Removed incorrect defaulting of tx power level. 2012-09-22 20:13:05 -07:00
Brian Webb
6623c55846 RFM22B: Moved ISR processing thread into the rfm22b driver. 2012-09-22 20:13:03 -07:00
Brian Webb
432a6dfd00 RM: Fixed crashing when radio module is disabled. 2012-09-22 20:13:02 -07:00
James Cotton
497683e571 Fix OSX simulator 2012-09-18 13:29:11 -05:00
Stacey Sheldon
14123069be gdb: add gdb config file for CC BU image 2012-09-16 21:13:42 -04:00
Stacey Sheldon
566f9d760e simposix: fix suplicate .c files in previous merge 2012-09-16 19:34:47 -04:00
Stacey Sheldon
ffe88eec5e Merge remote-tracking branch 'op-public/next' into revo-next 2012-09-16 17:14:20 -04:00
Stacey Sheldon
368d57bc92 Merge remote-tracking branch 'origin/lilvinz/OP-300' into next 2012-09-16 16:05:25 -04:00
lilvinz
a6a7ed8157 pios_exti: added returnvalues to exti handlers which allows to use portEND_SWITCHING_ISR 2012-09-16 21:44:09 +02:00
Stacey Sheldon
05483e2a74 simposix: adapt simposix to addition of relay tuning 2012-09-16 15:40:47 -04:00
lilvinz
524cff1c40 pios_mpu6000: fixed masked locals mistake 2012-09-16 21:25:06 +02:00
lilvinz
718062ed6e pios_led: added support for active_high connected leds 2012-09-16 18:19:27 +02:00
Stacey Sheldon
754f58c33a Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	flight/Modules/ManualControl/inc/manualcontrol.h
	flight/Revolution/Makefile.osx
	ground/openpilotgcs/src/plugins/plugins.pro
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp
	shared/uavobjectdefinition/flightstatus.xml
	shared/uavobjectdefinition/hwsettings.xml
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/taskinfo.xml
2012-09-16 09:56:35 -04:00
Stacey Sheldon
9a5ba841cf Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	ground/openpilotgcs/src/libs/utils/coordinateconversions.cpp
	ground/openpilotgcs/src/plugins/hitlnew/il2simulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/xplanesimulator.cpp
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	shared/uavobjectdefinition/pathaction.xml
	shared/uavobjectdefinition/waypointactive.xml
2012-09-15 19:55:47 -04:00
James Cotton
13e7733e5f Merge branch 'revo-mini' into revo 2012-09-12 02:30:10 -05:00
James Cotton
223a3473c2 Merge branch 'next' into revo-mini 2012-09-12 02:03:39 -05:00
James Cotton
595083c982 PID: Fix small bug in setpoint weighting that had really ugly consequences 2012-09-12 00:07:17 -05:00
James Cotton
4717c376c0 Stabilization: For the inner loop call the setpoint shaping version so that
the derivative term can weight the sticks and gyros independently.
2012-09-11 13:21:53 -05:00
James Cotton
e4a167dca1 PID: Add a pid_apply_setpoint which takes in the setpoint and feedback term
This version allows performing setpoint weighting, currently on the derivative
component.
2012-09-11 13:21:19 -05:00
James Cotton
11b099b1ef Stabilization: Add configuration terms for the derivative calculation to the UAVO and pass
them in to the PID system.
2012-09-11 12:29:38 -05:00
James Cotton
42bbd52d68 PID: Add a function to set the cutoff for the derivative term
Also contains a term for setting the deriative setpoint in the future
2012-09-11 12:27:41 -05:00
James Cotton
86422b8b9e VtolPathFollower: Make sure to clear the alarm when running so it doesn't show as
uninintialized
2012-09-11 02:34:31 -05:00
James Cotton
88b483f37d PIOS_MPU6000: Make the driver perform the rotation to bring it into the OP
coordinate system

Previously there were hacks spread throughout to deal with various ways of
positioning the chips.  Now the driver structure specifies the rotation
of the chip relative to the board layout and the output X/Y/Z are already
in OP convention.

This flag seems to do the right thing for Revolution, CC3D, and RevoMini
2012-09-11 01:46:22 -05:00
James Cotton
4cbaa6df88 Revolution: Misses some files for stabilization refactoring in Revolution 2012-09-11 01:44:40 -05:00
a*morale
cf7aea6499 Support for Led Outputs as actuator channels 9&10.
Added the ARMING LED  and INFO LED option for actuator channel
2012-09-10 20:14:24 -05:00
a*morale
316e02612e mapped LED1&2 ports to output 9&10 so that it is possible to use as accessory or pwm buzzer 2012-09-10 20:14:15 -05:00
James Cotton
aaaf23e64c ManualControl: Cover the case for PathPlanner to avoid setting an alarm. No functional change. 2012-09-10 20:12:58 -05:00
James Cotton
5211176f15 ManualControl: Cover the case for PathPlanner to avoid setting an alarm. No functional change. 2012-09-10 20:12:23 -05:00
James Cotton
38e9d105aa Merge branch 'pidt1' into test2
Conflicts:
	flight/Modules/ManualControl/inc/manualcontrol.h
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	shared/uavobjectdefinition/flightstatus.xml
	shared/uavobjectdefinition/hwsettings.xml
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/taskinfo.xml
2012-09-10 14:37:52 -05:00
James Cotton
386a9d41ef Merge branch 'next' into test2
Conflicts:
	ground/openpilotgcs/src/plugins/config/configrevowidget.cpp
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/uavobjects/uavobjecttemplate.m
2012-09-10 14:29:26 -05:00