Releases: bitcraze/crazyflie-firmware
2024.10.2
What's Changed
- Add POC Rust Crazyflie app example by @ataffanel in #1429
- Remove the RPM test from the exp deck driver completely by @ToveRumar in #1433
- Fix stabilizer locked assert when passthrough interface is active by @tobbeanton in #1432
Full Changelog: 2024.10.1...2024.10.2
2024.10.1
What's Changed
- Disarming improvements by @gemenerik in #1426
- Expose production test rpm values as params by @ToveRumar in #1427
Full Changelog: 2024.10...2024.10.1
2024.10
What's Changed
- Script for visualizing lighthouse coverage by @krichardsson in #1331
- HL commander: add hlCommander.groupmask param by @whoenig in #1333
- allow to build apps with other configs by @atoums in #1334
- Addr pca interface by @atoums in #1335
- radiolink: add log variables for statistics by @whoenig in #1341
- PID avoid derivative kick by @gelanchez in #1337
- moving some physical constants so they can be config dependants by @atoums in #1338
- Servo support by @matejkarasek in #1340
- Added crashed state and the ability to recover from it by @evoggy in #1348
- Start timeout after landing before disarming by @gemenerik in #1349
- Merge SystemID deck functionality into master by @tobbeanton in #1346
- Update openocd_gdb_debugging.md by @knmcguire in #1356
- Introduce BMP390 support by @gemenerik in #1361
- unit tests update for newer ruby versions by @ToveRumar in #1363
- STM32F405.svd: Move the svd file for debugging. by @ToveRumar in #1365
- Storage; Defragment kve storage when starting up by default by @ToveRumar in #1364
- Documentation: Add instructions for workaround for deadlysignal in un… by @ToveRumar in #1366
- autogen log and param fixes by @knmcguire in #1371
- Add Lee controller by @Khaledwahba1994 in #1343
- Lee controller: fix inconsistend order h/c file by @whoenig in #1378
- printf: add support to print NaNs by @whoenig in #1379
- fix narrowing warning for param definitions by @jpreiss in #1374
- Fix multi-deck multi-memory OTA flashing by @gemenerik in #1381
- Add platform configuration for CF2.1 brushless by @gemenerik in #1383
- Add RPM deck test for Brushless by @ToveRumar in #1382
- Toverumar/mutual excl idlethrust by @ToveRumar in #1384
- Update build.md by @sojez1 in #1385
- Added radiotest deck driver for radiotesting by @ToveRumar in #1386
- Fixed CF-BL and Bolt M4 PC15 conflict resulting in that Bolt M4 didn't spin. by @tobbeanton in #1391
- Fix out of tree controllers by @gemenerik in #1392
- Improved PID documentation by @gemenerik in #1387
- Change NUM_TRAJECTORY_DEFINITIONS to match documentation - fix only 10 trajectories bug. by @Acoliver102 in #1394
- Add cf21bl build target by @gemenerik in #1396
- Update github actions to not use deprecated external actions. by @ToveRumar in #1399
- Enhance Makefile for OOT app layer builds by @gemenerik in #1398
- When radiotest driver is included spin motors by @ToveRumar in #1400
- Upgrade to new workflow file by @ToveRumar in #1401
- Minor brushless configuration changes by @gemenerik in #1407
- Fix PID derivative kickoff and reset by @matejkarasek in #1403
- Bugfix & flapper platform defaults updates by @matejkarasek in #1409
- Disable controller selection if OOT controller is selected by @gemenerik in #1397
- Tumble check: platform-specific settings by @matejkarasek in #1408
- Improved HL commander - spiral & linear segment by @matejkarasek in #1410
- Building and flashing guide improvements by @gemenerik in #1395
- Motors: unify types for PWM to be uint16_t by @whoenig in #1380
- Stop motors when stabilizer task is blocking by @gemenerik in #1415
- Update test deck for crazyflie brushless by @ToveRumar in #1418
- Several small documentation updates by @gemenerik in #1420
- Fix: Use malloc and free for cv_stack to avoid dangling pointer warning by @gemenerik in #1417
- Revert "Removed -nostdlib from LDFLAGS" by @gemenerik in #1419
- Crazyflie 2.x family documentation consistency by @gemenerik in #1422
New Contributors
- @atoums made their first contribution in #1334
- @gelanchez made their first contribution in #1337
- @ToveRumar made their first contribution in #1363
- @Khaledwahba1994 made their first contribution in #1343
- @sojez1 made their first contribution in #1385
- @Acoliver102 made their first contribution in #1394
Deprecated
- parameter system.arm, removed after june 2024
- Config ESTIMATOR_KALMAN_TDOA_OUTLIERFILTER_FALLBACK, removed after September 2023
- function [bool outlierFilterTdoaValidateSteps()](https://github.com/bitcraze/crazyflie-
firmware/blob/7d40b541108582d822b11fc0a5c194bf0fe07392/src/modules/interface/outlierfilter/outlierFilterTdoaSteps.h#L33), removed after September 2023 - parameter sys.canfly, removed after June 2024
- parameter sys.isFlying, removed after June 2024
- parameter sys.isTumbled, removed after June 2024
- parameter system.arm, removed after June 2024
- function appchannelHasOverflowOccured(), removed after August 2023
- parameter [deck.bcDWM1000](https://github.com/bitcraze/crazyflie firmware/blob/0f2f0f07d2c2463cb07e4b187f9a9a58b689d124/src/deck/drivers/src/locodeck.c#L603-L608), removed after August 2023
- parameter [commander.enHighLevel](https://github.com/bitcraze/crazyflie
- firmware/blob/0f2f0f07d2c2463cb07e4b187f9a9a58b689d124/src/modules/src/commander.c#L168-L174), removed after August 2023
- Function [appchannelSendPacket()](https://github.com/bitcraze/crazyflie
- firmware/blob/0f2f0f07d2c2463cb07e4b187f9a9a58b689d124/src/modules/interface/app_channel.h#L36-L52), removed after August 2023
- Function appchannelReceivePacket(), removed after August 2023
- Function sitAwTuDetected(), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_TAKEOFF(1), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_LAND(2), removed after August 2023
- Log group [ext_pos](https://github.com/bitcraze/crazyflie-firmware/blob/0f2f0f07d2c2463cb07e4b187f9a9a58b689d124/src/modules/src/crtp_localization_service.c#L393-L39...
2023.11
Major changes
This release contain a couple of new features along with some bug fixes
- Hybrid TDOA mode (still experimental and behind a build flag)
- Python wrappers for Kalman core
- Example for gap8 and cpx communication with the aideck
- Fixes to the parameter internal update.
- More clarification by the supervisor's state (need the new cfclient for this too)
What's Changed
- Correction of the kalman estimator rate by @krichardsson in #1301
- Remove links to binaries by @krichardsson in #1309
- Example app for CPX communication with the GAP8 by @krichardsson in #1311
- Remove -nostdlib from LDFLAGS by @krichardsson in #1310
- Optimize UART read for lighthouse by @krichardsson in #1308
- Fix LH as ground truth for LH1 by @krichardsson in #1313
- Add a warning if motor power is capped by @krichardsson in #1314
- Added brushed support for Bolt 1.1 (HW mod required) by @tobbeanton in #1316
- Restored this accidentally-deleted pull request by @simondlevy in #1307
- Added locked info to supervisor by @krichardsson in #1321
- Basic python test for kalman core by @krichardsson in #1322
- Bump CRTP version by @krichardsson in #1326
- Clarify setpoint priority by @krichardsson in #1327
- Correct param update initiated in the CF by @krichardsson in #1328
- Refactor python tests by @krichardsson in #1325
- TDoA3 hybrid mode by @krichardsson in #1330
New Contributors
- @simondlevy made their first contribution in #1307
Deprecated
This functionality is deprecated and will be removed in a future release. See the documentation for each item for information on which functionality to use instead.
- NEW parameter
system.arm
, removed after june 2024 - NEW Config
ESTIMATOR_KALMAN_TDOA_OUTLIERFILTER_FALLBACK
, removed after September 2023 - function
bool outlierFilterTdoaValidateSteps()
, removed after September 2023 - parameter
sys.canfly
, removed after June 2024 - parameter
sys.isFlying
, removed after June 2024 - parameter
sys.isTumbled
, removed after June 2024 - parameter
system.arm
, removed after June 2024 - function
appchannelHasOverflowOccured()
, removed after August 2023 - parameter
deck.bcDWM1000
, removed after August 2023 - parameter
commander.enHighLevel
, removed after August 2023 - Function
appchannelSendPacket()
, removed after August 2023 - Function
appchannelReceivePacket()
, removed after August 2023 - Function
sitAwTuDetected()
, removed after August 2023 - CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_TAKEOFF(1), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_LAND(2), removed after August 2023
- Log group
ext_pos
, removed after August 2023 - Parameter
lighthouse.bsAvailable
, removed after August 2023
Full Changelog: 2023.07...2023.11
2023.11-rc2
Merge pull request #1330 from bitcraze/krichardsson/hybrid-mode TDoA3 hybrid mode
2023.10-rc1
Merge pull request #1325 from bitcraze/krichardsson/py-test-refactor Refactor python tests
2023.07
This is a maintenance release that fixes a few quirks that were introduced when the supervisor was added in the 2023.06 release. No new functionality has been added.
Deprecated functionality
This functionality is deprecated and will be removed in a future release. See the documentation for each item for information on which functionality to use instead.
- function
bool outlierFilterTdoaValidateSteps()
, removed after September 2023 - parameter
sys.canfly
, removed after June 2024 - parameter
sys.isFlying
, removed after June 2024 - parameter
sys.isTumbled
, removed after June 2024 - parameter
system.arm
, removed after June 2024 - function
appchannelHasOverflowOccured()
, removed after August 2023 - parameter
deck.bcDWM1000
, removed after August 2023 - parameter
commander.enHighLevel
, removed after August 2023 - Function
appchannelSendPacket()
, removed after August 2023 - Function
appchannelReceivePacket()
, removed after August 2023 - Function
sitAwTuDetected()
, removed after August 2023 - CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_TAKEOFF(1), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_LAND(2), removed after August 2023
- Log group
ext_pos
, removed after August 2023 - Parameter
lighthouse.bsAvailable
, removed after August 2023
What's Changed
- Updated CRTP version def and doc by @krichardsson in #1288
- Add Loco deck TX power doc by @krichardsson in #1289
- Update build.md by @knmcguire in #1284
- Add parameter to force a failed assert by @krichardsson in #1295
- Add missing pragma once by @krichardsson in #1290
- Made tumble detection less sensitive by @krichardsson in #1296
- Stop high level commander instead of disable by @krichardsson in #1298
- Fixed blujay passthough assert bugs by @tobbeanton in #1300
Full Changelog: 2023.06...2023.07
2023.06
Major changes
The supervisor functionality has been extended to enable future high level functionality. Basic arming functionality has been added.
The Loco TDoA outlier filter has been updated to work better in long range mode.
The CRTP version is bumped to 6.
A tool for visualizing file dependencies in the source tree is added.
Bugfixes and clean up.
Deprecated functionality
This functionality is deprecated and will be removed in a future release. See the documentation for each item for information on which functionality to use instead.
- NEW function
bool outlierFilterTdoaValidateSteps()
, removed after September 2023 - NEW parameter
sys.canfly
, removed after June 2024 - NEW parameter
sys.isFlying
, removed after June 2024 - NEW parameter
sys.isTumbled
, removed after June 2024 - NEW parameter
system.arm
, removed after June 2024 - function
appchannelHasOverflowOccured()
, removed after August 2023 - parameter
deck.bcDWM1000
, removed after August 2023 - parameter
commander.enHighLevel
, removed after August 2023 - Function
appchannelSendPacket()
, removed after August 2023 - Function
appchannelReceivePacket()
, removed after August 2023 - Function
sitAwTuDetected()
, removed after August 2023 - CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_TAKEOFF(1), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_LAND(2), removed after August 2023
- Log group
ext_pos
, removed after August 2023 - Parameter
lighthouse.bsAvailable
, removed after August 2023
What's Changed
- Added limitation of log variable name length by @pacificlion in #1240
- Improved TDoA outlier filter by @krichardsson in #1237
- add swig build instructions by @knmcguire in #1241
- add more instructions for make_app toolbelt by @knmcguire in #1242
- Extends push demo with up/down capabilities by @hmllr in #1246
- Extracted CRTP for mem subsystem by @krichardsson in #1249
- Krichardsson/refactoring by @krichardsson in #1247
- Initialize mem sub system before decks by @krichardsson in #1252
- Adds CPX version check by @hmllr in #1253
- Added function to read multi-byte data over UART1 by @bhabas in #1254
- usddeck: improve error handling on write by @whoenig in #1257
- usddeck: fix incorrect use of MAX_USD_LOG_EVENTS by @whoenig in #1256
- usec timer: add support to reset time by @whoenig in #1255
- Add a param/log for testing by @krichardsson in #1259
- Revert clearing of data in mem init by @krichardsson in #1262
- Log instead of assert on CPX version mismatch by @krichardsson in #1265
- Check CRC on LH calibration data by @krichardsson in #1266
- Clarify documentation for ToF laser ranging by @nikhil-sethi in #1251
- Fix formatting in estimator_complementary.c by @matejkarasek in #1267
- Upgrade libdw1000 to latest version by @krichardsson in #1269
- Fix dependency problem to outlier filters by @krichardsson in #1270
- Rename stabilizer loop tick to stabilizerStep by @krichardsson in #1271
- Add dependency checker tool by @krichardsson in #1275
- Extended supervisor by @krichardsson in #1272
- Align trajectory memory by @krichardsson in #1282
- Add callback for CPX app messages by @mfxjx000205 in #1279
- Remove "charger connected" from supervisor by @krichardsson in #1285
- Updated tumble criteria by @krichardsson in #1286
- Improved arming functionality by @krichardsson in #1281
New Contributors
- @pacificlion made their first contribution in #1240
- @bhabas made their first contribution in #1254
- @nikhil-sethi made their first contribution in #1251
- @mfxjx000205 made their first contribution in #1279
Full Changelog: 2023.02...2023.06
2023.02
New functionality
- Out of tree support for controllers to make it easy to add a custom controller from an app
- Support to configure ESCs with BLHeli Configurator
- Added an UKF estimator (experimental, does not support all positioning systems)
- Possibility to reformat the persistent storage and wipe all data
The release also contains changes for improved testability and to support python bindings, as well as a number of bug fixes and stability improvements.
Deprecated functionality
This functionality is deprecated and will be removed in a future release. See the documentation for each item for information on which functionality to use instead.
- NEW - function
appchannelHasOverflowOccured()
, removed after August 2023 - NEW - parameter
deck.bcDWM1000
, removed after August 2023 - NEW - parameter
commander.enHighLevel
, removed after August 2023 - Function
appchannelSendPacket()
, removed after August 2023 - Function
appchannelReceivePacket()
, removed after August 2023 - Function
sitAwTuDetected()
, removed after August 2023 - CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_TAKEOFF(1), removed after August 2023
- CRTP message, Port=CRTP_PORT_SETPOINT_HL(8), command=COMMAND_LAND(2), removed after August 2023
- Log group
ext_pos
, removed after August 2023 - Parameter
lighthouse.bsAvailable
, removed after August 2023
What's Changed
- Updated docs: supported platforms by @krichardsson in #1172
- Updates to action scripts by @krichardsson in #1173
- Support to configure ESCs with BLHeli Configurator by @victorhook in #1170
- Set max velocity for PID controller by @krichardsson in #1176
- USD deck: parser and plotter improvements by @whoenig in #1181
- Mellinger: support to change gains in bindings by @whoenig in #1180
- Test framework improvements by @krichardsson in #1183
- Params: add missing callback for writeByName by @whoenig in #1185
- Add handling of rx fail for Loco by @krichardsson in #1188
- flow sensor eKF update minor fixes by @hmllr in #1189
- Ukf by @keffklau in #1159
- Change loco deck id to bcLoco by @krichardsson in #1196
- Adjusted battery test and made it configurable + clean-up by @tobbeanton in #1192
- Added paramNotifyChanged() to let apps notify the core when they modify the value of a parameter programmatically by @ntamas in #1193
- Refactor kalman estimator by @krichardsson in #1194
- Fix build that was broken after merge by @krichardsson in #1200
- Use wrapped matrix function by @krichardsson in #1201
- Update openocd_gdb_debugging.md by @hmllr in #1202
- Removed unused files by @krichardsson in #1199
- Prevent estimator tasks from running once at start up by @krichardsson in #1203
- fix typo in name of Kalman estimator by @ntamas in #1206
- Update kve fragmentation by @krichardsson in #1209
- Add reformat of storage by @krichardsson in #1208
- Always generate version information by @krichardsson in #1210
- Add OOT controller support by @krichardsson in #1211
- Rename "any" controller and estimator by @krichardsson in #1213
- Added docs on static and dynamic memory by @krichardsson in #1212
- Fix typos in comments in pm_stm32f4.c by @valeriyvan in #1215
- Fix spelling recieve => receive by @valeriyvan in #1216
- Fix doc comment in config.h by @valeriyvan in #1218
- Fix typo depreciated => deprecated by @valeriyvan in #1219
- Fix typo by @valeriyvan in #1220
- Fix typos in crtp_platform.md by @valeriyvan in #1224
- Fix typos in pwm-to-thrust.md by @valeriyvan in #1223
- Fix typos in memory_management.md by @valeriyvan in #1222
- Housekeeping by @valeriyvan in #1221
- Clarify LH documentation by @krichardsson in #1225
- Fix typos by @valeriyvan in #1226
- Fix typos by @valeriyvan in #1227
- Fix typo in trajectory_formats.md by @valeriyvan in #1228
- Added docs about deprecations by @krichardsson in #1229
- Deprecated enHighLevel by @krichardsson in #1230
- Move general information to bitcraze-website by @krichardsson in #1231
- Add docs for a few more memory mappings by @krichardsson in #1232
- Enable setting motor power level through MSP by @victorhook in #1214
- Fix python wheel build of the python binding by @ataffanel in #1184
- Make paramSetXXX() functions non-blocking by @krichardsson in #1235
- Removed obsolete lh scripts by @krichardsson in #1236
New Contributors
- @hmllr made their first contribution in #1189
- @keffklau made their first contribution in #1159
- @valeriyvan made their first contribution in #1215
Full Changelog: 2022.12...2023.02
2022.12
This release adds support for the Flapper platform, a new controller (Brescianini) and improvements for the motor upgrade kit. There has also been work on improving the configuration and code infrastructure, as well as bug- and stability fixes.
What's Changed
- Fixed syslink DMA by guarding a none-atimic read. by @tobbeanton in #1116
- Add debug log macros by @krichardsson in #1118
- Do not use DMA by default for syslink UART by @krichardsson in #1119
- Add throttling for LH2 by @krichardsson in #1117
- Convert some LH logs to debug by @krichardsson in #1120
- Use a file to define build targets by @krichardsson in #1125
- Migrating default PID gains and filter settings to platform defaults and Kconfig by @matejkarasek in #1122
- Improved support extRx (CPPM) by @matejkarasek in #1121
- Implement escaped percentage support in eprintf by @ataffanel in #1127
- Fix prediction rate in kalman filter by @krichardsson in #1128
- Implement storage statistic printing on console by @ataffanel in #1130
- Remove space in log and param names by @krichardsson in #1134
- Adding Flapper platform and handling servomotors by @matejkarasek in #1132
- Bugfix flapper power distribution by @matejkarasek in #1136
- Corrected doc by @krichardsson in #1139
- Bigquad early access fix by @victorhook in #1131
- Kbuild cleanup for TDoA by @krichardsson in #1141
- Added assert to check if log function pointer by @victorhook in #1144
- Doc updates by @knmcguire in #1145
- updated gdb debugging doc with WSL and extension version by @karlscholz in #1140
- Better handling of motor power distribution by @krichardsson in #1147
- Improvements for the Upgrade Kit by @victorhook in #1152
- fixed format issue in openocd_gbd_debugging.md by @karlscholz in #1151
- Add SI-units to control structure by @krichardsson in #1154
- Add Brescianini controller by @krichardsson in #1156
- AI-deck GAP8 flash write error check by @krichardsson in #1160
- Fix GAP8 flashing problems by @krichardsson in #1162
- removed LH limitation page and update other text by @knmcguire in #1164
- Added function to start battery autoupdate to avoid syslink queue overflow. by @tobbeanton in #1168
- Unify controller and estimator function names by @whoenig in #1165
- Fixed minor typo by @victorhook in #1167
- Refactor controller update to take const setpoint by @whoenig in #1166
- Discard incoming syslink packets until system is ready by @krichardsson in #1169
- python binding doc to build by @knmcguire in #1171
New Contributors
- @victorhook made their first contribution in #1131
- @karlscholz made their first contribution in #1140
Full Changelog: 2022.09...2022.12