Oleg Kalachev
40bdaacedb
Make motor subsystem configurable using parameters
...
Motor pins: MOT_PIN_FL, MOT_PIN_FR, MOT_PIN_RL, MOT_PIN_RR.
PWM configuration: MOT_PWM_FREQ, MOT_PWM_RES, MOT_PWM_STOP, MOT_PWM_MIN, MOT_PWM_MAX.
MOT_PWM_MAX = -1 chooses duty cycle mode for brushed motors (default).
2026-01-27 08:40:52 +03:00
Oleg Kalachev
7d74f3d5cd
Minor docs fixes
2026-01-27 07:21:21 +03:00
Oleg Kalachev
9fd35ba361
Simplify lpf filter code
...
Begin with zero instead of the initializing value, as the latter doesn't make much sense in practice, but complicates the code much.
2026-01-24 09:43:46 +03:00
Oleg Kalachev
ca50f75576
Various minor fixes
2026-01-24 09:34:16 +03:00
Oleg Kalachev
e47a31f981
Fix mavlink parameter set acknowledgement value
...
If the parameter is integer the acknowledgement should contain the rounded value.
2026-01-24 09:32:49 +03:00
Oleg Kalachev
7ad3022798
Add parameter for configuring gyro bias lpf
...
+ reset the filter on `reset` command
2026-01-24 09:31:32 +03:00
Oleg Kalachev
5b654e4d8e
Update ESP32-Core to 3.3.6
2026-01-23 02:41:43 +03:00
Oleg Kalachev
cf10ec6161
Update MAVLink-Arduino to 2.0.16
2026-01-23 01:11:35 +03:00
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
a.golubtsov
a6bad3a69b
Add log dir creation before log writing
2026-01-22 17:56:23 +03:00
Oleg Kalachev
9a9bd07251
Add correct attitude estimation video to the usage article
2026-01-15 23:46:23 +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
7e24ee30f7
Documentation and book updates
...
Improve the main list of features.
Use lowercase imu variable for consistency with the firmware code.
Minor fixes.
2026-01-13 17:26:40 +03:00
Oleg Kalachev
2a8faf5759
Fix logo svg slightly
2026-01-08 19:45:08 +03:00
Oleg Kalachev
f4e58a652a
Add project logo
v1.2
2026-01-08 17:58:59 +03:00
Oleg Kalachev
6c46328da1
Minor doc fixes
2026-01-04 15:01: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
a5e3dfcf69
Some updates to the docs
2026-01-03 12:18:47 +03:00
Oleg Kalachev
d6e8be0c05
Add parameters for easier IMU orientation definition
2025-12-26 21:14:15 +03:00
Oleg Kalachev
68d16855df
Add motors rotation diagram to usage article
2025-12-25 07:22:09 +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
f1dc4a0400
Updates to user builds article
2025-12-17 02:21:51 +03:00
Oleg Kalachev
158827ac55
Add new user builds, add school 548 course overview
...
+ minor doc fixes.
2025-12-13 21:09:33 +03:00
Oleg Kalachev
36ca30c3e4
Minor docs fix
2025-11-27 18:34:32 +03:00
Oleg Kalachev
48711b55e1
Add tip about CNT_TILT_MAX parameter to the simulator article
2025-11-26 17:34:08 +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
5352386486
Minor updates to pyflix library, pyflix@0.10
...
Fixes to documentation.
Improve logger format.
2025-11-22 05:07: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
348721acc9
Updates in documentation
...
Fixes, updates, new illustrations.
2025-11-10 20:16:14 +03:00
Oleg Kalachev
774144c430
Many updates to documentation
...
Updates to main readme.
Add much more info to usage article.
Move simulator building to simulation's readme.
Improve assembly article.
Many fixes.
Updates in diagrams.
2025-11-06 13:55:52 +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
08b6123eb7
Fixes to troubleshooting
2025-10-21 19:40:54 +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
ebac78dc0f
Minor change
2025-10-19 20:46:26 +03:00