Releases: UBC-Solar/firmware_v3
v2.0.0: 2024 Post Comp Release
What's New
This release marks the final changes on the car when we drove in production at FSGP and ASC during the summer of 2024. The changes reflect necessary adjustments to meet scrutineering requirements as well as to improve driver QoL in relation to accelerating.
Below are the specifics of this release
- Our previous over temperature thresholds were faults at 45C for charging and 65C for discharging and a trip at 45C. However, the scrutineers require us to fault every time we exceed a manufacturers threshold (so the trip at 45C is a no go and since the manufacturer specifies that 65C is the limit for discharge we need to add a fault state for that as well). Thus, we added logic to first check if we are charging or not and then from there check for the appropriate thresholds. See PR #151 for more details.
- ADC noise on the pedal spiked just under 4000 at times which meant that the previous
MAX_THROTTLE
threshold would be passed and resulted in a fault message but more importantlythrottle = 0.0
would be sent to the MDI and then to the MC. PR #151 fixes this issue by setting the limit to 4000 (still some room to distinguish a short circuit which would be closer to 4095). - PR #153 fixes an issue where the ECU triggered a fault yet no LED or telemetry information indicated this. We discovered that the issue is because noise is generated on the fault GPIO pins from the master board to the ECU (only at high currents with the solar arrays plugged into the battery). To solve this problem we took advice from a Scrutineer to use a spare GPIO (in our case the BAL GPIO) and set its value high initially. Then while the system runs, and there is high irradiance, if we actually get a BMS fault then the FLT pin is set to high and the BAL pin is set to low. If and only if this condition is met do we consider it a fault. Otherwise, if the BAL pin still showed high (due to noise) then we do not consider that a fault occurred. Hence we essentially added simple logic to do a checksum on our FLT data. Note that we do not send COMM or OT FLT info to the ECU because the FLT GPIO already encapsulates these. See PR #153 for more.
What's Changed
- Fix: MCB Throttle Bounds Modified by @ishanjoshi23 in #152
- Fix: Competition current threshold modification by @mjohal67 in #151
- Fix: ECU-BMS FLT GPIO Checking for Array Faulting by @mjohal67 in #153
Full Changelog: v1.1.0...v2.0.0
v1.1.0: 2024 Brightside Comp Ready Firmware
What's New
The goal of this release is to polish our firmware and get lots of on car testing to make sure our system is safe for driving, provides sufficient data, and implements important features such as regenerative braking. Additionally there were fixes made to issues such as the battery faulting due to noise exceeding the set current threshold.
- We added a new git hash message for the MCB which indicates what commit hash is currently flashed on the board. This information tells us if we need to flash the latest firmware onto the board (because someone's testing branch is on it) or if we can leave the board as is (#130).
- We added a pull request template to make sure that all aspects of the PR are updated to be compatible with the rest of the firmware and also to enforce testing work before merging (#135).
- Fixed a bug where CAN messages would not be sent due to the
read_CAN_task
being starved by the GPS task which had no delay. Additionally this PR fixed extended IDs not being handled correctly (#136) - PR #134 fixed bugs with the MDI losing floating point accuracy as well as the fixing the regen logic on both the MCB and MDI code.
- PR #140 fixed an issue where current spikes from noise go over the threshold for the analog watchdog by checking the number of times the threshold was exceeded in a window. This ensured that we did not fault the battery over noise and actually reported a fault when the issue is persistent.
- PR #141 fixes a path not found issue when running the
DownloadXML.py
script. This also updates the memoratorREADME.md
. - Lastly, PR #138 added cyclic data to the MCB for the vehicle velocity. This will report a fault when the MDI does not report the vehicle velocity in a given time frame.
- Fix: MCB now toggles BOTH LED 1 and LED 2 on CAN Tx. This is because the opposite LEDs dont work on the main and spare MCBs. (#146).
- Fix: DID firmware fixed wrap around characters on the display (#137).
Generated Release Notes
- Feat: MCB githash publishing by @kcgroulx in #130
- Feat: Pull request template by @kcgroulx in #135
- fix: Master works after adding GPS Delay + ExtId Fix by @AarjavJain101 in #136
- Fix: MCB State Transition Fixes + MDI Regen + MDI 0x503 Data Order Reversal by @AarjavJain101 in #134
- Fix: gitignore cleanup by @kcgroulx in #139
- ECU Windowed AWDG for DOC While Accelerating by @mjohal67 in #140
- Feat: MCB cylic data by @kcgroulx in #138
- Fix: DID fixes by @kcgroulx in #137
- fix: must put in path to xml for t program. readme updated by @AarjavJain101 in #141
- Fix; Spare MCB fixes by @AarjavJain101 in #146
- Fix: DID release build removed by @AarjavJain101 in #149
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Summary
- This FW release contains production code for driving Brightside.
What's Changed
- feat: Updated IMU frequency to 4 messages per second by @ishanjoshi23 in #117
- Voltage, Current Sensor Verification by @makac1896 in #121
- Fix: Git path collision by @kcgroulx in #127
- Fix: AMB iwdg by @kcgroulx in #128
- Refactor: Cleaning and Clarifying freertos.c code by @AarjavJain101 in #122
Full Changelog: v0.4.0...v1.0.0
v0.4.0
What's Changed
- Feat: TEL IWDG by @kcgroulx in #110
- Fix: Disable iwdg in DEBUG build by @kcgroulx in #113
- Feat: Added CAN interrupts for MCB by @kcgroulx in #111
- User/makac1896/vds/proto by @makac1896 in #101
- fix: estop during startup now turns on all LV boards by @mjohal67 in #108
- Sending RTC Timestamp with Memorator and Fixed Millisecond Inaccuracy by @AarjavJain101 in #114
- User/makac1896/amb/thermistorsensing by @makac1896 in #81
- fix: TEL FW errors due to autogenerator by @ishanjoshi23 in #115
- fix: Fix Label that caused Autogenerator issues in TEL FW by @ishanjoshi23 in #116
New Contributors
- @makac1896 made their first contribution in #101
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- MCB diagnostics by @kcgroulx in #89
- MCB added watchdog support by @kcgroulx in #91
- Added mech brake signal to mcb diagnostics CAN message by @kcgroulx in #93
- ECU R2.0 Firmware by @mjohal67 in #94
- Fix: MCB watchdog + decreased MCB state machine frequency by @kcgroulx in #97
- feat: MDI v1.0 by @cenamora in #98
- feat: TEL firmware with support for CAN, IMU, and GPS messages by @ishanjoshi23 in #96
- del: Remove original (wrong) TEL project by @ishanjoshi23 in #102
- fix: reversed byte order of IMU data and fixed bit shifting for diagnostics message by @ishanjoshi23 in #104
- fix: regen fix & LED toggle when CAN Tx is HAL_OK by @ishanjoshi23 in #103
- Project Renames by @kcgroulx in #105
Notes
This release corresponds to Sunlink release v2.1
Full Changelog: v0.2.0...v0.3.0
v0.2.0
v0.1.0
Changelog
Add benchtop-tested DID, MCB, BMS, ECU, MDI firmware
AMB present but not fully validated
Relevant PRs
- User/a2k hanlon/bms/ltc main by @a2k-hanlon in #2
- Update .gitignore by @a2k-hanlon in #3
- Fix faulty .gitignore and add C .gitignore template by @a2k-hanlon in #4
- Completed foundational code for interfacing with LTC6811 by @a2k-hanlon in #6
- User/a2k hanlon/bms/bal start by @abooodeee in #10
- User/edward/bms/CANbus by @RootBeer1313 in #8
- User/a2k-hanlon/bms/fsm by @a2k-hanlon in #9
- User/brian/bms/thermistor reading by @abooodeee in #11
- Reorganize Repository by @a2k-hanlon in #12
- User/matthewjegan/bms/selftests by @matthewjegan in #13
- User/matthewjegan/bms/ceedling by @matthewjegan in #16
- Create BMS GUI by @hansenkw in #19
- migrated stm32f3 based project to stm32f103rc-based system by @francisfu-embedded in #18
- Deploy Ceedling into repo and set up bms_master unit test by @a2k-hanlon in #22
- Update ECU FW Branch from Master by @Jaynith in #23
- Add ECU FW by @Jaynith in #24
- BMS GUI Interface Improvements by @a2k-hanlon in #25
- Switch bms_master project to PlatformIO and add CI build by @a2k-hanlon in #42
- new function for DOC_COC by @Tik-Hakobyan in #41
- Pull changes from
mcb_nucleo_jlink
into current MCB firmware by @mihirnimgade in #43 - Initial BMS State of Charge Estimation FW Implementation by @forbes-choy in #21
- Add ECU FW build to CI by @a2k-hanlon in #46
- Apply BMS fixes from bench testing of full system by @a2k-hanlon in #44
- Revert change to BMS master unittest CI setup by @a2k-hanlon in #47
- Add basic MCU bringup test project by @a2k-hanlon in #50
- User/tik hakobyan/separate pack data structure by @Tik-Hakobyan in #52
- Merge separate MCB main branch to primary main branch by @a2k-hanlon in #56
- Reapply MCB gitignore to remove bak by @MatthewChow03 in #57
- AMB voltage and current models with CAN TX by @ishanjoshi23 in #60
- Kyle's MCB Code by @MatthewChow03 in #59
- Added mcb project files for Nucleo by @kcgroulx in #58
- Telemetry - IMU RTOS Threads by @ckpaz12 in #55
- BMS Analysis, FSM and CAN Refactoring by @a2k-hanlon in #51
- BMS: Fix incorrect bit alignment in balancing driver by @a2k-hanlon in #61
- feat: Add CAN HW Validation Project by @ishanjoshi23 in #63
- Add CAN message 0x628 and 0x629 by @Boomo12 in #64
- feat: send can message 628 & 629 by @Boomo12 in #70
- Refactor: ECU ADC Implementation (R1.0 HW) by @mjohal67 in #68
- Refactor CAN message 0x450 (status) and add 0x34F (charging) by @mjohal67 in #71
- All CAN Message Testing Script: MVP Complete by @AarjavJain101 in #62
- feat: transmit simulation speed from telemetry board by @EvanO12 in #72
- fix: indexing tx data indexing issue in 628 queue function by @mjohal67 in #74
- FIX: BMS CAN bitrate and module voltage scaling update by @mjohal67 in #76
- Only added sdCardLib and main.c for SD_Logger in tools by @AarjavJain101 in #75
- feat: tel_v2 without GPS/IMU message transmission by @ishanjoshi23 in #77
- User/ishanjoshi23/did/did v3 by @kcgroulx in #83
- ECU ADC, FSM, CAN Refactor by @mjohal67 in #80
- User/kcgroulx/mcb/dev by @kcgroulx in #79
- feature:MDI_v1_0 by @cenamora in #88
New Contributors
- @a2k-hanlon made their first contribution in #2
- @abooodeee made their first contribution in #10
- @RootBeer1313 made their first contribution in #8
- @matthewjegan made their first contribution in #13
- @hansenkw made their first contribution in #19
- @francisfu-embedded made their first contribution in #18
- @Jaynith made their first contribution in #23
- @Tik-Hakobyan made their first contribution in #41
- @mihirnimgade made their first contribution in #43
- @forbes-choy made their first contribution in #21
- @MatthewChow03 made their first contribution in #57
- @ckpaz12 made their first contribution in #55
- @Boomo12 made their first contribution in #64
- @mjohal67 made their first contribution in #68
- @AarjavJain101 made their first contribution in #62
- @EvanO12 made their first contribution in #72
- @cenamora made their first contribution in #88
Full Changelog: https://github.com/UBC-Solar/firmware_v3/commits/v0.1