What's Changed
* Make the scheduler state volatile by eufrizz in https://github.com/tinymovr/Tinymovr/pull/327
* Use checkboxes for bool values in Studio by yconst in https://github.com/tinymovr/Tinymovr/pull/333
* External Sensor support (prerelease) by yconst in https://github.com/tinymovr/Tinymovr/pull/338
* Enable adaptive updates in studio app by yconst in https://github.com/tinymovr/Tinymovr/pull/339
* Demote schedule reentrance error to warning by yconst in https://github.com/tinymovr/Tinymovr/pull/340
* Configurable sensor rate by yconst in https://github.com/tinymovr/Tinymovr/pull/341
* Fix manifest and tests by yconst in https://github.com/tinymovr/Tinymovr/pull/344
* GUI improvements by yconst in https://github.com/tinymovr/Tinymovr/pull/346
* Improve AMT22 reliability by yconst in https://github.com/tinymovr/Tinymovr/pull/348
* Refactor CAN bus infrastructure in Studio by yconst in https://github.com/tinymovr/Tinymovr/pull/350
* Add GUI console by yconst in https://github.com/tinymovr/Tinymovr/pull/347
* Studio/fix logging by yconst in https://github.com/tinymovr/Tinymovr/pull/352
* Add update rate and time window adjustments by yconst in https://github.com/tinymovr/Tinymovr/pull/353
* Improve error reporting for pole pair calibration by yconst in https://github.com/tinymovr/Tinymovr/pull/354
* Use shared ram for dfu setting by yconst in https://github.com/tinymovr/Tinymovr/pull/355
* Fix can initialization/setup by yconst in https://github.com/tinymovr/Tinymovr/pull/356
* Add motor resistance and inductance limitations table by yconst in https://github.com/tinymovr/Tinymovr/pull/357
* Fix transform derivation by yconst in https://github.com/tinymovr/Tinymovr/pull/358
* Use wildcards in manifest by yconst in https://github.com/tinymovr/Tinymovr/pull/359
* add flag for forcing device flashing by yconst in https://github.com/tinymovr/Tinymovr/pull/360
* add test cases by yconst in https://github.com/tinymovr/Tinymovr/pull/361
* Docs/add ma7xx figure by yconst in https://github.com/tinymovr/Tinymovr/pull/362
* Validate data written to nvm by yconst in https://github.com/tinymovr/Tinymovr/pull/363
* Pre CL checks by yconst in https://github.com/tinymovr/Tinymovr/pull/364
* Abnormal calibration voltage check by yconst in https://github.com/tinymovr/Tinymovr/pull/365
* Support for Tinymovr R53 by yconst in https://github.com/tinymovr/Tinymovr/pull/366
**Full Changelog**: https://github.com/tinymovr/Tinymovr/compare/1.6.7...2.3.1
[Documentation for this release](https://tinymovr.readthedocs.io/en/develop/)
Notes
External sensor support works for the M series boards only. The upcoming Tinymovr R5.3 will also support external sensors.
- There are three methods for flashing:
1. **Via Tinymovr DFU:** After downloading the correct "upgrade" firmware according to your board revision (R3.x, R5.x or M5.x), connect your device to CAN bus as usual and follow the instructions in our [documentation](https://tinymovr.readthedocs.io/en/latest/upgrade/upgrade.html#upgrade-using-dfu-and-can-bus). This is available to boards with fw 1.6.0 or later, featuring the new bootloader.
2. **Via ActiveFlashLight:** After downloading the correct "upgrade" firmware according to your board revision (R3.x, R5.x or M5.x), connect your device to ActiveFlashLight and follow the instructions in our [documentation](https://tinymovr.readthedocs.io/en/latest/upgrade/upgrade.html#upgrade-using-activeflashlight), selecting the `Full Erase` option, next to `Auto Program`. This method is applicable to boards with the old bootloader.
3. **Via JLink & VSCode:** This method enables comprehensive upgrade of both bootloader and firmware, but it requires specialized hardware (JLink) and hardware connections. Follow the instructions in our [documentation](https://tinymovr.readthedocs.io/en/latest/develop/guide.html#flashing-and-debugging), observing correct hardware revision, and choosing the Release target.
- Please use [Tinymovr Studio 2.3.1](https://pypi.org/project/tinymovr/2.3.1/) with this firmware release.
- Documentation for this release is available on Readthedocs in the [develop branch](https://tinymovr.readthedocs.io/en/develop/)