Beat Küng
9d11d94e7e
px4iofirmware: guard against parsing multiple RC protocols
...
It was for example possible that DSM got parsed, and in the next iteration
SBUS got parsed, leading to multiple PX4IO_P_STATUS_FLAGS_RC_ flags set.
input_rc::input_source was then incorrectly set to DSM.
Partially guarding was already done: if SBUS got parsed, DSM and others
were skipped.
The IO will still clear all PX4IO_P_STATUS_FLAGS_RC_* flags on RC loss.
2021-02-19 09:28:46 -05:00
Beat Küng
b0abc0c111
airframes: exclude from 1100, 4018 and 6003 px4_fmu-v2
2021-02-09 09:44:50 +01:00
Beat Küng
5a1c60b5a1
component_information: switch from gzip to xz
...
Improves compression, e.g. current params file: 62KB to 51KB
There's also a PRESET_EXTREME option, which reduces by another 2KB.
We can revisit that once needed, as it increases mem usage as well.
2021-02-09 09:44:50 +01:00
Beat Küng
cedfae9e46
jenkins: upload params.json.gz to S3
2021-02-09 09:44:50 +01:00
Beat Küng
f8989fe5aa
mavlink: speed up ftp transfers on POSIX
...
Around 900 KB/s - not fast, but should be fast enough for the use-cases.
2021-02-09 09:44:50 +01:00
Beat Küng
d0e35efe3a
parameters: remove uid from json output
...
Got removed from the spec
2021-02-09 09:44:50 +01:00
Beat Küng
4ca883f843
parameters: fix JSON output types
...
All types were previously output as strings
2021-02-09 09:44:50 +01:00
Beat Küng
5a244888cd
Tools: add validate_json.py
...
Can be used to validate the schemas under
https://github.com/mavlink/mavlink/tree/master/component_information
2021-02-09 09:44:50 +01:00
Beat Küng
1f8e7de824
mavlink: implement COMPONENT_INFORMATION
...
- implement COMP_METADATA_TYPE_VERSION & add component_version.json.gz to
ROMFS for all targets.
- implement COMP_METADATA_TYPE_PARAMETER (only enabled for SITL currently)
2021-02-09 09:44:50 +01:00
Beat Küng
76a447ed0f
fix StickAccelerationXY: avoid setpoint oscillations around 0
...
With a higher responsiveness, after centering the stick, the velocity and
acceleration setpoints could oscillate around 0 and never reach 0, due to
discretization.
This also prevented position lock engagement.
2021-02-08 13:51:36 +01:00
Beat Küng
b190d98d6d
Jenkinsfile: remove dev-guide metadata deployment
...
dev guide got merged with the user guide.
2021-01-20 10:03:00 -05:00
Beat Küng
c36340d29a
ActuatorEffectivenessMultirotor: set effectiveness to zero when computing the matrix
...
Just to be on the safe side.
2021-01-18 11:25:37 -05:00
Beat Küng
212ec821b1
control_allocator: set unused actuators to trim instead of min
2021-01-18 11:25:37 -05:00
Beat Küng
3606f86518
control_allocator: ensure unused outputs are initialized to min
...
Mostly important in cases where the ouputs would change (e.g. param change)
2021-01-18 11:25:37 -05:00
Beat Küng
3dad79d8f5
control_allocator: inline one-line setters & getters
2021-01-18 11:25:37 -05:00
Beat Küng
164511a7b5
control_allocator: avoid vector copies and sqrt()
2021-01-18 11:25:37 -05:00
Beat Küng
0e66b0876b
control_allocator: change SequentialDesaturation to existing MC mixer
...
And limit the operations to the number of configured outputs.
Only using the number of configured actuators reduces CPU load by ~2% on
F7 @1khz.
2021-01-18 11:25:37 -05:00
Beat Küng
308f614735
refactor control_allocator: directly get the effectiveness matrix when updated
...
Reduces stack + RAM usage
2021-01-18 11:25:37 -05:00
Beat Küng
38782029ad
fix control_allocator: set _last_run at the correct place
2021-01-18 11:25:37 -05:00
Beat Küng
0e86ab47f6
fix control_allocator: use 'delete' instead of 'free', guard against out-of-memory
2021-01-18 11:25:37 -05:00
Beat Küng
066464c4e8
control_allocator: remove unused _task_start
2021-01-18 11:25:37 -05:00
Beat Küng
25f3fe8456
fix control_allocator_status: torque_setpoint_achieved and thrust_setpoint_achieved are bool
2021-01-18 11:25:37 -05:00
Beat Küng
ade3871bee
adc: add support for multiple sensor voltage channels
2021-01-15 10:57:20 -05:00
Beat Küng
e2337a34eb
system_power: add comp_5v_valid and can1_gps1_5v_valid
...
And fill it in from the v5x GPIO expander.
2021-01-15 10:57:20 -05:00
Beat Küng
704a82aaa6
gpio: extend support for /dev/gp* GPIO's
...
Note that there's a small CLI interface change.
2021-01-15 10:57:20 -05:00
Beat Küng
88fe047556
px4/v5x: enable mcp23009 GPIO driver
2021-01-15 10:57:20 -05:00
Beat Küng
3e4b8763a5
nuttx: add mcp23009 gpio driver
2021-01-15 10:57:20 -05:00
Beat Küng
e1983381e7
rcS: add SYS_PARAM_VER to param reset_all exception list
...
Avoids an extra reboot when resetting the airframe
2021-01-15 10:57:20 -05:00
Beat Küng
26e8c231b0
v5x,v6x: move mtd_caldata after mtd_id partition
...
to avoid losing factory calibration params on existing setups
2021-01-15 10:57:20 -05:00
Beat Küng
12ebbd995d
bmp388: wait a bit longer to schedule first cycle after reset
2021-01-15 10:57:20 -05:00
Beat Küng
529c3112ac
bmp388: quiet if startup fails (no sensor on bus)
2021-01-15 10:57:20 -05:00
Beat Küng
daaf8b61dc
drivers: remove ism330dlc
...
not used anymore
2021-01-12 09:55:59 -05:00
Beat Küng
9f5dee2ecf
v5x/v6x: update IMU sensors (remove ISM330DLC)
2021-01-12 09:55:59 -05:00
Beat Küng
72420dfff3
mavlink_receiver: remove unused _param_com_flight_uuid
2020-12-10 08:47:04 +01:00
Beat Küng
a63e8cc149
fix mavlink: ensure vehicle_command topic exists
...
If the first publisher publishes multiple commands right after each other
(e.g. on 'commander takeoff'), mavlink would miss the first and print an
error like 'vehicle_command lost, generation 0 -> 2'.
This is due to a recent uORB behavior change.
2020-11-30 11:53:22 -05:00
Beat Küng
05a3492174
commander: remove low priority thread, run tasks in a worker thread on demand
...
- removes race conditions
- removes dependencies on static data & methods
- reduces RAM usage by ~3.8KB
2020-11-30 11:53:22 -05:00
Beat Küng
419b336a15
commander: fix ModuleBase usage, remove volatile flag
2020-11-30 11:53:22 -05:00
Beat Küng
615333badb
logger: log gps_dump if GPS_DUMP_COMM is set
2020-11-20 11:04:52 -05:00
Beat Küng
e6ad321ab2
gps: add GPS_{1,2}_PROTOCOL param to select protocol, default to u-blox
...
u-blox is the most widely used GPS, so module detection should be a bit
faster in general.
2020-11-04 10:26:49 -05:00
Beat Küng
ab43a94224
gps: keep track of RX data rate
2020-11-04 10:26:49 -05:00
Beat Küng
c5c521f5e0
gps: add support for u-blox heading with 2 F9P devices
2020-11-04 10:26:49 -05:00
Beat Küng
8f72ea9577
Jenkins: push module documentation to PX4 user guide as well
2020-11-04 13:08:05 +01:00
Beat Küng
d83da4ded4
fix SubscriptionMultiArray: end() iterator needs to point past the end
...
And ensure not to dereference.
2020-11-02 09:00:04 +01:00
Beat Küng
d2644a3bf7
distance_sensor/sf0x: rename to lightware_laser_serial
2020-10-22 11:30:50 -04:00
Beat Küng
a68ac95399
distance_sensor/sf1xx: rename to lightware_laser_i2c
2020-10-22 11:30:50 -04:00
Beat Küng
6d2e306d50
sf1xx: use new protocol for LW20/c
...
benefits:
- read & validate product name
- sensor configuration with the output we want (raw distance data)
- get signal quality
Protocol description: http://support.lightware.co.za/sf20/#/commands
Other Lightware sensors can easily be moved over to that as well.
2020-10-22 11:30:50 -04:00
Beat Küng
c0cf144a5a
ll40ls: fix rotation -> orientation
2020-10-22 11:30:50 -04:00
Beat Küng
5f27407acd
tests: don't run battery_simulator
...
The battery migration interferes with the tests.
2020-10-20 09:18:47 +02:00
Beat Küng
f776997a07
battery: disable secondary module by default
...
Avoid a GCS showing 2 battery indicators.
Alternatively we could also check the 'connected' flag, but this is more
explicit.
2020-10-20 09:18:47 +02:00
Beat Küng
83b81fbbef
battery: fix isFloatEqual(), use matrix::isEqualF
...
Fixes param migration, e.g. if BAT_N_CELLS is set, migrates to
BAT1_N_CELLS.
2020-10-20 09:18:47 +02:00
Beat Küng
6ae17eb13c
fix EscBattery: remove _battery.publish();
...
updateBatteryStatus() already publishes
2020-10-20 09:18:47 +02:00
Beat Küng
d0fd60de8d
output_limit: use add_library instead of px4_add_library
...
px4_add_library adds uorb dependencies, which since cf26f24387 added libm.
This in turn led to build failures for px4_io-v2 in the form of:
__aeabi_f2d' wf_sqrt.c:(.text.sqrtf+0x54): undefined reference to
__aeabi_ddiv'
2020-10-19 09:45:46 -04:00
Beat Küng
ff3008c051
calibration: add SYS_FAC_CAL_MODE parameter
...
If set, stores calibration parameters in separate storage /fs/mtd_caldata.
2020-10-12 15:22:26 +02:00
Beat Küng
f1f6ca21cb
rcS: try to load params from secondary storage if available
2020-10-12 15:22:26 +02:00
Beat Küng
3e9692c5bd
param_import: add mark_saved argument
...
Behavior of the 'param import' command:
- if no file provided, parameters are marked as saved (differs from before)
- if a file is provided: parameters are not marked as saved
2020-10-12 15:22:26 +02:00
Beat Küng
f6e8ddfaa0
param_export: add optional filter method
2020-10-12 15:22:26 +02:00
Beat Küng
f927cacd9c
v5x: enable eeprom storage on IMU board
2020-10-12 15:22:26 +02:00
Beat Küng
c6cd0536d7
mtd: support multiple instances
2020-10-12 15:22:26 +02:00
Beat Küng
274ccaf57c
system: include shutdown lock to BOARD_INDICATE_ARMED_STATE
...
BOARD_INDICATE_ARMED_STATE was only set during arming, so an external
component might have reset the board during param save, leading to param
loss.
This extends the API to trigger the arming state also while the shutdown
lock is taken.
2020-10-09 08:23:47 +02:00
Beat Küng
91fa2002e3
kakutef7: fix output ordering
...
Regression from d2254c2e44 , I overlooked that they were defined in
reverse order.
2020-10-03 10:45:30 -04:00
Beat Küng
5ac0c7c799
List.hpp: let operator* return a reference
...
So that clang 12 does not complain:
loop variable 'child' is always a copy because the range of type 'List<ModuleParams *>' does not return a reference
2020-09-21 09:23:21 -04:00
Beat Küng
5fdff6a0e4
i2c drivers: add '-k' flag for keep_running directly to BusCLIArguments
2020-09-18 09:45:06 -04:00
Beat Küng
1bf030e8ba
lps33hw: refactor and add -k flag to keep running even if no sensor found
2020-09-18 09:45:06 -04:00
Beat Küng
f106e6b266
param: add 'param show-for-airframe' command
...
- simplifies creation of an airframe config
- could be done from QGC, but it only knows if a param is non-default from
metadata, which can be incorrect/missing information
- for the list of exceptions we could look at '@category', but we don't have
that info in the build
- there might be some more exceptions to be added
2020-09-18 09:03:29 +02:00
Beat Küng
abf5c2b301
ROMFS/CMakeLists.txt: change dependencies
...
- moves process airframe deps to the tar generation, to ensure whenever
airframes are processed, the tar is extracted first.
This is required, because if the airframe processing is done on pruned
ROMFS, it's missing the tags.
- avoid using init.d/rcS in dependencies, use a separate file instead.
This is because pruning modifies the rcS, and the next rebuild was
seeing a changed rcS, resulting in unnecessary regeneration.
2020-09-16 09:30:58 -04:00
Beat Küng
ef55680ab1
sitl: enable EMBEDDED_METADATA to add parameter metadata to ROMFS
2020-09-15 09:30:16 +02:00
Beat Küng
0a061160f7
cmake px4_add_board: add EMBEDDED_METADATA
...
Allowing to put additional metadata into the ROMFS, the first is
parameters.json.gz.
2020-09-15 09:30:16 +02:00
Beat Küng
d5b8f6cdf9
sitl_run.sh: cleanup, kill jmavsim only if $program == jmavsim
2020-09-15 09:30:16 +02:00
Beat Küng
055fa768d8
posix: enable ROMFSROOT
...
This will copy the ROMFS into the build directory under etc/, and thus
needs a change of the PX4 startup parameters and mixer paths.
2020-09-15 09:30:16 +02:00
Beat Küng
d3362f38d1
parameters: add parameters.json.gz as output
2020-09-15 09:30:16 +02:00
Beat Küng
809d05053b
posix: add support for ROMFSROOT
...
- add missing ROMFS files to CMakeLists.txt
- rename genromfs to etc, so that it's clearer for SITL use
2020-09-15 09:30:16 +02:00
Beat Küng
2b0396d5df
gps: use px4::atomic instead of volatile
2020-09-13 18:31:37 -04:00
Beat Küng
e906106ea2
gps: fix memory leak on module exit (delete _helper)
2020-09-13 18:31:37 -04:00
Beat Küng
2956aa340e
module: increase max timeout for stopping modules from 2s to 5s
...
The gps module might take up to 4s to stop (if stopped during module
configuration).
2020-09-13 18:31:37 -04:00
Beat Küng
787f9c1213
i2c: use board-specific bus numbering for '-X -b <bus>' CLI
...
As boards don't have their external buses labeled consistently, it was not
useful to use an abstraction.
2020-09-03 15:32:35 -04:00
Beat Küng and Daniel Agar
4088c2581f
i2c_spi_buses: add '-q' for quiet startup flag ( #14969 )
...
* [WIP] i2c_spi_buses: add '-q' for quiet startup flag
And enable for optional board sensors.
* ROMFS: rc.sensors try starting all optional I2C sensors quietly
Co-authored-by: Daniel Agar <daniel@agar.ca >
2020-08-26 08:46:35 +02:00
Beat Küng
b7b23a521a
sdp3x: remove reset during init
...
It is not playing nice with other devices on the same bus.
In particular with the FreeFly RTK GPS: once the reset is sent, the whole
bus is blocked and becomes unusable.
Current understanding is that this device contains another chip on the bus
(apart from the mag+baro+led).
I don't see much use for it either, as we configure everything there is to
configure (just the mode).
2020-08-24 17:55:05 -04:00
Beat Küng
ba5d7773f8
mavlink_timesync: print sender comp id for 'RTT too high for timesync' msg ( #15539 )
...
helps with debugging
2020-08-13 10:58:25 +02:00
Beat Küng
0f68121ae0
kopis 2 airframe: enable frsky telemetry
2020-08-06 00:08:23 -04:00
Beat Küng
bc9be2d040
frsky_telemetry: add support for inverted single-wire S.Port on F7
2020-08-06 00:08:23 -04:00
Beat Küng
b6052fbb11
nuttx: update submodule
2020-08-06 00:08:23 -04:00
Beat Küng
e28395a58b
TRIG_MODE: update description to support 78
2020-08-05 09:02:58 +02:00
Beat Küng
dfc2160489
commander: update vehicle_status with at least 2Hz
...
So we're sure it's logged.
2020-08-04 10:53:20 -04:00
Beat Küng
5f8c6512b3
vehicle_status: add latest arming/disarming reason
...
Makes it easier to debug.
2020-08-04 10:53:20 -04:00
Beat Küng
4282b3dd47
TRIG_PINS: allow triggering on 78 while still using the lower 6 pins for pwm
2020-08-04 13:37:40 +02:00
Beat Küng
ca189fefb7
v5x: use board-specific camera capture pin PI0
2020-08-04 13:37:40 +02:00
Beat Küng
316085c154
camera_capture: remove board-specific ifdef
2020-08-04 13:37:40 +02:00
Beat Küng
46208edfac
fix camera_trigger: no need to check for '_pins[i] < num_gpios'
...
_pins[i] >= num_gpios is a valid config.
2020-08-04 13:37:40 +02:00
Beat Küng
002e671d3f
fix pwm_out,dshot: set _num_outputs to 5 for mode_pwm5
2020-08-04 13:37:40 +02:00
Beat Küng
78e918ff3a
fix pwm_out: respect _num_outputs for calling up_pwm_servo_set()
...
_num_outputs is set according to the mode_pwmX call, which is required
for camera triggering.
This fixes camera triggering via PWM, as it avoids overwriting the channel.
2020-08-04 13:37:40 +02:00
Beat Küng
405cb5038d
sdp3x: introduce State enum
...
to avoid blocking the work queue during configuring.
2020-07-08 11:43:21 -04:00
Beat Küng
fc1be6e0b1
sdp3x: add '-k' option to keep retrying even if probing fails
...
we have a setup where the sensor is connected via magnets, so the system
could boot without sensor initially attached.
2020-07-08 11:43:21 -04:00
Beat Küng
3cc394e6c7
sdp3x: improve robustness, try to reconfigure on transfer error
2020-07-08 11:43:21 -04:00
Beat Küng
2bcc2f4ccc
mag params: add missing mag rotations according to rotation.h
2020-07-06 10:16:17 -04:00
Beat Küng
795b9e938e
drivers: add ST LPS33HW baro driver
...
Note: only tested on I2C
2020-07-06 10:13:11 -04:00
Beat Küng
03e51076b0
v5x: fix icm20602 sensor orientation
...
and reorder baro startup, so that the other one is used by default.
2020-07-06 11:02:48 +02:00
Beat Küng
0c4fd2bfa0
param: also show unused params for 'param show -c'
...
I find this generally useful for debugging.
2020-06-29 09:49:56 -04:00
Beat Küng
d22bbde7c5
logger: fix hardfault for invalid SDLOG_PROFILE setting
...
If some bits are set but no topic was added, _subscriptions was null but
later accessed.
During normal use this only happens when switching between different
firmware versions with different SDLOG_PROFILE definition (with custom
config).
2020-06-29 09:49:56 -04:00
Beat Küng
fe9a971f0e
logger: use subscription interval also in polling mode
...
Now that replay uses lockstep scheduling we don't need that work-around
anymore.
2020-06-23 11:53:55 -04:00
Beat Küng
a3d1c94aa4
logger: reduce poll timeout to 20ms
...
Just to ensure even if the topic is not updated, logger will still update
regularly.
2020-06-23 11:53:55 -04:00