Oleg Kalachev
8917849711
Remove unneeded declaration from the sim
2026-07-15 18:40:51 +03:00
Oleg Kalachev
1cdc7a8641
Fix rc in simulator
...
Virtual rc is disabled if rxRxPin < 0
2026-07-15 18:40:35 +03:00
Oleg Kalachev
d64bf24c6d
Add alicanerus' build
2026-07-08 22:29:33 +03:00
Oleg Kalachev
fabd5e072d
Fixes in the docs
2026-07-04 21:40:39 +03:00
Oleg Kalachev
1ae85ff118
Add argument to motor testing commands for specifying thrust
2026-07-02 22:22:33 +03:00
Oleg Kalachev
26a0dd65be
Minor fixes and updates
2026-06-30 12:19:29 +03:00
Oleg Kalachev
9d439afd80
Store only changed parameters in flash instead of all
...
Rationale:
1. Parameters NVS storage is limited and storing unchanged parameters is wasteful.
2. This allows changing parameters in the code without having to erase the flash storage.
3. Updating the firmware version may change the parameter defaults.
2026-06-28 17:21:07 +03:00
Oleg Kalachev
64b21a3a6b
Show default parameter values in p command output
...
Also move float comparing logic to a distinct util function.
2026-06-24 06:42:09 +03:00
Oleg Kalachev
545eed8944
Add Nerush and Konstantinos Paraskevas builds
2026-06-19 05:15:17 +03:00
Oleg Kalachev
518abf1555
Simplify rc code
...
Utilize the new method for getting channel values.
2026-06-14 04:45:42 +03:00
Oleg Kalachev
17df1c5396
Separate repository vscode settings and local vscode settings
...
Use dangmai.workspace-default-settings externsion for that.
2026-06-11 20:37:35 +03:00
Oleg Kalachev
8e2ffd7c69
Remove core installation when running the sim
...
Split `dependencies` target to `core` and `libs` targets.
Move additional urls declaration and connection timeout from arduino-cli.yaml to Makefile for simplicity and transparency.
Update ESP32 core url.
Remove arduino-cli.yaml.
2026-06-10 18:10:42 +03:00
Oleg Kalachev
52b74afba6
Bring back espnow tx buffering keeping resends disabled
...
Buffering is needed for sending large prints, otherwise the espnow internal buffer overflows.
Make onSent always think there was success send, so there won't be any resends.
Print lost espnow packets count on wifi console command.
2026-06-09 03:23:30 +03:00
Oleg Kalachev
0ca2473655
Make each mavlink message rate configured separately
...
Add parameters:
* MAV_RATE_ATT - ATTITUDE_QUATERNION rate.
* MAV_RATE_RC - RC_CHANNELS_RAW rate.
* MAV_RATE_MOT - ACTUATOR_CONTROL_TARGET rate.
* MAV_RATE_IMU - SCALED_IMU rate.
2026-06-09 02:59:10 +03:00
Oleg Kalachev
b4c2fe3988
Print total RAM in sys command
2026-06-09 02:49:39 +03:00
Oleg Kalachev
e51b47b798
Add command for setting the wifi mode easier
2026-06-09 02:44:09 +03:00
Oleg Kalachev
71abe1bcdb
Minor changes
...
Simplify the code, print imu temperature
2026-06-09 02:25:20 +03:00
Oleg Kalachev
0f2e384ce6
Don't apply level correction on idle thrust
2026-06-09 02:12:27 +03:00
Oleg Kalachev
5e153a210d
Update ESP32-Core to 3.3.10
2026-06-09 02:05:52 +03:00
Oleg Kalachev
9d47bcb82e
Minor changes in docs
2026-05-31 18:10:00 +03:00
Oleg Kalachev
1fafc27b39
Make it possible to unassign motor pin using -1 parameter value
2026-05-30 16:57:27 +03:00
Oleg Kalachev
faca48ced3
Replace ps and psq commands with st command + minor changes
...
Re-arrange commands order.
Make command parser consider \r in addition to \n.
2026-05-30 16:51:15 +03:00
Oleg Kalachev
a5dbd2c829
Add erase command to makefile
2026-05-30 16:48:12 +03:00
Oleg Kalachev
59f9528d34
Increase buffer for print, make sys output more correct
...
usStackHighWaterMark is not stack size, it's the minimum stack size
2026-05-30 11:11:35 +03:00
Oleg Kalachev
607b2ff0b7
Add malagis custom pcb version of Flix project to builds
2026-05-28 20:15:09 +03:00
Oleg Kalachev
22c06f76c4
Add Awab Anas' build
2026-05-28 19:29:05 +03:00
Oleg Kalachev
488ceb3004
Set the debug level to error by default to see the errors
2026-05-28 19:25:29 +03:00
Oleg Kalachev
b83c9b3845
Consider mavlink connected only when the gcs message is parsed
2026-05-28 18:41:34 +03:00
Oleg Kalachev
2f4b1423e6
Typo and minor code style changes
2026-05-28 18:39:44 +03:00
Oleg Kalachev
4e32414dae
Support ESP-NOW connection in pyflix
...
Set arbitrary pymavlink connection string using device parameter or FLIX_DEVICE env variable.
pyflix@0.16 .
2026-05-28 18:22:16 +03:00
Oleg Kalachev
a294883dea
Make p command show all parameters starting with the arg
2026-05-27 13:58:51 +03:00
Oleg Kalachev
cdfba72a0b
Fix simulator run
...
Add missing extern variables.
Fix warning.
2026-05-27 11:03:50 +03:00
Oleg Kalachev
18e81720e0
Add video of pcb version flights to the readme
2026-05-26 14:23:56 +03:00
Oleg Kalachev
91173d06c9
Various minor changes
2026-05-22 08:03:46 +03:00
Oleg Kalachev and GitHub
fdcc9533b3
Implement ESP-NOW support ( #40 )
2026-05-21 10:48:31 +03:00
Oleg Kalachev
bd2b1bd5de
Improve voltage measurement
...
Apply PWM_VOLT_PIN without reboot.
Check if the voltage pin can be used with ADC when setting up.
Set voltage to NAN, when it's unknown (including pyflix).
pyflix@0.15 .
Don't send BATTERY_STATUS when voltage is unknown.
Add dummy voltage to the simulator.
2026-05-18 00:30:42 +03:00
Oleg Kalachev
4530c05b5c
Add Flix 1.5 to builds
2026-05-17 06:46:11 +03:00
Oleg Kalachev
3816ae376f
Bring back initializing the lpf with the first input value
...
It's much better for voltage measuring and slightly better for gyro bias estimation.
2026-05-17 06:21:13 +03:00
Oleg Kalachev
72a72fde80
Some docs improvements
2026-05-14 21:59:15 +03:00
Oleg Kalachev
e53051a349
Fix console command parsing
2026-05-13 06:00:51 +03:00
Oleg Kalachev
f8a9f1f838
Remove reboot requirement when changing RC_RX_PIN
2026-05-13 01:27:01 +03:00
Oleg Kalachev
76af83fc88
Improve firmware overview article
2026-05-13 00:35:43 +03:00
Oleg Kalachev
dd176180a7
Update help message
...
Remove 'welcome to', add copyright and repo link.
2026-05-12 17:50:28 +03:00
Oleg Kalachev
48c33c7050
Fix and improve wifi subsystem
...
Fix a fault when wifi is disabled (udp can't be used without wifi).
Print RSSI and channel in wifi command.
2026-05-10 22:39:34 +03:00
Oleg Kalachev
35e94f6ea6
Support ESP32-C3
...
User Serial1 for rc instead of Serial2, as ESP32-C3 has only 2 Serials.
Add CI build for ESP32-C3.
2026-05-10 21:07:20 +03:00
Oleg Kalachev
1f48e379e3
Improve the rc calibration code
...
More convenient steps order.
Improve the readability a bit.
2026-05-10 19:05:27 +03:00
Oleg Kalachev
ee3c6999ab
Add mavlink joystick app usage to the docs
2026-05-10 14:50:27 +03:00
Oleg Kalachev
34c6993842
Some fixes in the docs
2026-05-10 02:33:03 +03:00
Oleg Kalachev
b62f2f9427
Rename some wifi parameters for better alphabetical sort
2026-05-09 17:55:55 +03:00
Oleg Kalachev and Marina Tikhomirova
7dfef17165
Add Ina Tix' build
...
Co-authored-by: Marina Tikhomirova <Ina.tix@yandex.ru >
2026-05-09 17:49:59 +03:00
Oleg Kalachev
8c8046676b
Simplify port definition in Makefile
2026-05-09 17:14:29 +03:00
Oleg Kalachev
702ec9792e
Some updates in troubleshooting article
2026-05-09 15:57:25 +03:00
Oleg Kalachev
06e2047097
Make motor testing signal 0.2 instead of full power
...
Testing with full power is too dangerous and inconvenient.
2026-05-08 00:53:19 +03:00
Oleg Kalachev
87480476c2
Fix motors pwm frequency for esp32s3 etc in the docs
2026-05-08 00:47:29 +03:00
Oleg Kalachev
68271c508c
Print firmware build date and time in sys command
2026-05-08 00:31:51 +03:00
Oleg Kalachev
e81e84e7fc
Some updates to docs
2026-05-07 20:15:55 +03:00
Oleg Kalachev
5f1a938d4f
Fix imu rotation definition
...
The X axis should be pointing to the mounting holes, not pins side.
2026-05-07 19:54:16 +03:00
Oleg Kalachev
bd270db493
Reduce angle drift by adding level correction to the estimator
...
Leverage a priori knowledge that the drone's average attitude is level.
Explanation: https://t.me/opensourcequadcopter/158 .
2026-05-05 21:27:47 +03:00
Oleg Kalachev
dbf24ea611
Expose lpf alpha of rate pids to parameters
...
Add parameters: CTL_R_RATE_D_A, CTL_P_RATE_D_A, CTL_Y_RATE_D_A.
2026-05-03 15:04:16 +03:00
Oleg Kalachev
08683d696d
Some updates in the usage doc
2026-05-01 15:26:59 +03:00
Oleg Kalachev
9ca6841558
Exit auto mode when sticks moved only when mode switch is not configured
2026-04-29 15:07:44 +03:00
Oleg Kalachev
28da2d3c8e
Fix in pyflix documentation
...
pyflix@0.14
2026-04-28 20:46:49 +03:00
Oleg Kalachev
c6632ae6e4
Add info on setting flight modes using rc mode switch
2026-04-28 20:43:52 +03:00
Oleg Kalachev
35ca754583
Fix Vector::rotationVectorBetween implementation for parallel vectors
2026-04-28 15:38:52 +03:00
Oleg Kalachev
2ccda03573
Implement motors output desaturation
...
So the drone continues stabilization on max thrust.
2026-04-28 13:23:42 +03:00
Oleg Kalachev
485a39e740
Disable wi-fi power save to improve responsiveness
2026-04-27 16:46:36 +03:00
Oleg Kalachev
9bffe5b52f
Some fixes in docs
2026-04-26 06:05:02 +03:00
Oleg Kalachev
d6a79d6c66
Pass acc data in mG in SCALED_IMU to comply with mavlink standard
...
https://mavlink.io/en/messages/common.html#SCALED_IMU
pyflix@0.13
2026-04-24 07:42:39 +03:00
Oleg Kalachev
350a82bfed
Minor fix
2026-04-23 15:34:54 +03:00
Oleg Kalachev
6e439859bc
Move disabling brown-out code to power subsystem
2026-04-23 15:06:07 +03:00
Oleg Kalachev
835b2243e8
Minor fix in sys command
...
String works with printf %s, but actually it's a UB.
2026-04-23 07:25:59 +03:00
Oleg Kalachev
ed4e2d87d1
Fix imu command output
...
Gyro field contained filtered gyro instead of scaled only gyro.
2026-04-23 07:12:25 +03:00
Oleg Kalachev
51cd5fc691
Implement battery voltage monitoring
...
Add power subsystem.
Add PWR_VOLT_PIN, PWR_VOLT_SCALE, PWR_VOLT_LPF_A parameters.
Support BATTERY_STATUS mavlink messages streaming.
Add pw cli command.
Add voltage field to pyflix library.
pyflix@0.12 .
2026-04-22 11:35:37 +03:00
Oleg Kalachev
d8591ea2a9
Fix working with parameters in pyflix examples
...
PITCH_P parameter was renamed to CTL_P_P
2026-04-18 05:23:47 +03:00
Oleg Kalachev
c434107eaf
Add parameter for configuring sbus pin number, disable sbus by default
2026-03-27 00:56:34 +03:00
Oleg Kalachev
814427dbfd
Minor docs change
2026-03-27 00:40:19 +03:00
Oleg Kalachev
0730ceeffa
Add new user builds
2026-02-21 07:12:36 +03:00
Oleg Kalachev
a687303062
Make motor parameters apply without reboot
...
Add callback to parameter definition to call after parameter is changed.
2026-02-19 04:56:12 +03:00
Oleg Kalachev
b2daf2587f
Minor parameters code simplifications
...
readOnly is false by default
INFINITY == INFINITY, so remove redundant check
2026-02-19 02:59:38 +03:00
Oleg Kalachev
a8c25d8ac0
Minor updates to usage article
2026-02-04 17:52:23 +03:00
Oleg Kalachev
3e49d41986
Make rc channel numbers and calibration params use int instead of float
...
As parameter subsystems supports int now, and int is much more natural here.
2026-02-02 20:36:22 +03:00
Oleg Kalachev
67430c7aac
Several minor changes
2026-02-02 18:46:36 +03:00
Oleg Kalachev
3631743a29
Drop messages from another systems in pyflix
...
We shouldn't pass messages where system id != our system id.
This change may be useful when there are many drones in one network.
2026-02-02 18:28:20 +03:00
Oleg Kalachev
3dde380bb7
Add parameters for list of modes bound to rc switch
...
Parameters: CTL_FLT_MODE_0, CTL_FLT_MODE_1, CTL_FLT_MODE_2.
Also fix a bug with incorrect choosing the mode from controlMode.
2026-01-27 16:38:20 +03:00
Oleg Kalachev
377b21429b
Fix error when launching the sim
...
Also make the parameters WIFI_LOC_PORT and WIFI_REM_PORT work in the sim.
2026-01-27 16:32:52 +03:00
Oleg Kalachev
1ac443d6f8
Add a build by Arky Matsekh
2026-01-27 15:17:58 +03:00
Oleg Kalachev
964c0f7bc1
Make setting parameter in console printing actual parameter value.
...
In some cases, it would not be equal to the requested value.
2026-01-27 09:28:01 +03:00
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