171 Commits
Author SHA1 Message Date
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 KalachevandGitHub 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