Oleg Kalachev
3ffc8ec508
Add feature for setting arbitrary pin to arbitrary pwm over mavlink
...
Add flix.set_pin method for pyflix.
2026-08-30 22:25:38 +03:00
Oleg Kalachev
0dae0a3e7e
Move mavlink commands handlers to a separated function
...
It's more convenient to handle error that way.
2026-08-28 22:36:40 +03:00
Oleg Kalachev
119d1d82ac
Add some missing simulated Arduino methods for future use
...
* String::toUpperCase.
* Serial.read(*buf, len).
* Serial.write
2026-08-28 19:31:53 +03:00
Oleg Kalachev
23bac0cb31
Minor change
2026-08-28 19:30:11 +03:00
Oleg Kalachev
42b1685546
Test simulation run with example pyflix script
2026-08-28 16:41:01 +03:00
Oleg Kalachev
a99dbe02b6
Merge remote-tracking branch 'origin/master' into dev
2026-08-22 16:02:38 +03:00
Oleg Kalachev
03084a672a
Refactor the console subsystem
...
Rename cli.ino => console.ino.
Rename handleInput => handleConsole.
Separate console initialization function.
Always use usb cdc by default on s3/c3 (no configuration needed).
2026-08-19 05:32:52 +03:00
Oleg Kalachev
36b58f26e5
Rename cli.ino to console.ino
2026-08-19 05:08:29 +03:00
Oleg Kalachev
e7100f03ce
Simplify and improve control code
...
Add lower bound desaturation.
Remove constrain calls as they are performed in motors subsystem.
2026-08-18 11:43:26 +03:00
Oleg Kalachev
e315e6f0ae
Simplify and improve control code
...
Add lower bound desaturation.
Remove constrain calls as they are performed in motors subsystem.
2026-08-18 11:00:59 +03:00
Oleg Kalachev
647d68f1b7
Rename motor indexes constant names
...
The original names are overly verbose.
Make motor pins disabled by default on all platforms except classic esp32.
Make config more clear.
2026-08-17 06:01:07 +03:00
Oleg Kalachev
58d160b15b
Rename motor indexes constant names
...
The original names are overly verbose.
2026-08-17 05:33:08 +03:00
Oleg Kalachev
f12b239af9
Fix simulation run
2026-08-14 04:19:41 +03:00
Oleg Kalachev
94c70994b6
Fix simulation run
2026-08-14 04:19:25 +03:00
Oleg Kalachev
7312aeff32
Rename lpf.h to filter.h
...
To implement more filters (like notch) potentially.
2026-08-12 02:01:56 +03:00
Oleg Kalachev
355f4ad49d
Merge remote-tracking branch 'origin/master' into dev
2026-08-11 18:43:18 +03:00
Oleg Kalachev
f79c444f07
Configure imu using parameters instead of editing the source code
...
Choose the model and optionally custom pin numbers.
2026-08-11 05:36:31 +03:00
Oleg Kalachev
2decd2d6dd
Fix simulation build
2026-08-08 02:19:38 +03:00
Oleg Kalachev
83aac78cf7
Merge branch 'master' into dev
2026-08-03 16:02:29 +03:00
Oleg Kalachev
eb93b0b29d
Merge branch 'master' into dev
2026-08-03 16:01:39 +03:00
Oleg Kalachev
406f7a4af5
Add tilt disarm failsafe
2026-08-02 02:13:50 +03:00
Oleg Kalachev
1203a3ae8f
Make imu model and pins configurable using parameters
2026-07-16 23:09:07 +03:00
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
0439407d76
Remove unneeded declaration from the sim
2026-07-15 18:29:36 +03:00
Oleg Kalachev
c2005a2ca2
Fix rc in simulator
2026-07-15 17:40:11 +03:00
Oleg Kalachev
6a804862da
Fix simulator build with new logging
2026-07-15 14:17:24 +03:00
Oleg Kalachev
7c53e88963
Add notch filter for the gyro
2026-07-08 16:07:03 +03:00
Oleg Kalachev
1ae85ff118
Add argument to motor testing commands for specifying thrust
2026-07-02 22:22:33 +03:00
Oleg Kalachev
83d1c5c68a
Implement entirely new logging subsystem
...
Make topic-based logging mechanics.
Print any log value to console.
Possibility to expose any logging value to mavlink.
2026-06-30 13:03:43 +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
e51b47b798
Add command for setting the wifi mode easier
2026-06-09 02:44:09 +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 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
f8a9f1f838
Remove reboot requirement when changing RC_RX_PIN
2026-05-13 01:27:01 +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
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
2ccda03573
Implement motors output desaturation
...
So the drone continues stabilization on max thrust.
2026-04-28 13:23:42 +03:00
Oleg Kalachev
6e439859bc
Move disabling brown-out code to power subsystem
2026-04-23 15:06:07 +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
c434107eaf
Add parameter for configuring sbus pin number, disable sbus by default
2026-03-27 00:56:34 +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
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
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
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
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
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