Commit Graph

43 Commits

Author SHA1 Message Date
ChristophTobler 2ca2382dbb tap_esc: replace FILE with file_t from base class device 2017-12-03 14:10:20 +00:00
ChristophTobler 06a9f54796 tap_esc: changes needed to run on qurt 2017-12-03 14:10:20 +00:00
Julien Lecoeur 89642a9203 Move src/module/systemlib/mixer to src/lib/mixer 2017-11-15 09:56:10 +01:00
Beat Küng efb170d91d tap_esc: some cleanup
- use select_responder from tap_esc_common namespace (same definition)
- switch pwm output to uint16, that's what's used in send_esc_output()
- use SCHED_PRIORITY_ACTUATOR_OUTPUTS instead of SCHED_PRIORITY_MAX
2017-10-06 19:32:53 +02:00
Daniel Agar 26f00609ac multirotor_motor_limits only publish for MC 2017-09-19 02:25:30 +01:00
Daniel Agar 494e03000d tap_esc fix sign-compare 2017-09-07 10:27:36 +02:00
Simone Guscetti d59e9e2958 tap_esc: minor refractoring
- the definition of ESC_HAS_CURRENT_SENSOR is now in drv_tap_esc
- add tap_esc_common move crc table there
- header guards are applied to the header files
2017-06-04 04:20:05 +08:00
Lucas De Marchi 6b8c0f7db2 tap_esc: enable closed loop control if supported by board 2017-04-06 12:18:30 +02:00
Lucas De Marchi 41e51a7c85 tap_esc: change define to use BOARD_ prefix 2017-04-06 12:18:30 +02:00
Beat Küng 4d62dd893b tap_esc: handle lockdown & manual_lockdown -> kill switch 2017-04-06 11:46:09 +02:00
Beat Küng 96c40d3ce9 tap_esc: improve cleanup & initialization code 2017-04-06 11:46:09 +02:00
Beat Küng 85708063d6 fix tap_esc: use correct ORB_ID for esc_status advertisement 2017-02-27 08:52:43 +01:00
José Roberto de Souza b372d15443 drivers: tap_esc: Fix low on stack warning
WARN  [load_mon] tap_esc_main low on stack! (284 bytes left)
2017-02-23 08:26:42 +01:00
Lorenz Meier 264589b2cc Fix motor range 2017-01-28 15:25:00 +01:00
Matthias Grob 41ff46b557 tap_esc: fixed offset to really keep the range 1200-1900
even if the input to the driver is too low or too high.
This prevents motor stalling.
NaN or Inf still stop the motor.
2017-01-28 15:24:45 +01:00
David Sidrane 216ec6513a Removed CONFIG_ARCH_BOARD_AEROFC_V1 from tap_esc
Changed the CONFIG_ARCH_BOARD_AEROFC_V1 in tap_esc.cpp to
   TAP_ESC_NO_VERIFY_CONFIG to maintian the commitment to not
   have CONFIG_ARCH_BOARD_xxxx ifdef litter in the PX4 code base.
   TAP_ESC_NO_VERIFY_CONFIG will be removed (see todo) in
   aerofc-v1/board_config.h
2017-01-21 11:45:36 +01:00
Lorenz Meier 535d5b9233 Ensure TAP ESC is fully booted 2016-12-21 11:44:47 +01:00
Lorenz Meier 3532b48411 TAP ESC: Correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier c9b7b6bbb5 TAP ESC: Secure being the first publisher of all outputs / reports 2016-12-13 16:14:15 +01:00
Paul Riseborough ca6f67fd3b tap_esc: publish mixer saturation status to uORB 2016-12-13 16:14:15 +01:00
James Goppert 893714dc6a aerofc: Fixes for init 2016-11-28 09:21:12 +01:00
Lucas De Marchi c5100b6273 tap_esc: fix output order for quadrotor 2016-11-03 15:38:09 +01:00
Carlo Wood baf89f4398 Clean up of px4_defines.h (remove math.h)
This patch reorders px4_defines.h to make it more readable (I think)
but more importantly, cleans up the #include <math.h>/<cmath>
and [std::]isfinite stuff.

My main goal was to completely get rid of including math.h/cmath,
because that doesn't really belong in a header that is supposed to
define macro's and is included in almost every source file (if not
all).

I'm not sure what it did before ;) (pun intended), but now it does
the following:

PX4_ISFINITE is only used in C++ code (that was already the case,
but hereby is official; for C code just use 'isfinite()') and is
defined to be std::isfinite, except on __PX4_QURT because that uses
the HEXAGON toolset which (erroneously) defines isfinite as macro.

I would have liked to remove PX4_ISFINITE completely from the code
and just use std::isfinite whereever that is needed, but that would
have required changing the libecl submodule, and at the moment I'm
getting tired of changing submodules... so maybe something for the
future.

Also, all includes of <math.h> or <cmath> have been removed except
for __PX4_NUTTX. Like the HEXAGON toolset NuttX currently defines
isfinite as macro for C++. So, we could have solved this in the
same was as __P4_QURT; but since we can fix NuttX ourselves I chose
to add a kludge to px4_defines.h instead that fixes this problem,
until the time that NuttX can be fixed (again postponing changing
a submodule). The kludge still demands including <cmath>, thus.

After removal of the math header file, it needed to be included
in source files that actually need it, of course.

Finally, I had a look at the math macro's (like M_PI, M_PI_F,
M_DEG_TO_RAD etc). These are sometimes (erroneously) defined in
certain math.h header files (like both, hexagon and nuttx).
This is incorrect: neither the C nor the C++ standard defines
math constants (neither as macro nor otherwise). The "problem"
here was that px4_defines.h defined some of the M_*_F float
constants in terms of the M_* double constant, which are
sometimes not defined either thus. So, I cleaned this up by
defining the M_*_F math constants as float literals in px4_defines.h,
except when they are defined in math.h for that platform.
This means that math.h has to be always included when using those
constants, but well; not much difference there as those files
usually also need/use the macro NAN (which *is* a standard macro
defined by math.h).

Finally finally, DEFAULT_PARAM_FILE was removed as it isn't
used anymore.

All in all I think the resulting px4_defines.h is nice, giving me
much less the feeling of a nearly unmaintainable and over time
slowly growing collection of kludges and hacks.
2016-10-28 08:41:30 +02:00
James Goppert 7472c9033b Formatting fix. 2016-08-16 01:39:47 -04:00
Lorenz Meier 73362f325b Update mapping 2016-08-15 23:31:58 +02:00
Lorenz Meier a7ad722b98 Use less memory for ESC driver 2016-08-15 19:53:21 +02:00
Lorenz Meier 4b9e1d58f7 Fix ESC driver to also include direction information 2016-08-15 10:49:43 +02:00
Lorenz Meier 43f772154c TAP: adjust ESC buffer size 2016-08-09 16:00:00 +02:00
David Sidrane 415fbae31e Fix build for HW w/o mux 2016-07-28 08:50:59 +02:00
Beat Küng 50a14cfd29 tap_esc: disable the _mode param, use the number of configured channels instead
Not sure why the Mode enum exists in the first place...
2016-07-28 08:50:59 +02:00
Beat Küng cbcbce3a28 tap_esc: use correct number of outputs 2016-07-28 08:50:59 +02:00
Beat Küng d660fb094b tap_esc: add RPMSTOPPED macro, make sure driver starts with stopped motors 2016-07-28 08:50:59 +02:00
Beat Küng d6d3a56116 tap_esc: add buffer size check for _esc_feedback.esc[] 2016-07-28 08:50:59 +02:00
Beat Küng c55c978145 tap_esc: reset outputs only when armed really changed (not on each topic update) 2016-07-28 08:50:59 +02:00
Beat Küng 4045068187 tap_esc: properly initialize _outputs 2016-07-28 08:50:59 +02:00
Beat Küng 8602ff7856 tap_esc: fix code style, IS_armed -> _is_armed 2016-07-28 08:50:59 +02:00
Beat Küng 3f9f320f18 tap_esc: improve error handling & reporting 2016-07-28 08:50:59 +02:00
Beat Küng a8e28c7232 tap_esc: fix argument ordering in memset 2016-07-28 08:50:59 +02:00
David Sidrane 632e4630b1 TAP:ESC motors and LED working - The code is still hardcoded for 4 ESC
But the basics are working. N.B. To Stop the moros a value of 0 need to be
sent. LED color mask are misleeding - LED is On or Off per ESC.
2016-07-28 08:50:59 +02:00
Beat Küng 38e4882b5f tap_esc: subscribe to test_motor topic and set outputs accordingly in non-armed state
This makes it possible to use the 'motor_test' command
2016-07-20 14:04:15 +02:00
Lorenz Meier bf0b3c1585 More complete ESC feedback, ensure to include a timestamp 2016-06-24 00:08:24 +02:00
Lorenz Meier b04e2526a1 Fix compile errors for tap ESC 2016-06-24 00:08:24 +02:00
Lorenz Meier fab201a2d6 Initial import of TAP controllers 2016-06-24 00:08:24 +02:00