Oleg Kalachev
389cfb94ab
Add missing newlines to initialization prints
2025-06-19 13:19:00 +03:00
Oleg Kalachev
6b7601c0bd
Improve vector and quaternion libraries
...
Make the order or basic methods consistent between Vector and Quaternion.
Remove `ZYX` from Euler method names as this is standard for robotics.
Rename angular rates to rotation vector, which is more correct.
Make rotation methods static, to keep the arguments order consistent.
Make `Quaternion::fromAxisAngle` accept Vector for axis.
Minor fixes.
2025-05-31 04:17:00 +03:00
Oleg Kalachev
9c8c0e2578
Minor code updates
2025-05-15 09:22:17 +03:00
Oleg Kalachev
7e5a75a01f
Revert sending mavlink udp packets in unicast
...
This requires more complex approach as client ip may change between reconnections
2025-05-10 05:45:57 +03:00
Oleg Kalachev
2bcab6edb3
Make cli command case insensitive
...
iOS QGC capitalizes the command by default, so it's more convinient
2025-05-10 05:15:54 +03:00
Oleg Kalachev
df2b10acd4
Make wi-fi code more consistent between the firmware and simulation
2025-05-10 05:13:57 +03:00
Oleg Kalachev
31d6636754
Send mavlink udp packets in unicast after connected
...
Tests and research show this is more efficient way of sending telemetry
2025-05-10 05:08:04 +03:00
Oleg Kalachev
a491b28201
Make sending udp packets much faster
...
Turns out parsing IP address string is very slow
2025-05-06 04:32:36 +03:00
Oleg Kalachev
81037d94ec
Some cli improvements
...
Improve loop rate formatting
Show cpu temperature in sys command
2025-05-06 03:16:45 +03:00
Oleg Kalachev
965813e8f0
Use interrupts instead of polling for main loop
2025-05-05 13:58:23 +03:00
Oleg Kalachev
94c2d399b3
Add sys command
...
Show ESP32 model and free heap
Show tasks table with stack and cpu usage
2025-05-05 04:32:41 +03:00
Oleg Kalachev
21dc47c472
Make mavlink print buffered
...
Combine all output of each step into one SERIAL_CONTROL message
2025-05-05 00:44:06 +03:00
Oleg Kalachev
4b938e8d89
Make accelerometer calibration more verbose
...
Print the number of each calibration step
2025-05-05 00:38:08 +03:00
Oleg Kalachev
67efcdd08a
Remove unused macro
...
MAVLINK_CONTROL_SCALE is now parameter
2025-05-04 00:03:38 +03:00
Oleg Kalachev
5165355abc
Make low pass filter formula more straightforward
2025-04-29 23:28:56 +03:00
Oleg Kalachev
c14fe7c48b
Add some missing operator for vector library
2025-04-29 23:21:12 +03:00
Oleg Kalachev
fe98a5bf97
Minor code simplifications
2025-04-13 01:42:47 +03:00
Oleg Kalachev
94dc566643
Show landed state in imu command output
2025-03-29 16:19:23 +03:00
Oleg Kalachev
547f5087ef
Pass landed state to mavlink
...
Using EXTENDED_SYS_STATE message
2025-03-29 16:14:37 +03:00
Oleg Kalachev
66a43ab246
Continuous gyro bias estimation ( #17 )
...
Estimate gyro bias continuously instead of calibrating the gyro at startup.
2025-03-29 12:21:40 +03:00
Oleg Kalachev
3a61dca102
Simplify and improve acc calibration command output
2025-03-29 01:05:55 +03:00
Oleg Kalachev
d5148d12a1
Minor code style fix
2025-03-14 03:03:27 +03:00
Oleg Kalachev
208e50aa15
Encode if the mode in stabilized in heartbeat message
2025-03-14 03:02:43 +03:00
Oleg Kalachev
3fdebf39d8
Fix mavlink disconnection in pauses in cli commands
...
Implement pause function that proceeds processing mavlink.
Use temporal workaround for simulation, as micros function gives the same result on the same simulation step.
2025-02-28 19:25:41 +03:00
Oleg Kalachev
5bf2e06c5a
Use natural order of ino files includes in simulation
...
In Arduino, ino files are included in alphabetical order.
Cleanup unused function declarations in simulation, add missing.
Rename flu to frd function to match the code style.
2025-02-28 19:06:58 +03:00
Oleg Kalachev
bda44fca02
Remove dt multiplier from acc correction and increase acc weight
...
More classical complementary filter implementation
Increase effective accelerometer weight for faster convergence
2025-02-28 00:51:16 +03:00
Oleg Kalachev
a2cf318189
Check target system id in mavlink messages
...
Skip messages addressed to other systems
2025-02-26 00:08:23 +03:00
Oleg Kalachev
83a8dcd63e
Cleanup mavlink subsystem code
2025-02-24 13:06:38 +03:00
Oleg Kalachev
c62e536b50
Put last control time in RC control mavlink message instead of send time
2025-02-22 20:07:26 +03:00
Oleg Kalachev
287a4b5a71
Fix accel calibration via mavlink console
...
Add 5 s timeout as waiting for enter is not implemented for mavlink console yet
2025-02-18 13:01:44 +03:00
Oleg Kalachev
d60628e14d
Support MAVLink console
...
Implement receiving and sending SERIAL_CONTROL message
Use global defined print function instead of Serial.printf
2025-02-18 10:33:01 +03:00
Oleg Kalachev
bfef7bd26a
Remove non-nessesary printArray function
2025-02-18 10:26:59 +03:00
Oleg Kalachev
e54e0e8c48
Make all the basic functionality work without the imu
2025-02-17 19:44:18 +03:00
Oleg Kalachev
149c62568f
Refactor CLI submodule
...
Move command parsing to doCommand
Parse command with splitString instead of stringToken
Trim commands
Move cliTestMotor to the bottom
Rename parseInput to handleInput, which is more clear
Move motor test function to motors.ino
2025-02-17 15:51:58 +03:00
Oleg Kalachev
6ed6ef3e8c
Assume armed is true if armed channel is not defined
2025-02-12 10:15:42 +03:00
Oleg Kalachev
083db659c6
Improve RC reading in calibration process
2025-02-12 10:15:13 +03:00
Oleg Kalachev
3ed4143ba0
Simplify WIFI_ENABLED macro test
2025-02-08 02:41:09 +03:00
Oleg Kalachev
15fbe34d19
Add failsafe to prevent arming without prior zero throttle
2025-01-24 16:23:59 +03:00
Zatupitel
7d2d54a94d
Fix working on ESP32-S3 ( #8 )
...
Disable brown-out detector in a more correct way: clear only enable bit instead of clearing the whole register.
---------
Co-authored-by: Oleg Kalachev <okalachev@gmail.com >
2025-01-24 14:35:44 +03:00
Oleg Kalachev
60fbe1c450
Fix firmware build with Wi-Fi disabled
2025-01-24 13:50:07 +03:00
Oleg Kalachev
dcfe39f8c9
Move SBUS RC declaration to the top
2025-01-24 12:10:48 +03:00
Oleg Kalachev
fd6bc42e9e
Fix critical typo in RC loss fail-safe
2025-01-23 00:34:59 +03:00
Oleg Kalachev
b19270f14e
Minor cleanups and fixes
2025-01-17 12:30:12 +03:00
Oleg Kalachev
740121a88e
Check if requested parameters indexes are correct
...
In case if gcs gets crazy and requests incorrect parameter index
2025-01-14 21:14:04 +03:00
Oleg Kalachev
7effd92043
Make MAVLink control scale a parameter
2025-01-14 14:51:34 +03:00
Oleg Kalachev
70f5186c1b
Use double for storing time instead of float
...
Float precision may be not enough after some time of operating
2025-01-12 19:58:36 +03:00
Oleg Kalachev
d4e04c46cd
Add time command to cli
2025-01-12 19:50:00 +03:00
Oleg Kalachev
48d21a911f
Add missing const qualifiers
2025-01-12 19:46:50 +03:00
Oleg Kalachev
f456e10177
Increase motors PWM frequency to 1000
...
To match the main loop frequency
2025-01-12 15:35:05 +03:00
Oleg Kalachev
9e4a2c5ffc
Move controlsTime variable to rc.ino
2025-01-11 00:28:31 +03:00