# Changes

The changes relative to the last release, release 3.4-9.1, can be found in the table below.

| Item                                  | Description                                                                                                                       |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Power on self-test                    | More components are tested at startup (NTAG5, A1007), with better output on terminal.                                             |
| NuttX version                         | Upgraded to NuttX version 10.0 (stable release).                                                                                  |
| Sense resistor test                   | Added a test that will detect if the sense resistor is connected to the measurement input.                                        |
| Negative input for unsigned variables | The CLI will notify you and will not set the variable when a negative number is entered for an unsigned variable.                 |
| self-test state                       | The self-test is only done at startup, made it a separate state (not only init state anymore).                                    |
| LED color                             | LED is now solid red in the self-test state.                                                                                      |
| SoC calibration                       | Added the OCV state to calibrate the state of charge when in sleep mode. Added the SoC calibration to the self-discharge state.   |
| CLI set parameter                     | Fixed that using the CLI, variables can’t be set with more than its variable type can hold.                                       |
| uv fault to deepsleep                 | Added that when an undervoltage occurs, it will go to the deepsleep mode after some time to protect the battery.                  |
| Reboot                                | Added the reboot command to the CLI to reboot the microcontroller.                                                                |
| Flight-mode                           | Added the flight-mode-enable and i-flight-mode parameters. This can be used to not cut the power to the FMU and motors in flight. |
| a-factory                             | After setting the factory capacity, the BMS will recalculate and set the full charge capacity and end of charge current as well.  |
| Floating point variables              | The floating point variables are better limited now.                                                                              |
| Charge to deepsleep                   | Added that if the button is hold for five seconds in the charge state, it will go to deepsleep.                                   |
| NFC                                   | Is hard-powered down with GPIO.                                                                                                   |
| Discharge to storage                  | After a long time-out, the BMS will discharge to storage level and go to the deepsleep state.                                     |
| CLI syntax                            | Some wrong syntaxes are now fixed in the CLI.                                                                                     |
| CLI help messages                     | Improved the help message if the wrong number of cells are attached/inserted.                                                     |
| Wrong messages                        | <p>The wrong BMS undertemperature detected message if the sensor is disabled has been fixed.                                      |

</p><p>The first “pin rising edge BCC_FAULT” message has been deleted.</p>                                                                                                                                                                                                                                                                                                                                                      |
| Message limit                         | Limited the number of “Rising edge BCC\_FAULT” and “clearing CC overflow” messages.                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| CLI color messages                    | Added functions for the green (good), yellow (warning) and red (error) messages.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| BCC com errors                        | This will not be reset (wrongly), but it will be counted and with 255 errors it will reset it correctly.                                                                                                                                                                                                                                                                                                                                                                                                                      |
| UAVCAN                                | New message of the draft of the UAVCAN V1 standard message is implemented.                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Data struct                           | <p>Added the unit and type string to the data struct.</p><p>Added floating point accuracy to the floating point limitations.</p>                                                                                                                                                                                                                                                                                                                                                                                            |
| Parameters                            | <p>Added the t-sleep-timeout, i-charge-nominal, i-out-nominal, i-flight-mode, battery-type, flight-mode-enable and m-mass. </p><p>Changed the model-id to uint64_t, t-fault-timeout to use with uv to go to the deepsleep state, t-ocv-cyclic0 and t-ocv-cyclic1 are implemented, changed the uavcan-subject-id to 3 different parameters for each message: uavcan-ess-sub-id, uavcan-bs-sub-id and uavcan-bp-sub-id. </p><p>v-cell-margin is default 50mV instead of 30mV. ocv-slope is in mV/Amin instead of V/Amin.</p> |
| State diagram                         | Added LED indication, Added SELF TEST state,  added button hold to the charge to self-discharge state transition, Added SLEEP\_TIMEOUT to the sleep to self-discharge state transition, FAULT\_TIMEOUT used for transition to go to deepsleep with an undervoltage.                                                                                                                                                                                                                                                           |
| Charge state diagram                  | Added LED indication and added button hold to the charge to self-discharge state transition.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Cell balancing                        | The cell balancing is not only based on the cell voltage compared to the desired voltage, but it is based on the calculated estimated cell balance minutes as well.                                                                                                                                                                                                                                                                                                                                                           |
