Oleg Kalachev
6d01cd2e79
Make failsafe configurable using parameters
...
SF_RC_LOSS_TIME - time without rc to activate failsafe.
SD_DESCEND_TIME - total time to decrease the throttle to zero.
Make controlTime nan on the start to simplify the logic.
2026-01-22 23:57:52 +03:00
Oleg Kalachev
0abb18c616
Make parameter names case-insensitive
...
+ minor fix
2026-01-22 23:11:47 +03:00
Oleg Kalachev
30326a5662
Add parameters for configuring the mavlink subsystem
...
MAV_SYS_ID - mavlink system id.
MAV_RATE_SLOW - rate of slow telemetry (e. g. heartbeats).
MAV_RATE_FAST - rate of fast telemetry (e. g. attitude, imu data).
2026-01-22 23:04:45 +03:00
Oleg Kalachev
dd3575174b
Add wifi configuration using parameters and cli
...
Add console commands to setup wifi.
Add a parameter for choosing between STA and AP mode.
Add parameters for udp ports.
Remove WIFI_ENABLED macro.
2026-01-22 22:58:43 +03:00
Oleg Kalachev
c0f3301da4
Support integer parameters in addition to floats
...
The variable pointer is stored as a union field.
If `.integer` field is true, then integer pointer should be used.
Interfaces to parameters (cli and mavlink) keep working using floats.
Setting a non-finite value to int parameter will cause an error.
`.value` field is renamed to `.cache`.
2026-01-22 22:54:05 +03:00
Oleg Kalachev
28f5855a57
Re-arrange control.ino declarations to make a bit more sensible
...
So the control command is above the PID controllers.
2026-01-13 17:43:53 +03:00
Oleg Kalachev
c8e5e08b03
Move all global variable declarations to the appropriate subsystems
...
As it makes the subsystems code easier to understand.
Declare the most used variables in main sketch file as forward declarations.
Make all control input zero by default (except controlMode).
Minor changes.
2026-01-03 13:28:18 +03:00
Oleg Kalachev
d6e8be0c05
Add parameters for easier IMU orientation definition
2025-12-26 21:14:15 +03:00
Oleg Kalachev
0547ea548b
Add parameters for acc weight and rates lpf alpha
2025-12-24 05:43:55 +03:00
Oleg Kalachev
c02dba6812
Rename gyroCalibrationFilter to gyroBiasFilter
...
Which seems a better name
2025-12-24 05:36:43 +03:00
Oleg Kalachev
4d583185a9
Rename manual mode to raw mode
...
Make it callable from the console.
Increase the coefficient.
Corresponding change in pyflix.
pyflix@0.11 .
2025-11-25 04:44:16 +03:00
Oleg Kalachev
d757ffa853
Move yaw dead zone handling from mavlink to control subsystem
...
So yaw dead zone works the same for rc and mavlink.
2025-11-22 05:11:46 +03:00
Oleg Kalachev
9b5872740f
Add wifi cli command
...
To show wi-fi info.
2025-11-22 04:46:54 +03:00
Oleg Kalachev
31dbdaf241
Group control parameters
...
Also add IMU group to accelerometer calibration parameters.
2025-11-19 01:50:46 +03:00
Oleg Kalachev
f4b56262b1
Remove unneeded SERIAL_BAUDRATE define
2025-11-14 20:23:15 +03:00
Oleg Kalachev
49039f752d
Refactor Wi-Fi log download
...
Use MAVLink LOG_REQUEST_DATA and LOG_DATA for download log instead of console.
Make Wi-Fi download default way of downloading the log.
Make `log` command only print the header and `log dump` dump the log.
2025-11-14 20:21:05 +03:00
Oleg Kalachev
0e6651ab82
Add Rate class for running the code at fixed rate
2025-11-06 13:41:33 +03:00
Oleg Kalachev
1a017ccb97
Keep only one floating point version of map function
...
Two variants are redundant
2025-11-02 00:02:28 +03:00
Oleg Kalachev
7170b20d1d
Simplify command for command handling
2025-10-21 19:41:10 +03:00
Oleg Kalachev
dc9aed113b
Minor code fixes
2025-10-21 19:41:05 +03:00
Oleg Kalachev
1a8b63ee04
Send only mavlink heartbeats until connected
2025-10-21 19:39:17 +03:00
Oleg Kalachev
8c49a40516
Skip attitude/rate control if thrustTarget is ineffective
...
To prevent i term windup.
2025-10-20 23:01:17 +03:00
Oleg Kalachev
ca595edce5
Refactor PID control to simplify the code and modifications
...
Each PID uses its internal dt, so may be various contexts with different rate.
PID has max dt, so no need to reset explicitly.
2025-10-20 22:54:18 +03:00
KiraFlux
d06eb2a1aa
Quaternion::fromBetweenVectors: pass u and v as const references ( #21 )
2025-10-19 20:46:46 +03:00
Oleg Kalachev
e50a9d5fea
Revert t variable type to float instead of double
...
For the sake of simplicity and consistency.
2025-10-19 20:46:38 +03:00
Oleg Kalachev
186cf88d84
Add generic Delay filter
2025-10-19 20:46:11 +03:00
Oleg Kalachev
253aae2220
Lowercase imu and rc variables
...
To make it more obvious these are variables, not classes.
2025-10-19 20:45:56 +03:00
Oleg Kalachev
6f0964fac4
Rename failsafe.ino to safety.ino
...
To aggregate all the safety related functionality.
2025-10-19 20:44:54 +03:00
Oleg Kalachev
7bee3d1751
Improve rc failsafe logic
...
Don't trigger failsafe if there's no RC at all
Use AUTO mode for descending, instead of STAB
Increase RC loss timeout and descend time
2025-10-12 21:27:08 +03:00
Oleg Kalachev
c4533e3ac8
Reset yaw target when drone disarmed
...
Prevent unexpected behavior when the drone tries to restore its old yaw on takeoff.
2025-10-07 15:43:28 +03:00
Oleg Kalachev
e673b50f52
Include FlixPeriph header instead of MPU9250
...
This simplifies choosing IMU model
2025-10-07 08:43:12 +03:00
Oleg Kalachev
5151bb9133
Ensure showing correct raw data in imu command
...
Some IMUs will reset acc and gyro buffer on whoAmI() call
2025-10-07 08:43:06 +03:00
Oleg Kalachev
838fe11f6b
Simplify mode index check in set_mode
2025-09-26 05:03:36 +03:00
Oleg Kalachev
4c89b10767
Fix fields order in psq command
2025-09-20 22:35:36 +03:00
Oleg Kalachev
a79df52959
Don't trigger rc failsafe in AUTO mode or if disamed
2025-09-20 20:36:36 +03:00
Oleg Kalachev
e88888baeb
Fix rc calibration steps enumeration again
2025-09-11 11:47:28 +03:00
Oleg Kalachev
de69b228ff
Fix rc calibration steps enumeration
2025-09-02 11:03:44 +03:00
Oleg Kalachev
f9739dcd7e
Don't arm by mavlink command if throttle is not low
2025-08-29 03:47:51 +03:00
Oleg Kalachev
40fc4b96b5
Implement AUTO mode for automatic flights
...
Support SET_ATTITUDE_TARGET, SET_ACTUATOR_CONTROL_TARGET in mavlink.
ACTUATOR_OUTPUT_STATUS is changed ACTUATOR_CONTROL_TARGET to match used message for setting motor outputs.
Add support for changing mode from mavlink.
Support automatic flights in pyflix.
2025-08-28 00:49:24 +03:00
Oleg Kalachev
10fafbc4a0
Send udp packets in unicast after connection is established
...
This makes qgc connection faster.
Add WIFI_UDP_REMOTE_ADDR macro for default remote address for both the firmware and simulation.
2025-08-27 05:01:07 +03:00
Oleg Kalachev
d47d7b8bd4
Support arm/disarm mavlink commands
...
Refactor commands handling to remove repeating ack message packing.
2025-08-27 04:45:25 +03:00
Oleg Kalachev
a7fdc2a88f
Minor change in cli help message
2025-08-27 04:43:24 +03:00
Oleg Kalachev
c1788e2c75
Refactor arming logic
...
Arm and disarm with gestures only: left stick right/down for arming, left/down for disarming.
Remove arming switch as it complicates arming gestures logic.
Remove MAV_CTRL_SCALE parameter as it complicates arming gestures logic, advise to decrease TILT_MAX when controlling with a smartphone.
Put some minimal thrust to motors to indicate armed state.
Rename build article to usage article, add flight instructions.
2025-08-27 03:19:26 +03:00
Oleg Kalachev
bf0cdac111
Major update of the articles
...
Reflect control subsystem refactoring.
Update dataflow diagram.
Add control subsystem diagram.
Minor updates.
2025-08-27 00:09:42 +03:00
Oleg Kalachev
b21e81a68b
Add cli commands for switching mode
...
Make mode variable int instead of enum, which is more convinient.
2025-08-26 21:55:27 +03:00
Oleg Kalachev
8418723ccc
Refactor control subsystem
...
Add interpretControls function to convert pilot commands and mode into control targets and make control functions independent from the mode.
Add ratesExtra target for rates feed-forward; remove yawMode.
Rename controlRate to controlRates to reflect rates variable name.
Remove USER mode.
2025-08-26 01:00:56 +03:00
Oleg Kalachev
a1539157b8
Show raw values in imu command
2025-08-22 17:20:33 +03:00
Oleg Kalachev
dee4d97ab3
Add getRoll, getPitch, setRoll, setPitch methods
...
Add methods to Quaternion for consistency with getYaw and setYaw
2025-08-09 18:10:11 +03:00
Oleg Kalachev
ea35db37da
Minor code simplification
2025-08-09 17:53:06 +03:00
Oleg Kalachev
18bacb64f3
Make rc loss timeout longer
2025-07-31 12:35:28 +03:00