1882 lines
80 KiB
Markdown
1882 lines
80 KiB
Markdown
Change Log
|
|
=======
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](http://keepachangelog.com/).
|
|
|
|
The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones)
|
|
list yields a list of all related PRs for each release.
|
|
|
|
Starting at v2.0.0, this project will adhere to semantic versioning and the the following changes
|
|
will consitute of a breaking change warranting a new major release:
|
|
|
|
- The TMTC interface changes in any shape of form.
|
|
- The behaviour of the OBSW changes in a major shape or form relevant for operations
|
|
|
|
# [unreleased]
|
|
|
|
# [v6.4.1] 2023-08-21
|
|
|
|
## Fixed
|
|
|
|
- `PDEC_CONFIG_CORRUPTED` event now actually contains the readback instead of the expected
|
|
config
|
|
- Magnetic field vector was not calculated if only MGM4 was available, but still written to
|
|
the dataset. This would result in a NaN vector. Allowance for usage of MGM4 is now checked
|
|
before entering calculation.
|
|
|
|
# [v6.4.0] 2023-08-16
|
|
|
|
- `eive-tmtc`: v5.4.3
|
|
|
|
## Fixed
|
|
|
|
- The handling function of the GPS data is only called once per GPS read. This should remove
|
|
the fake fix-has-changed events.
|
|
- Fix for PLOC SUPV HK set parsing.
|
|
- The timestamp for the `POSSIBLE_FILE_CORRUPTION` event will be generated properly now.
|
|
|
|
## Changed
|
|
|
|
- PDEC FDIR rework: A full PDEC reboot will now only be performed after a regular PDEC reset has
|
|
failed 10 times. The mechanism will reset after no PDEC reset has happended for 2 minutes.
|
|
The PDEC reset will be performed when counting 4 dirty frame events 10 seconds after the count
|
|
was incremented initially.
|
|
- GPS Fix has changed event is no longer triggered for the EM
|
|
- MGM and SUS rates now will only be calculated, if 2 valid consecutive datapoints are available.
|
|
The stored value of the last timestep will now be reset, if no actual value is available.
|
|
|
|
## Added
|
|
|
|
- The PLOC SUPV HK set is requested and downlinked periodically if the SUPV is on now.
|
|
- SGP4 Propagator is now used for propagating the position of EIVE. It will only work once
|
|
a TLE has been uploaded with the newly added action command for the ACS Controller. In
|
|
return the actual GPS data will be ignored once SPG4 is running. However, by setting the
|
|
according parameter, the ACS Controller can be directed to ignore the SGP4 solution.
|
|
- Skyview dataset for more GPS TM has been added
|
|
- `PDEC_CONFIG_CORRUPTED` event which is triggered when the PDEC configuration does not match the
|
|
expected configuration. P1 will contain the readback of the first word and P2 will contain the
|
|
readback of the second word.
|
|
- The MGM and SUS vectors being too close together does not prevent the usage of the safe
|
|
mode controller anymore.
|
|
- Parameter to disable usage of MGM4, which is part of the MTQ and therefore cannot be
|
|
disabled without disabling the MTQ itself.
|
|
|
|
# [v6.3.0] 2023-08-03
|
|
|
|
## Fixed
|
|
|
|
- Small SCEX fix: The temperatur check option was not passed
|
|
on for commands with a user data size larger than 1.
|
|
- SCEX: Properly check whether filesystem is usable for filesystem checks.
|
|
- ACS Controller strategy is now actually written to the dataset for detumbling.
|
|
- During detumble the fused rotation rate is now calculated.
|
|
- Detumbling is now exited when its exit value is undercut and not its entry value.
|
|
- Rotation rate of last cycle is now stored in all cases for the fused rotational rate
|
|
calculation.
|
|
- Fused rotation rate estimation during eclipse can be disabled. This will also prevent
|
|
detumbling during eclipse, as no relevant rotational rate is available for now.
|
|
- `EiveSystem`: Add a small delay between triggering an event for FDIR reboots and sending the
|
|
command to the core controller.
|
|
- PL PDU: Fixed bounds checking logic. Bound checks will only be performed for modules which are
|
|
enabled.
|
|
|
|
## Changed
|
|
|
|
- SCEX: Only perform filesystem checks when not in OFF mode.
|
|
- The `EiveSystem` now only sends reboot commands targetting the same image.
|
|
- Added 200 ms delay between switching HPA/MPA/TX/X8 and DRO GPIO pin OFF.
|
|
- PL PCDU ADC set is now automatically enabled for `NORMAL` mode transitions. It is automatically
|
|
disabled for `OFF` mode transitions.
|
|
|
|
## Added
|
|
|
|
- PL PCDU for EM build.
|
|
- SCEX: Add warning event if filesystem is unusable.
|
|
|
|
# [v6.2.0] 2023-07-26
|
|
|
|
- `eive-tmtc`: v5.3.1
|
|
|
|
## Changed
|
|
|
|
- STR missed reply handling is now moved to DHB rather than the COM interface. The COM IF will
|
|
still trigger an event if a reply is taking too long, and FDIR should still work via reply
|
|
timeouts.
|
|
- Re-ordered some functions of the core controller in the initialize function.
|
|
- Rad sensor is now only polled every 30 minutes instead of every device cycle to reduce wear of
|
|
the RADFET electronics.
|
|
- The SD cards will still be switched OFF on a reboot, but this is done in a non-blocking manner
|
|
now with a timeout of 10 seconds where the reboot will be performed in any case.
|
|
- ACS Controller now includes the safe mode from FLP, which will calculate its rotational rate
|
|
from SUS and MGM measurements. To accommodate these changes, low-pass filters for SUS
|
|
measurements and rates as well as MGM measurements and rates are included. Usage of the new
|
|
controller as well as settings of the low-pass filters can be handled via parameter commands.
|
|
- Simplify and fix the chip and copy protection functions in the core controller. This mechanism
|
|
now is always performed for the target chip and target copy in the reboot handlers.
|
|
- Improvement in FSFW: HK generation is now countdown based.
|
|
|
|
## Added
|
|
|
|
- 5 ms delay after pulling RADFET enable pin high before starting
|
|
the ADC conversion.
|
|
- Set STR time in configuration sequence to firmware mode.
|
|
- The STR `AutoThreshold` parameters are now set from the configuration JSON file at STR
|
|
startup.
|
|
- The STR handler can now handle the COM error reply and triggers an low severity event accordingly.
|
|
- Add SCEX handler for EM.
|
|
- Radiation sensor handler dummy for the EM.
|
|
- Added event for SD card information in core controller initialize function. This event will also
|
|
be triggered after the SD state machine has run, so the event will generally be triggered twice
|
|
at system boot, and once after commanding SD card switches.
|
|
|
|
## Fixed
|
|
|
|
- General bugs in the SD card state machine. This might fix some other known bugs for certain
|
|
combinations of switching ON and OFF SD cards and also makes the whole state machine a lot more
|
|
robust against hanging up.
|
|
- SUS dummy handler went to `MODE_NORMAL` for ON commands.
|
|
- PL PCDU dummy went to `MODE_NORMAL` for ON commands.
|
|
|
|
# [v6.1.0] 2023-07-13
|
|
|
|
- `eive-tmtc`: v5.2.0
|
|
|
|
## Changed
|
|
|
|
- TCS: Remove OBC IF board thermal module, which is exactly identical to OBC module and therefore
|
|
obsolete.
|
|
- Swapped PL and PS I2C, BPX battery and MGT are connected to PS I2C now for firmware versions
|
|
equal or above v4. However, this software version is compatible to both v3 and v4 of the firmware.
|
|
- The firmware version variables are global statics inititalized early during the program
|
|
runtime now. This makes it possible to check the firmware version earlier.
|
|
- The TCS controller will now always command heaters OFF when being blind for thermal
|
|
components (no sensors available), irrespective of current switch state.
|
|
- Make OBSW compatible to prospective FW version v5.0.0, where the Q7 I2C devices were
|
|
moved to a PL I2C block and the TMP sensor devices were moved to the PS I2C0.
|
|
- Made `Xadc` code a little bit more robust against errors.
|
|
|
|
## Fixed
|
|
|
|
- TMP1075: Set dataset invalid on shutdown explicitely
|
|
- Small fixes for TMP1075 FDIR: Use strange and missed reply counters.
|
|
- TCS controller: Last heater (S-band heater) was skipped for transition completion
|
|
checks.
|
|
- TCS controller: A helper member to track the elapsed heater control cycles was not reset
|
|
properly, which could lead to switch transitions being completed immediately. This can
|
|
lead to weird bugs like heaters being commanded ON twice and can potentially lead to
|
|
other bugs.
|
|
- TMP1075: Devices did not go to OFF mode when being set faulty.
|
|
- Update PL PCDU 1 in TCS mode tree on the EM.
|
|
- TMP1075: Possibly ignored health commands.
|
|
- Bugfix in FSFW where certain packet types could only be sent with source data fields with a
|
|
maximum size of 255 bytes.
|
|
- TCS CTRL: Limit number of heater handler messages sent in case there are not sensors available
|
|
anymore.
|
|
- Fix to allow adding real STR device for EM.
|
|
|
|
# Added
|
|
|
|
- Two events for heaters being commanded ON and OFF by the TCS controller
|
|
- Upper limit for burn time of TCS heaters. Currently set to 1 hour for each heater.
|
|
This mechanism will only track the burn time for heaters which were commanded by the
|
|
TCS controller.
|
|
- TCS controller is now observable by introducing a new HK dataset which exposes some internal
|
|
fields related to TCS control.
|
|
|
|
# [v6.0.0] 2023-07-02
|
|
|
|
- `q7s-package` version v3.2.0
|
|
- Important bugfixes for PTME. See `q7s-package` CHANGELOG.
|
|
|
|
## Changed
|
|
|
|
- Added back PTME busy bit polling. This is necessary due to changes to the AXI APB interface
|
|
to the PTME core.
|
|
|
|
## Fixed
|
|
|
|
- For the live channel (VC0), telemetry was still only dumped if the transmitter is active.
|
|
Please note that this fix will lead to crashes for FW versions below v3.2.
|
|
However, it might not be an issue for the oldest firmware on the satellite (v2.5.1).
|
|
|
|
# [v5.2.0] 2023-07-02
|
|
|
|
## Fixed
|
|
|
|
- The firmware information event was not triggered even when possible because of an ordering
|
|
bug in the initializer function.
|
|
- Empty dumps (no TM in time range) will now correctly be completed immediately
|
|
|
|
## Changed
|
|
|
|
- PTME was always reset on submode changes. The reset will now only be performed if the actual data
|
|
rate changes.
|
|
- Add back ACS board code for the EM. Now that the radiation sensor was removed, the image switching
|
|
issue has disappeared and adding back the ACS board is worth it for the GPS timekeeping.
|
|
|
|
# [v5.1.0] 2023-06-28
|
|
|
|
- `eive-tmtc` version v5.1.0
|
|
|
|
## Changed
|
|
|
|
- Persistent TM store dumps are now performed in chronological order.
|
|
- Increase Syrlinks RX HK rate to 5.0 seconds during a pass.
|
|
- Various robustness improvements for the heater handler. The heater handler will now only
|
|
process the command queue if it is not busy with switch commanding which reduces the amount
|
|
of possible bugs.
|
|
- The heater handler is only able to process messages stricly sequentially now but is scheduled
|
|
twice in a 0.5 second slot so something like a consecutive heater ON or OFF command can still
|
|
be handled relatively quickly.
|
|
|
|
## Added
|
|
|
|
- Sequence counters for PUS and CFDP packets are now stored persistently across graceful reboots.
|
|
- The PUS packet message type counter will now be incremented properly for each PUS service.
|
|
- Internal error reporter set is now enabled by default and generated every 120 seconds.
|
|
|
|
# [v5.0.0] 2023-06-26
|
|
|
|
v3.3.1 and all following version will now be moved to v5.0.0 with the additional changes listed
|
|
here. This was done because the firmware update (v4.0.0) is not working right now and it is not
|
|
known when and how it will be fixed. Because of that, all updates to make the SW work with the new
|
|
firmware, which are limited to a few files will be moved to a dev branch so regular development
|
|
compatible to the old firmware can continue.
|
|
|
|
TLDR: This version is compatible to the old firmware and some changes which only work with the new
|
|
firmware have been reverted.
|
|
|
|
## Changed
|
|
|
|
- Added `sync` syscall in graceful shutdown handler
|
|
- Graceful shutdown is now performed by the reboot watchdog
|
|
- There is now a separate file for the total reboot counter. The reboot watchdog has its own local
|
|
counters to determine whether a reboot is necessary.
|
|
|
|
# [v4.0.1] 2023-06-24
|
|
|
|
## Fixed
|
|
|
|
- `PusLiveDemux` packet demultiplexing bugfix where the demultiplexing did not work when there was
|
|
only one destination available.
|
|
|
|
# [v4.0.0] 2023-06-22
|
|
|
|
- `eive-tmtc` version v5.0.0
|
|
- `q7s-package` version v3.1.1
|
|
|
|
## Fixed
|
|
|
|
- Important bugfixes for PTME. See `q7s-package` CHANGELOG.
|
|
- TCS fixes: Set temperature values to invalid value for MAX31865 RTD handler, SUS handler
|
|
and STR handler. Also set dataset to invakid for RTD handler.
|
|
- Fixed H parameter in SUS converter from 1 mm to 2.5 mm.
|
|
|
|
## Changed
|
|
|
|
- Removed PTME busy/ready signals. Those were not used anyway because register reads are used now.
|
|
- APB bus access busy checking is not done anymore as this is performed by the bus itself now.
|
|
- Core controller will now announce version and image information event in addition to reboot
|
|
event in the `inititalize` function.
|
|
- Core controller will now try to request and announce the firmware version in addition to the
|
|
OBSW version as well.
|
|
- Added core controller action to read reboot mechansm information
|
|
- GNSS reset pin will now only be asserted for 5 ms instead of 100 ms.
|
|
|
|
## Added
|
|
|
|
- Added PL I2C reset pin. It is not used/connected for now but could be used for FDIR procedures to
|
|
restore the PL I2C.
|
|
- Core controller now announces firmware version as well when requesting a version info event
|
|
|
|
# [v3.3.1] 2023-06-22
|
|
|
|
## Fixed
|
|
|
|
- `PusLiveDemux` packet demultiplexing bugfix where the demultiplexing did not work when there was
|
|
only one destination available.
|
|
|
|
## Fixed
|
|
|
|
- Fixed H parameter in SUS converter from 1 mm to 2.5 mm.
|
|
|
|
# [v3.3.0] 2023-06-21
|
|
|
|
Like v3.2.0 but without the custom FM changes related to VC0.
|
|
|
|
# [v3.2.0] 2023-06-21
|
|
|
|
## Fixed
|
|
|
|
- Fix sun vector calculation
|
|
- SUS total vector was not reset to being a zero vector during eclipse due to a wrong memcpy
|
|
length.
|
|
|
|
## Changed
|
|
|
|
- Reverted all changes related to VC0 handling to avoid FM bug possibly related to FPGA bug.
|
|
|
|
# [v3.1.1] 2023-06-14
|
|
|
|
## Fixed
|
|
|
|
- TMP1075 bugfix where negative temperatures could not be measured because of a two's-complement
|
|
conversion bug.
|
|
|
|
# [v3.1.0] 2023-06-14
|
|
|
|
- `eive-tmtc` version v4.1.0
|
|
|
|
## Fixed
|
|
|
|
- TCS heater switch enumeration naming was old/wrong and was not updated in sync with the object ID
|
|
update. This lead to the TCS controller commanding the wrong heaters.
|
|
|
|
## Changed
|
|
|
|
- Increase number of allowed parallel HK commands to 16
|
|
|
|
## Added
|
|
|
|
- Added `CONFIG_SET`, `MAN_HEATER_ON` and `MAN_HEATER_OFF` support for the BPX battery handler
|
|
|
|
# [v3.0.0] 2023-06-11
|
|
|
|
- `eive-tmtc` version v4.0.0
|
|
|
|
## Changed
|
|
|
|
- Adapt EM configuration to include all GomSpace PCDU devices except the ACU. For the ACU
|
|
(which broke), a dummy will still be used.
|
|
- Event Manager queue depth is configurable now.
|
|
- Do not construct and schedule broken TMP1075 device anymore.
|
|
- Do not track payload modes in system mode tables.
|
|
- ACS modes derived from system modes.
|
|
- The CMake build generator will now search for the cross-compiler binaries in the environmental
|
|
variable named `CROSS_COMPILE_BIN_PATH` first when setting up the build system. This prevents
|
|
CMake from selecting wrong cross-compilers if multiple cross-compilers with the same name are used
|
|
on the same system.
|
|
- Add ACS board for EM by default now.
|
|
- Add support for MPSoC HK packet.
|
|
- Add support for MPSoC Flash Directory Content Report.
|
|
- Dynamically enable and disable HK packets for MPSoC on `ON` and `OFF` commands.
|
|
- Add support for MPSoC Flash Directory Content Report.
|
|
- Larger allowed path and file sizes for STR and PLOC MPSoC modules.
|
|
- More robust MPSoC flash read and write command data handling.
|
|
- Increase frequency of payload handlers from 0.8 seconds to 0.5 seconds.
|
|
- Disable missed deadlines per default. Not useful in orbit, and triggers all the time on the EM
|
|
build after a number of subsequent runs, without any apparent reason (deadlines are not actually
|
|
missed, thread usage displayed is nominal)
|
|
- TM store dumpes will not be cancelled anymore if the transmitter is off. The dump can be cancelled
|
|
with an OFF command, and the PTME is perfectly capable of dumping without the transmitter being
|
|
on.
|
|
- Transmitter state is not taken into account anymore for writing into the PTME. The PTME should
|
|
be perfectly capable of generating a valid CADU, even when the transmitter is not ON for any
|
|
reason.
|
|
- OFF mode is ignores in TM store for determining whether a store will be written. The modes will
|
|
only be used to cancel a transfer.
|
|
- Handling of multiple RWs in the ACS Controller is improved and can be changed by parameter
|
|
commands.
|
|
- The Directory Listing direct dumper now has a state machine to stagger the directory listing dump.
|
|
This is required because very large dumps will overload the queue capacities in the framework.
|
|
- The PUS Service 8 now has larger queue sizes to handle more action replies. The PUS Service 1
|
|
also has a larger queue size to handle a lot of step replies now.
|
|
- Moved PDU `vcc` and `vbat` variable from auxiliary dataset to core dataset.
|
|
- Tweak TCP/IP configuration: Only the TCP server will be included on the EM. For the FM, no
|
|
TCP/IP servers will be included by default.
|
|
|
|
## Added
|
|
|
|
- Add the remaining system modes.
|
|
- PLOC MPSoC flash read command working.
|
|
- BPX battery handler is added for EM by default.
|
|
- ACU dummy HK sets
|
|
- IMTQ HK sets
|
|
- IMTQ dummy now handles power switch
|
|
- Added some new ACS parameters
|
|
- Enabled decimation filter for the ADIS GYRs
|
|
- Enabled second low-pass filter for L3GD20H GYRs
|
|
|
|
## Fixed
|
|
|
|
- CFDP low level protocol bugfix. Requires `fsfw` update and `tmtc` update.
|
|
- Compile fix if SCEX is compiled for the EM.
|
|
- Set up Rad Sensor chip select even for EM to avoid SPI bus issues.
|
|
- Correct ADIS Gyroscope type configuration for the EM, where the 16507 type is used instead of the
|
|
16505 type.
|
|
- Host build is working again. Added reduced live TM helper which schedules the PUS and CFDP
|
|
funnel.
|
|
- PLOC Supervisor handler now has a power switcher assigned to make PLOC power switching work
|
|
without an additional PCDU power switch command.
|
|
- The PLOC Supervisor handler now waits for the replies to the `SET_TIME` command to verify working
|
|
communication.
|
|
- The PLOC MPSoC now waits 10 cycles before going to on. These wait cycles are necessary because
|
|
the MPSoC is not ready to process commands without this additional boot time.
|
|
- Fixed correction for `GPS Altitude` in case the sensor data is out of the expected bonds.
|
|
- PLOC MPSoC special communication is now scheduled, which allows flash read and flash write
|
|
commands to work.
|
|
- Fixed the MPSoC flash write command.
|
|
- Added missing ACS parameter.
|
|
- HK TM store: The HK store dump success event was triggered for cancelled HK dumps.
|
|
- When a PUS parsing error occured while parsing a TM store file, the dump completion procedure
|
|
was always executed.
|
|
- Some smaller logic fixes in the TM store base class
|
|
- Fixed usage of C `abs` instead of C++ `std::abs`, which results in MTQ commands not being
|
|
scaled correctly between 1Am² and 0.2Am².
|
|
- TCS Heater Handler: Always trigger mode event if a heater goes `OFF` or `ON`. This event might
|
|
soon replace the `HEATER_WENT_ON` and `HEATER_WENT_OFF` events.
|
|
- Prevent spam of TCS controller heater unavailability event if all heaters are in external control.
|
|
- TCS heater switch info set contained invalid values because of a faulty `memcpy` in the TCS
|
|
controller. There is not crash risk but the heater states were invalid.
|
|
- STR datasets were not set to invalid on shutdown.
|
|
- Fixed usage of quaternion valid flag, which does not actually represent the validity of the
|
|
quaternion.
|
|
- Various fixes for the pointing modes of the `ACS Controller`. All modes should work now as
|
|
intended.
|
|
- The variance for the ADIS GYRs now represents the used `-3` version and not the `-1` version
|
|
- CFDP funnel did not route packets to live channel VC0
|
|
|
|
# [v2.0.5] 2023-05-11
|
|
|
|
- The dual lane assembly transition failed handler started new transitions towards the current mode
|
|
instead of the target mode. This means that if the dual lane assembly never reached the initial
|
|
submode (e.g. mode normal and submode dual side), it will transition back to the current mode,
|
|
which miht be `MODE_OFF`. Furthermore, this can lead to invalid internal states, so the subsequent
|
|
recovery handling becomes stuck in the custom recovery sequence when swichting power back on.
|
|
- The dual lane custom recovery handling was adapted to always perform proper power switch handling
|
|
irrespective of current or target modes.
|
|
|
|
# [v2.0.4] 2023-04-19
|
|
|
|
## Fixed
|
|
|
|
- The dual lane assembly datasets were not marked invalid properly on OFF transitions.
|
|
|
|
# [v2.0.3] 2023-04-17
|
|
|
|
- eive-tmtc: v3.1.1
|
|
|
|
## Fixed
|
|
|
|
- Fixed shadowing within the `SafeCtrl`, which prevented actuator commands to be calculated during
|
|
eclipse phase.
|
|
- EM build idle mode fixes for RW dummy.
|
|
|
|
## Added
|
|
|
|
- Add `MGT_OVERHEATING` event and fallback to system SAFE mode if the MGT is overheating for
|
|
whatever reason.
|
|
|
|
## Changed
|
|
|
|
- Low-pass filters can no longer be executed if no actual data is available.
|
|
|
|
# [v2.0.2] 2023-04-16
|
|
|
|
- Bump patch version to 2.
|
|
|
|
# [v2.0.1] 2023-04-16
|
|
|
|
- eive-tmtc: v3.1.0
|
|
|
|
# [v2.0.0] 2023-04-16
|
|
|
|
This is the version which will fly on the satellite for the initial launch phase.
|
|
|
|
- q7s-package: v2.5.0
|
|
- eive-tmtc: v3.0.0
|
|
- `wire` library is now on version v10.7 as well.
|
|
|
|
## Added
|
|
|
|
- Added `mv`, `cp` and `rm` action helpers for the core controller for common filesystem operations.
|
|
- Extended directory listing helpers. There is now a directory listing helper which dumps the
|
|
directory listing as an action data reply immediately. For smaller directory listings, this
|
|
allows a listing without requiring a separate file downlink (which also has not been implemented
|
|
yet)
|
|
|
|
## Changed
|
|
|
|
- The directory listing action commands now allow compressing of either the target output file
|
|
for the directory listing into file action command, or compression in the helper which dumps
|
|
the directory listing directly.
|
|
|
|
# [v1.45.0] 2023-04-14
|
|
|
|
- q7s-package: v2.5.0
|
|
- eive-tmtc: v3.0.0
|
|
- STR firmware was updated to v10.7. `wire` library still needs to be updated.
|
|
|
|
## Fixed
|
|
|
|
- Small fix for `install-obsw-yocto.sh` script
|
|
- Bugfix for STR firmware update procedure where the last remaining
|
|
bytes were not written properly.
|
|
- Bugfix for STR where an invalid reply was received for special requests
|
|
like firmware updates.
|
|
- Bugfix for shell command executors in command controller which lead to a crash.
|
|
- Important bugfix for STR solution set. Missing STR mode u8 parameter.
|
|
- Fix for STR image download.
|
|
- Possible fix for STR image upload.
|
|
- Fixed regression where the reply result for ACS board and SUS board devices was set to FAILED
|
|
even when going to OFF mode. In that case, it has to be set to OK so the device handler can
|
|
complete the OFF transition.
|
|
|
|
## Changed
|
|
|
|
- STR `wire` library updated to v10.3. Submodule renamed to `sagittactl`.
|
|
- Custom FDIR for TMP1075 sensors. The device handlers reject `NEEDS_RECOVERY` health commands
|
|
anyway, so it does not really make sense to use the default FDIR.
|
|
- Reject `NEEDS_RECOVERY` health commands for the heater health devices.
|
|
- Adapted some queue sizes so that EM startup works without queue errors
|
|
- Event Manager: 120 -> 160
|
|
- UDP TMTC Bridge: 50 -> 120
|
|
- TCP TMTC Bridge: 50 -> 120
|
|
- Service 5: 120 -> 160, number of events handled in one cycle increased to 80
|
|
- EM: PCDU dummy is not a device handler anymore, but a custom power switcher object. This avoids
|
|
some issues where the event manager could not send an event message to the PCDU dummy because
|
|
the FDIR event queue was too small.
|
|
|
|
## Added
|
|
|
|
- Add a way for the MAX31865 RTD handlers to recognize faulty/broken/off sensor devices.
|
|
- Add parameter interface for core controller
|
|
- Allow setting the preferred SD card via the new parameter interface of the core controller
|
|
with domain ID 0 and unque ID 0.
|
|
- Added action commands to reset the PDEC. Also added autonomous reset handling for the PDEC,
|
|
because there is no way so send TCs with a faulty PDEC.
|
|
- Added `I2C_REBOOT` and `PDEC_REBOOT` events for EIVE system component to ensure ground gets
|
|
informed.
|
|
|
|
## ACS
|
|
|
|
- Commanding from ACS Controller is now enabled.
|
|
- Safe Controller was reverted to FLP Design. This also introduces safe mode strategies.
|
|
They contain what the controller does and which data it uses. The controller will
|
|
automatically based on the available data decide on which strategy to use. If a strategy
|
|
is undesirable (e.g. the MEKF should not be used) this can be handeld via setting parameters.
|
|
|
|
# [v1.44.1] 2023-04-12
|
|
|
|
- eive-tmtc: v2.22.1
|
|
|
|
## Fixed
|
|
|
|
- Bugfixes and improvements for SDC state machine. Internal state was not updated correctly due
|
|
to a regression, so commanding the SDC state machine externally lead to confusing results.
|
|
- Heater states array in TCS controller was too small.
|
|
- Fixed a bug in persistent TM store, where the active file was not reset of SD card switches.
|
|
SD card switch from 0 to 1 and vice-versa works without errors from persistent TM stores now.
|
|
- Add a way for the SUS polling to detect broken or off devices by checking the retrieved
|
|
temperature for the all-ones value (0x0fff).
|
|
- Better reply result handling for the ACS board devices.
|
|
- ADIS1650X initial timeout handling now performed in device handler.
|
|
- The RW assembly and TCS board assembly now perform proper power switch handling for their
|
|
recovery handling.
|
|
|
|
## Changed
|
|
|
|
- Added additional logic for SDC state machine so that the SD cards are marked unusable when
|
|
the active SD card is switched or there is a transition from hot redundant to cold redundant mode.
|
|
This gives other tasks some time to register the SD cards being unusable, and therefore provides
|
|
a way for them to perform any re-initialization tasks necessary after SD card switches.
|
|
- TCS controller now only has an OFF mode and an ON mode
|
|
- The TCS controller pauses operations related to the TCS board assembly (reading sensors and
|
|
the primary control loop) while a TCS board recovery is on-going.
|
|
- Allow specifying custom OBSW update filename. This allowed keeping a cleaner file structure
|
|
where each update has a name including the version
|
|
- The files extracted during an update process are deleted after the update was performed to keep
|
|
the update directory cleaner.
|
|
|
|
## Added
|
|
|
|
- TCS controller: SUBMODE_NO_HEATER_CTRL (1) added for ON mode. If this submode is
|
|
commanded, all heaters will be switched off and then no further heater
|
|
commanding will be done.
|
|
- Fixed a bug in persistent TM store, where the active file was not reset of SD card switches.
|
|
SD card switch from 0 to 1 and vice-versa works without errors from persistent TM stores now.
|
|
|
|
# [v1.44.0] 2023-04-07
|
|
|
|
- eive-tmtc: v2.22.0
|
|
|
|
## Added
|
|
|
|
- Special I2C recovery handling. If the I2C bus is unavailable for whatever reason, the EIVE
|
|
system component will power-cycle all I2C devices by first going to the OFF/BOOT mode, then
|
|
power-cycling the 3V3 stack and rebooting the battery, and finally going back to safe mode.
|
|
If this does not restore the bus, a full reboot will be performed. This special sequence can
|
|
be commanded as well.
|
|
|
|
## Fixed
|
|
|
|
- RW Assembly: Correctly transition back to off when more than 1 devices is OFF. Also do this
|
|
when this was due to two devices being marked faulty.
|
|
- RW dummy and STR dummy components: Set/Update modes correctly.
|
|
- RW handlers: Bugfix for TM set retrieval and special request handling in general where the CRC
|
|
check always failed for special request. Also removed an unnecessary delay for special requests.
|
|
- RW handlers: Polling is now disabled for RWs which are off.
|
|
|
|
## Changed
|
|
|
|
- RW shutdown now waits for the speed to be near 0 or for a OFF transition countdown to be expired
|
|
before going to off.
|
|
|
|
# [v1.43.2] 2023-04-05
|
|
|
|
## Changed
|
|
|
|
- Adapted HK data rates to new table for LEOP SAFE mode.
|
|
- GPS controller HK is now generated periodically as well.
|
|
- Better mode combination checks for assembly components. This includes:
|
|
- IMTQ assembly
|
|
- Syrlinks assembly
|
|
- Dual Lane Assembly
|
|
- RWs are no longer commanded by the ACS Controller during safe mode. Instead the RW speed command
|
|
is set to 0 as part or the `doShutDown` of the RW handler.
|
|
|
|
## Fixed
|
|
|
|
- Dual lane assemblies: Fix handling when health states are overwritten. Also add better handling
|
|
when some devices are permanent faulty and some are only faulty. In that case, only the faulty
|
|
devices will be restored.
|
|
- ACS dual lane assembly: Gyro 3 helper mode was assigned to the Gyro 2 mode.
|
|
|
|
# [v1.43.1] 2023-04-04
|
|
|
|
## Fixed
|
|
|
|
- Generic HK handling: Bug where HKs were generated a lot more often than required. This is the case
|
|
if a device handler `PERFORM_OPERATION` step is performed more than once per PST cycle.
|
|
- Syrlinks now goes to `_MODE_TO_ON` when finishing the `doStartUp` transition.
|
|
|
|
## Changed
|
|
|
|
- Doubled GS PST interval instead of scheduling everything twice.
|
|
- Syrlinks now only has one `PERFORM_OPERATION` step, but still has two communication steps.
|
|
- PCDU components only allow setting `NEEDS_RECOVERY`, `HEALTHY` and `EXTERNAL_CONTROL` health
|
|
states now. TMP sensor components only allow `HEALTHY` , `EXTERNAL_CONTROL`, `FAULTY` and
|
|
`PERMANENT_FAULTY`.
|
|
- TCS controller now does a sanity check on the temperature values: Values below -80 C or above
|
|
160 C are ignored.
|
|
|
|
# [v1.43.0] 2023-04-04
|
|
|
|
- q7s-package: v2.4.0
|
|
- eive-tmtc: v2.21.0
|
|
|
|
## Added
|
|
|
|
- Version of thermal controller which performs basic control tasks.
|
|
- PCDU handler can now command switch of the 3V3 stack (switch ID 19)
|
|
- Set STR dev to OFF in assembly when it is faulty.
|
|
- STR: Reset data link layer and flush RX for regular commands and before performing special
|
|
commands to ensure consistent start state
|
|
|
|
## Fixed
|
|
|
|
- PTME was not reset after configuration changes.
|
|
- GPS health devices: ACS board assembly not reacts to health changes.
|
|
- STR COM helper: Reset reply size after returning a reply
|
|
|
|
## Changed
|
|
|
|
- Poll threshold configuration of the PTME IP core is now configurable via a parameter command
|
|
and is set to 0b010 (4 polls) instead of 0b001 (1 poll) per default.
|
|
- EIVE system fallback and COM system fallback: Perform general subsystem handling first, then
|
|
event reception, and finally any new transition handling.
|
|
- IMTQ MGM integration time lowered to 6 ms. This relaxes scheduling requirements a bit.
|
|
- PCDU handler switcher HK set now has additional 3V3 switcher state HK.
|
|
|
|
# [v1.42.0] 2023-04-01
|
|
|
|
- eive-tmtc: v2.20.1
|
|
- q7s-package: v2.3.0
|
|
|
|
## Changed
|
|
|
|
- SCEX filename updates. Also use T as the file ID / date separator between date and time.
|
|
- COM TM store and dump handling: Introduce modes for all 4 TM VC/store tasks. The OFF mode can be
|
|
used to disable ongoing dumps or to prevent writes to the PTME VC. This allows cleaner reset
|
|
handling of the PTME. All 4 VC/store tasks were attached to the COM mode tree and are commanded
|
|
as part of the COM sequence as well to ensure consistent state with the CCSDS IP core handler.
|
|
- Added `PTME_LOCKED` boolean lock which is used to lock the PTME so it is not used by the VC tasks
|
|
anymore. This lock will be controlled by the CCSDS IP core handler and is locked when the PTME
|
|
needs to be reset. Examples for this are datarate changes.
|
|
- Simulate real PCDU in PCDU dummy by remembering commandes switch change and triggering appropriate
|
|
events. Switch feedback is still immediate.
|
|
- GomSpace devices are polled with a doubled frequency. This speeds up power switch commanding.
|
|
|
|
## Fixed
|
|
|
|
- Bugfix for side lane transitions of the dual lane assemblies, which only worked when the
|
|
assembly was directly commanded.
|
|
- Syrlinks Handler: Bugfix so transition command is only sent once.
|
|
- SCEX file name bug: Create file name time stamp with `strftime` similarly to how it's done
|
|
for the persistent TM store.
|
|
|
|
## Added
|
|
|
|
- Added GPS0 and GPS1 health device which are used by the ACS board assembly when deciding whether
|
|
to change to the other side or to go to dual side directly. Setting the health devices to faulty
|
|
should also trigger a side switch or a switch to dual mode.
|
|
|
|
# [v1.41.0] 2023-03-28
|
|
|
|
- eive-tmtc: v2.20.0
|
|
- q7s-package: v2.2.0
|
|
|
|
## Fixed
|
|
|
|
- Proper Faulty/External Control handling for the dual lane assemblies.
|
|
- ACS board devices: Go to ON mode instead of going to NORMAL mode directly.
|
|
- SUS device handlers: Go to ON mode on startup instead of NORMAL mode.
|
|
- Tweaks for the delay handling for the persistent TM stores. This allows pushing the full
|
|
high datarate when dumping telemetry. The most important and interesting fix is that
|
|
there needs to be a small delay between the polling of the GPIO. Polling the GPIO
|
|
without any delay consecutively can lead to scheduling issues.
|
|
- Bump FSFW for fix of `ControllerBase` class `startTransition` implementation.
|
|
- Bump FSFW for possible fix of `PowerSwitcherComponent`: Initial mode `MODE_UNDEFINED`.
|
|
|
|
## Changed
|
|
|
|
- Enabled periodic hosuekeeping generation for release images.
|
|
- Project structure (linux and mission folder) is subsystem centric now.
|
|
|
|
# [v1.40.0] 2023-03-24
|
|
|
|
- eive-tmtc: v2.19.4
|
|
- q7s-packasge: v2.1.0
|
|
- Bumped fsfwgen for bugfix: Event translation can deal with duplicate event names now.
|
|
|
|
## Fixed
|
|
|
|
- PAPB busy polling now implemented properly with an upper bound of how often the PAPB is allowed
|
|
to be busy before returning the BUSY returnvalue. Also propagate and check for that case properly.
|
|
Ideally, this will never be an issue and the PAPB VC interface should never block for a longer
|
|
period.
|
|
- The `mekfInvalidCounter` now resets on setting the STR to faulty.
|
|
- Improve the SD lock handling. The file handling does not need to be locked as it
|
|
is only handled by one thread.
|
|
|
|
## Added
|
|
|
|
- The event `MEKF_RECOVERY` will be triggered in case the `MEKF` does manage to recover itself.
|
|
- The persistent TM stores now have low priorities and behave like background threads now. This
|
|
should prevent them from blocking or slowing down the system even during dumps
|
|
(at least in theory).
|
|
- STR: Fix weird issues on datalink layer data reception which sometimes occur.
|
|
- Syrlinks FDIR: Fully allow FDIR to do more recoveries. Assembly should take care of preventing
|
|
the switch to go off.
|
|
- Allow dual lane assembly side switches.
|
|
|
|
## Changed
|
|
|
|
- Rework FSFW OSALs to properly support regular scheduling (NICE priorities) and real-time
|
|
scheduling.
|
|
- STR: Move datalink layer to `StrComHandler` completely. DLL is now completely hidden from
|
|
device handler.
|
|
- STR: Is now scheduled twice in ACS PST.
|
|
- `StrHelper` renamed to `StrComHandler`, is now a `DeviceHandlerIF` directly and does not wrap
|
|
a separate UART COM interface anymore.
|
|
- TCS: Local pool variables are members now.
|
|
- Syrlinks: Create dedicated COM helper which uses a ring buffer to parse the Syrlinks datalinklayer
|
|
and should make communication more reliable even on high CPU loads.
|
|
- Syrlinks: Two communication cycles per PST.
|
|
- Fine-tuning of various task priorities.
|
|
- The CSP router now is scheduled with the `SCHED_RR` policy and the same priority as the PCDU
|
|
handlers as well.
|
|
- Change project structure to be more subsystem centric for ACS and COM.
|
|
|
|
# [v1.39.1] 2023-03-22
|
|
|
|
## Fixed
|
|
|
|
- Bugfix for STR: Some action commands wrongfully declined.
|
|
- STR: No normal command handling while a special request like an image upload is active.
|
|
- RS485 data line was not enabled when the transmitter was switched on.
|
|
|
|
# [v1.39.0] 2023-03-21
|
|
|
|
Requires firmware update for new FPGA design where reset line is routed into the software.
|
|
2 relevant PRs:
|
|
- https://egit.irs.uni-stuttgart.de/eive/q7s-vivado/pulls/53
|
|
- https://egit.irs.uni-stuttgart.de/eive/q7s-vivado/pulls/54
|
|
|
|
eive-tmtc: v2.19.3
|
|
|
|
## Added
|
|
|
|
- Added NaN and Inf check for the `MEKF`. If these are detected, the `AcsController` will reset
|
|
the `MEKF` on its own once. This way, there will not be an event spam and operators will have
|
|
to look into the reason of wrong outputs. To restore the reset ability, an action command has
|
|
been added.
|
|
- Contingency handling for non-working I2C bus bug. Reboot the system if the I2C is not working.
|
|
|
|
## Fixed
|
|
|
|
- Fixed transition for dual power lane assemblies: When going from dual side submode to single side
|
|
submode, perform logical commanding first, similarly to when going to OFF mode.
|
|
- GPS time is only set to valid if at least one satellite is in view.
|
|
|
|
## Changed
|
|
|
|
- Bugfixes for STR mode transitions: Booting to mode ON with submode FIRMWARE now works properly.
|
|
Furthermore, the submode in the NORMAL mode now should be 0 instead of some ON mode submode.
|
|
- Updated GYR bias values to newest measurements. This also corrects the ADIS values to always
|
|
consit of just one digit.
|
|
- The CCSDS IP core handler now exposes a parameter to enable the priority select mode
|
|
for the PTME core. This mode prioritizes virtual channels with a lower index, so for example
|
|
the virtual channel (VC0) will have the highest priority, while VC3 will have the lowestg
|
|
priority. This mode will be enabled by default for now, but can be set via the parameter IF with
|
|
the unique parameter ID 0. The update of this mode requires a PTME reset. Therefore, it will only
|
|
be performed when the transmitter is off to avoid weird bugs.
|
|
- Connect and handle reset line for the PTME core in the software now.
|
|
- Safe mode controller failure event now only triggers once per minute.
|
|
|
|
# [v1.38.0] 2023-03-17
|
|
|
|
eive-tmtc: v2.19.2
|
|
|
|
## Fixed
|
|
|
|
- SA deployment file handling: Use exceptionless API.
|
|
- Fix deadlock in SD card manager constructor: Double lock of preferred SD card lock.
|
|
|
|
## Added
|
|
|
|
- Failure of Safe Mode Ctrl will now trigger an event. As this can only be caused by sensors not
|
|
being in the correct mode, the assemblies should take care that this will never happen and no
|
|
additional FDIR is needed.
|
|
|
|
## Changed
|
|
|
|
- Telemetry relevant datasets for the RWs are now set invalid and partially reset on shotdown.
|
|
- I2C PST now has a polling frequency of 0.4 seconds instead of 0.2 seconds.
|
|
- GS PST now has a polling frequency of 0.5 seconds instead of 1 second.
|
|
- Bump FSFW: merged upstream.
|
|
- Move BPX battery scheduling to ACS PST to avoid clashes with IMTQ scheduling / polling
|
|
|
|
# [v1.37.2] 2023-03-14
|
|
|
|
- Changed `PoolManager` bugfix implementation in the FSFW.
|
|
- Some tweaks for IPC and TM store configuration
|
|
|
|
# [v1.37.1] 2023-03-14
|
|
|
|
This version works on the EM as well.
|
|
|
|
eive-tmtc: v2.19.1
|
|
|
|
## Added
|
|
|
|
- Added `EXECUTE_SHELL_CMD` action command for `CoreController` to execute arbitrary Linux commands.
|
|
- Added some missing PLOC commands.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/462
|
|
- Add `PcduHandlerDummy` component.
|
|
- Added parameter for timeout until `MEKF_INVALID_MODE_VIOLATION` event is triggered.
|
|
|
|
## Fixed
|
|
|
|
- Pointing control of the `AcsController` was still expecting submodes instead of modes.
|
|
- Limitation of RW speeds was done before converting them to the correct unit scale.
|
|
- The Syrlinks task now has a proper name instead of `MAIN_SPI`.
|
|
- Make whole EIVE system initial transition work for the EM. This was also made possible by
|
|
always scheduling most EIVE components instead of tying the scheduling to preprocessor defines.
|
|
- Store more TCP und UDP packets.
|
|
- Bump fsfw for small tweak in local datapool manager: Re-enable or re-disabling dataset
|
|
generation will not fail anymore.
|
|
- Bump FSFW to simplify HK helpers: Was previously buggy and did not allow to use
|
|
minmum sampling frequency. Now both diagnostics and HK can use minimum
|
|
sampling frequency for requesting HK
|
|
- Bump FSFW to allow the TC/TM/IPC pools to spill to higher pools/pool pages.
|
|
|
|
## Changed
|
|
|
|
- Set `OBSW_ADD_TCS_CTRL` to 1. Always add TCS controller now for both EM and FM.
|
|
- generators module: Bump `fsfwgen` dependency to v0.3.1. The returnvalue CSV files are now sorted.
|
|
- generators module: Always generate subsystem ID CSV files now.
|
|
- The COM subsystem is now not commanded by the EIVE system anymore. Instead,
|
|
a separate RX_ONLY mode command will be sent at OBSW boot. After that,
|
|
commanding is done autonomously by the COM subsystem internally or by the operator. This prevents
|
|
the transmitter from going off during fallbacks to the SAFE mode, which might not always be
|
|
desired.
|
|
- Initialize switch states to a special `SWITCH_STATE_UNKNOWN` (2) variable. Return
|
|
`PowerSwitchIF::SWITCH_UNKNOWN` in switch state getter if this is the state.
|
|
- Wait 1 second before commanding SAFE mode. This ensures or at least increases the chance that
|
|
the switch states were initialized.
|
|
- Dual Lane Assemblies: The returnvalues of the dual lane power state machine FSM are not ignored
|
|
anymore.
|
|
|
|
# [v1.37.0] 2023-03-11
|
|
|
|
eive-tmtc: v2.18.1
|
|
|
|
## Added
|
|
|
|
- `SensorProcessing` now includes an FDIR for GPS altitude. If the measured GPS altitude is out
|
|
of bounds of the range defined in the `AcsParameters`, the altitude defaults to an altitude
|
|
set in the `AcsParameters`.
|
|
- `AcsController` will now never command a RW speed larger than the maximum allowed speed.
|
|
|
|
## Fixed
|
|
|
|
- `PAPB_EMPTY_SIGNAL_VC1` GPIO was not set up properly.
|
|
- Fix for heater names: HPA heater (index 7) is now the Syrlinks heater.
|
|
- `AcsParameters` setter were previously all for scalar parameters. Now vector and matrix
|
|
parameters use their respective setters.
|
|
- Several `AcsController` components had their own implementation of `AcsParameters`. This resulted
|
|
in those parameters not being updated, while the actual ones were updated. All instances of
|
|
`AcsParameters` not belonging to `AcsController` are eiter removed or replaced by pointer
|
|
instances.
|
|
- Instead of updating the `gsTargetModeControllerParameters`, the `targetModeControllerParameters`
|
|
were updated.
|
|
- Instead of updating the `idleModeControllerParameters`, the `targetModeControllerParameters`
|
|
were updated.
|
|
- Fixed Idle Mode Controller never calling `ptgLaw` and therefore never calculating control
|
|
values.
|
|
- Fixed wrong check on wether file used for persistant boolean flag on successful still existed.
|
|
- Scaling of MTQ Cmds now scales the current values to command with the current values and not
|
|
the values of the last step, which would result in undefined behaviour.
|
|
- Solved naming collision between file used for solar array deployment and confirmation for
|
|
ACS for solar array deployment.
|
|
- Fixed that scaling of RW torque would result in a zero vector unless the maximum value was exceeded.
|
|
- Bias for the GYR data was substracted within the wrong rf (sensor rf vs body rf).
|
|
|
|
## Changed
|
|
|
|
- Refactored TM pipeline to optimize usage of the PTME and communication downlink bandwidth.
|
|
This was done by moving the dumping of TMs to the VCs into separate threads with permanent loops.
|
|
These threads are then able to process high TM loads on demand. The PUS TM funnel will route
|
|
PUS packets to the approrpiate persisten TM stores and then demultiplex the TM to all registered
|
|
TM destinations as before.
|
|
- Service 5 now handles 40 events per cycle instead of 15
|
|
- Remove periodic SD card check. The file system is not mounted read-only anymore when using an
|
|
ext4 filesystem
|
|
- The `detumbleCounter` now does not get hard reset anymore, if the critical rate does not get
|
|
violated anymore. Instead it is incrementally reset.
|
|
- The RW antistiction now only takes the RW speeds in account.
|
|
- ACS CTRL transition to DETUBMLE is now done in CTRL internally. No
|
|
system level handling necessary anymore.
|
|
- More fixes and improvements for SD card handling. Extend SD card setup in core controller to
|
|
create full initial state for SD card manager are core controller as early as possible, turn
|
|
execution of setup file update blocking. This might solve the issue with the SD card manager
|
|
sometimes blocking for a long time.
|
|
- Request raw MTM measurement twice for IMTQ, might reduce number of times measurement could not
|
|
be retrieved.
|
|
- Event manager and event service have larger queues now: 45 -> 120 for Service 5, 80 -> 120 for
|
|
event manager
|
|
- ACS mode changes: The ACS CTRL submodes are now modes. DETUBMLE is now submode of SAFE mode.
|
|
- EIVE system now tracks the mode of the ACS subsyste in SAFE mode.
|
|
|
|
# [v1.36.0] 2023-03-08
|
|
|
|
eive-tmtc: v2.17.2
|
|
|
|
## Added
|
|
|
|
- Star Tracker Assembly
|
|
- New `REBOOT_COUNTER` and `INDIVIDUAL_BOOT_COUNTS` events. The first contains the total boot count
|
|
as a u64, the second one contains the individual boot counts as 4 u16. Add new core controller
|
|
action command `ANNOUNCE_BOOT_COUNTS` with action ID 3 which triggers both events. These events
|
|
will also be triggered on each reboot.
|
|
|
|
## Changed
|
|
|
|
- Persistent TM stores will now create new files on each reboot.
|
|
- Fast ACS subsystem commanding: Command SUS board consecutively with other devices now
|
|
- Star Tracker: Use ground confguration for EM and flight config for FM by default.
|
|
|
|
## Fixed
|
|
|
|
- Command TCS controller off first for TCS subsystem transition to off.
|
|
- Health handling for TCS board assembly
|
|
- Mode fallback from IDLE mode to SAFE mode due to ACS errors/events now works properly for
|
|
the ACS subsystem
|
|
- Bugfix in IDLE transition for system.
|
|
- `std::filesystem` API usages: Avoid exceptions by using variants which return an error code
|
|
instead of throwing exceptions.
|
|
- GPS fix loss was not reported if mode is unset.
|
|
- Star Tracker: OFF to NORMAL transition now posssible. Requires FSFW bump which sets
|
|
transition source modes properly for those transitions.
|
|
FSFW PR: https://egit.irs.uni-stuttgart.de/eive/fsfw/pulls/131
|
|
- Star Tracker JSON initialization is now done during object initization instead of redoing it
|
|
when building a command. This avoids missed deadlines issues in the ACS PST.
|
|
- Allow arbitrary submodes for dual lane boards to avoid FDIR reactions of subsystem components.
|
|
Bump FSFW to allow this.
|
|
- PUS 15 was not scheduled
|
|
- Transmitter timeout set to 2 minutes instead of 15 minutes. This will prevent to discharge the
|
|
battery in case the syrlinks starts transmitting due to detection of unintentional bitlock. This
|
|
happened e.g. on ground when the uplink to the flying latop was established.
|
|
- ACS system components are now always scheduled (EM specific)
|
|
|
|
# [v1.35.1] 2023-03-04
|
|
|
|
## Fixed
|
|
|
|
- ACS Board Assembly FDIR: Prevent permanent SAFE mode fallbacks by introducing special health
|
|
handling.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/418/files
|
|
- Watchdog fixes
|
|
- IMTQ timing fixes
|
|
|
|
## Added
|
|
|
|
- Add IMTQ assembly
|
|
|
|
# [v1.35.0] 2023-03-04
|
|
|
|
eive-tmtc: v2.16.4
|
|
|
|
## Added
|
|
|
|
- Improved the OBSW watchdog by adding a watch functionality. The watch functionality is optional
|
|
and has to be enabled specifically by the application being watched by the watchdog when
|
|
starting the watchdog. If the watch functionality is enabled and the OBSW has not pinged
|
|
the watchdog via the FIFO for 2 minutes, the watchdog will restart the OBSW service via systemd.
|
|
The primary OBSW will only activate the watch functionality if it is the OBSW inside the
|
|
`/usr/bin` directory. This allows debugging the system by leaving flashed or manually copied
|
|
debugging images 2 minutes to start the watchdog without the watch functionality.
|
|
|
|
## Fixed
|
|
|
|
- Bumped FSFW: `Countdown` and `Stopwatch` use new monotonic clock API now.
|
|
- IMTQ: Various fixes, most notably missing buffer time after starting MGM measurement
|
|
and corrections for actuator commanding.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/430
|
|
|
|
# [v1.34.0] 2023-03-03
|
|
|
|
eive-tmtc: v2.16.3
|
|
|
|
This might include the fix for the race condition where CPU usage jumped to 200 %. The race
|
|
condition was traced to the `Countdown` class, more specifically to the `getUptime` function where
|
|
the `/proc/uptime` file is read.
|
|
|
|
## Changed
|
|
|
|
- The SD card prefix is now set earlier inside the `CoreController` constructor
|
|
- The watchdog handling was moved outside the `CoreController` into the main loop.
|
|
- Moved polling of all SPI parts to the same PST.
|
|
- Allow quicker transition for the EIVE system component by allowing consecutive TCS and ACS
|
|
component commanding again.
|
|
- Changed a lot of lock guards to use timeouts
|
|
- Queue sizes of TCP/UDP servers increased from 20 to 50
|
|
- Significantly simplified and improved lock guard handling in TCS and ACS board polling
|
|
tasks.
|
|
|
|
## Fixed
|
|
|
|
- IMTQ: Sets were filled with wrong data, e.g. Raw MTM was filled with calibrated MTM measurements.
|
|
- Set RM3100 dataset to valid.
|
|
- Fixed units in calculation of ACS control laws safe and detumble.
|
|
- Bump FSFW for change in Countdown: Use system clock instead of reading uptime from file
|
|
to prevent possible race condition.
|
|
- GPS: No fix considered a fault now after 30 minutes instead of 5 hours.
|
|
- SUS Assembly FDIR: Prevent permanent SAFE mode fallbacks by introducing special health
|
|
handling.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/418/files
|
|
|
|
## Added
|
|
|
|
- Added Syrlinks Assembly object to allow recovery handling and to fix faulty FDIR behaviour.
|
|
|
|
# [v1.33.0] 2023-03-01
|
|
|
|
eive-tmtc: v2.16.2
|
|
|
|
## Changed
|
|
|
|
- Move ACS board polling to separate worker thread.
|
|
- Move SUS board polling to separate worker thread.
|
|
|
|
## Fixed
|
|
|
|
- Linux GPS handler now checks the individual `*_SET` flags when analysing the `gpsd` struct.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/400
|
|
|
|
# [v1.32.0] 2023-02-24
|
|
|
|
eive-tmtc: v2.16.1
|
|
|
|
## Fixed
|
|
|
|
- ADIS1650X: Added missing MDL_RANG pool entry for configuration set
|
|
- Bumped FSFW for bugfix in health service: No execution complete for targeted health announce
|
|
command.
|
|
- Removed matrix determinant calculation as part of the `MEKF`, which would take about
|
|
300ms of runtime
|
|
- Resetting the `MEKF` now also actually resets its stored state
|
|
- Bumped FSFW for bugfix in destination handler: Better error handling and able to process
|
|
destination folder path.
|
|
|
|
## Changed
|
|
|
|
- Added basic persistent TM store for PUS telemetry and basic interface to dump and delete
|
|
telemetry. Implementation is based on a timed rotating files, with the addition that files
|
|
might be generated more often if the maximum file size of 8192 bytes is exceeded.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/320/files
|
|
- Commented out commanding of actuators as part of the `AcsController`
|
|
- Collection sets of the `AcsController` now get updated before running the actual ACS
|
|
algorithm
|
|
- `GpsController` now always gets scheduled
|
|
- The `CoreController` now initializes the initial clock from the time file as early as possible
|
|
(in the constructor) if possible, which should usually be the case.
|
|
|
|
## Added
|
|
|
|
- Added basic persistent TM store for PUS telemetry and basic interface to dump and delete
|
|
telemetry.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/320/files
|
|
- `ExecutableComIfDummy` class to have a dummy for classes like the RTD polling class.
|
|
- Added `AcsController` action command to confirm solar array deployment, which then deletes
|
|
two files
|
|
- Added `AcsController` action command to reset `MEKF`
|
|
- `GpsCtrlDummy` now initializes the `gpsSet`
|
|
- `RwDummy` now initializes with a non faulty state
|
|
|
|
|
|
# [v1.31.1] 2023-02-23
|
|
|
|
## Fixed
|
|
|
|
- ADIS1650X configuration set was empty because the local pool variables were not registered.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/402
|
|
- ACS Controller: Correction for size of MEKF dataset and some optimization and fixes
|
|
for actuator control which lead to a crash.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/403
|
|
|
|
# [v1.31.0] 2023-02-23
|
|
|
|
eive-tmtc: v2.16.0
|
|
|
|
## Fixed
|
|
|
|
- Usage of floats as iterators and using them to calculate a uint8_t index in `SusConverter`
|
|
- Removed unused variables in the `AcsController`
|
|
- Remove shadowing variables inside ACS assembly classes.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/385
|
|
|
|
## Changed
|
|
|
|
COM PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/364
|
|
|
|
* Moved transmitter timer and handling of carrier and bitlock event from CCSDS handler to COM
|
|
subsystem
|
|
* Added parameter command to be able to change the transmitter timeout
|
|
* Solves [#362](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/362)
|
|
* Solves [#360](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/360)
|
|
* Solves [#361](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/361)
|
|
* Solves [#386](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/386)
|
|
- All `targetQuat` functions in `Guidance` now return the target quaternion (target
|
|
in ECI frame), which is passed on to `CtrlValData`.
|
|
- Moved polling sequence table definitions and source code to `mission/core` folder.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/395
|
|
|
|
## Added
|
|
|
|
- `MEKF` now returns an unique returnvalue depending on why the function terminates. These
|
|
returnvalues are used in the `AcsController` to determine on how to procede with its
|
|
perform functions. In case the `MEKF` did terminate before estimating the quaternion
|
|
and rotational rate, an info event will be triggered. Another info event can only be
|
|
triggered after the `MEKF` has run successfully again. If the `AcsController` tries to
|
|
perform any pointing mode and the `MEKF` fails, the `performPointingCtrl` function will
|
|
set the RWs to the last RW speeds and set a zero dipole vector. If the `MEKF` does not
|
|
recover within 5 cycles (2 mins) the `AcsController` triggers another event, resulting in
|
|
the `AcsSubsystem` being commanded to `SAFE`.
|
|
- `MekfData` now includes `mekfStatus`
|
|
- `CtrlValData` now includes `tgtRotRate`
|
|
|
|
# [v1.30.0] 2023-02-22
|
|
|
|
eive-tmtc: v2.14.0
|
|
|
|
Event IDs for PDEC handler have changed in a breaking manner.
|
|
|
|
## Added and Fixed
|
|
|
|
- PDEC: Added basic FDIR to limit the number of allowed TC interrupts and to allow complete task
|
|
lockups in the case an IRQ is immediately re-raised by the PDEC module. This is done by only
|
|
allowing a certain number of handled IRQs (whether they yield a valid TC or not) during
|
|
time windows of one second. Right now, 800 IRQs/TCs are allowed per time window.
|
|
This time window is reset if a TC reception timeout after 500ms occurs. TBD whether the maximum
|
|
allowed number will be a configurable parameter. If the number of occured IRQs is exceeded,
|
|
an event is triggered and the task is delayed for 400 ms.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/393
|
|
|
|
# [v1.29.1] 2023-02-21
|
|
|
|
## Fixed
|
|
|
|
- Limit number of handled messages for core TM handlers:
|
|
- https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/391
|
|
- https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/390
|
|
- https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/389
|
|
- HeaterHandler better handling for faulty message reception
|
|
Issue: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/issues/388
|
|
- Disable stopwatch in MAX31865 polling task
|
|
|
|
# [v1.29.0] 2023-02-21
|
|
|
|
eive-tmtc: v2.13.0
|
|
|
|
## Changed
|
|
|
|
- Refactored IMTQ handlers to also perform low level I2C communication tasks in separate thread.
|
|
This avoids the various delays needed for I2C communication with that device inside the ACS PST.
|
|
(e.g. 1 ms delay between each transfer, or 10 ms integration delay for MGM measurements).
|
|
|
|
## Added
|
|
|
|
- Added new heater info set for the TCS controller. This set contains the heater switch states
|
|
and the current draw.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/351
|
|
- The HeaterHandler now exposes a mode which reflects whether the heater power
|
|
is on or off. It also triggers mode events for its heater children objects
|
|
which show whether the specific heaters are on or off. The heater handler
|
|
will be part of the TCS tree.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/351
|
|
|
|
# [v1.28.1] 2023-02-21
|
|
|
|
## Fixed
|
|
|
|
- Patch version which compiles for EM
|
|
- CFDP Funnel bugfix: CCSDS wrapping was buggy and works properly now.
|
|
- PDEC: Some adaptions to prevent task lockups on invalid FAR states.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/393
|
|
- CMakeLists.txt fix which broke CI/CD builds when server could not retrieve full git SHA.
|
|
- Possible regression in the MAX31865 polling task: Using a `ManualCsLockGuard` for reconfiguring
|
|
and then polling the sensor is problematic, invalid sensor values will be read.
|
|
CS probably needs to be de-asserted or some other HW/SPI specific issue. Letting the SPI ComIF
|
|
do the locking does the job.
|
|
|
|
## Changed
|
|
|
|
- Add `-Wshadow=local` shadowing warnings and fixed all of them
|
|
- Updated generated CSV files: Support for skip directive and explicit
|
|
"No description" info string
|
|
- The polling threads for actuator polling now have a slightly higher priority than the ACS PST
|
|
to ensure timing requirements are met.
|
|
|
|
## Added
|
|
|
|
- git post checkout hook which initializes and updates the submodules
|
|
automatically.
|
|
|
|
# [v1.28.0] 2023-02-17
|
|
|
|
eive-tmtc: v2.12.7
|
|
|
|
## Added
|
|
|
|
- In case the ACS Controller does recognize more than one RW to be invalid and therefore not
|
|
available, it does not perform pointing control but aborts shortly after `sensorProcessing`. If the
|
|
problem persits for 5 ACS cycles, the `MULTIPLE_RW_INVALID` event is triggered, which invokes the
|
|
transition of the `AcsSubsystem` to safe mode.
|
|
|
|
## Changed
|
|
|
|
- Igrf13 model vector now outputs as uT instead of nT
|
|
- Changed timings for `AcsPst`, more time for sun sensors.
|
|
- Added values for MGM sensor fusion
|
|
- Refactored RW Software: Polling runs in separate thread, all RWs are now polled in under 60 ms.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/381
|
|
- Bumped FSFW to allow initializing child modes in `SubsystemBase` derived objects.
|
|
|
|
## Fixed
|
|
|
|
- Fixed values for GYR sensor fusion
|
|
- Fixed speed types for `rwHandlingParameter`
|
|
- Pseudo inverse used for allocating torque to RWs and RW antistiction now actually consider the
|
|
state of the RWs
|
|
|
|
# [v1.27.2] 2023-02-14
|
|
|
|
Reaction Wheel handling was determined to be (quasi) broken and needs to be fixed in future release
|
|
to be usable by ACS controller.
|
|
|
|
eive-tmtc: v2.12.6
|
|
|
|
## Added
|
|
|
|
- Function for the ACS controller to command MTQ and RWs called by all subroutines
|
|
- RwHandler now handles commanding of RW speeds via RwSpeedActuationSet
|
|
- Tracing supports which allows checking whether threads are running as usual.
|
|
|
|
## Changed
|
|
|
|
- Remove 2 TCS threads.
|
|
- Move low level polling into ACS PST, move high level device handlers into TCS system task.
|
|
- ActCmds now returns command vectors as integers as required by the actuators
|
|
and scales them to the appropriate range
|
|
- All RwHandler are now polled five times per ACS cycle
|
|
- Remove 2 TCS threads. Move low level polling into ACS PST, move high level device handlers into
|
|
TCS system task.
|
|
- Further reduce number of threads:
|
|
1. Remove PUS low priority task, move assigned threads to the generic system task
|
|
2. Group events and verification tasks into PUS high priority task
|
|
3. Group all other components into PUS medium priority task
|
|
4. Add SCEX device handler to PL task, remove dedicated thread
|
|
|
|
## Removed
|
|
|
|
- lwgps dependency not compiled anymore, is not used
|
|
|
|
# [v1.27.1] 2023-02-13
|
|
|
|
## Fixed
|
|
|
|
- Fix for SPI ComIF: Set transfer size to 0 for failed transfers
|
|
- Fix shadowing issue with locks in MAX31865 low level handler
|
|
|
|
# [v1.27.0] 2023-02-13
|
|
|
|
eive-tmtc: v2.12.5
|
|
|
|
Added EIVE system top mode component. Currently, only SAFE and IDLE mode are
|
|
implemented, and the system does not do more than commanding TCS and ACS
|
|
into the correct modes. It does not have a lot of mode tracking capabilities
|
|
yet because the ACS controller might alternate between SAFE and DETUMBLE.
|
|
It takes around 5-10 seconds for the EIVE system to reach the SAFE mode.
|
|
|
|
The new system is used at software boot to command the satellite into safe mode
|
|
on each reboot. This behaviour can be disabled with the
|
|
`OBSW_SWITCH_TO_NORMAL_MODE_AFTER_STARTUP` flag.
|
|
|
|
## Added
|
|
|
|
- New EIVE system component like explained above.
|
|
|
|
## Changed
|
|
|
|
- The satellite now commands itself into SAFE mode on each reboot, which
|
|
triggers a lot of events on each SW reboot. The TCS subsystem will commanded
|
|
to NORMAL mode immediately while the ACS subsystem will be commanded to
|
|
SAFE mode. The payload subsystem will be commanded OFF.
|
|
- `RELEASE_BUILD` flag moved to `commonConfig.h`
|
|
- The ACS subsystem transitions are now staggered: The SUS board assembly
|
|
is commanded as a separate transition. This reduces the risk of long bus lockups.
|
|
- No INFO mode event translations for release builds to reduce number of
|
|
printouts.
|
|
- More granular locking inside the MAX31865 low level read handler.
|
|
|
|
## Fixed
|
|
|
|
- More DHB thermal module fixes.
|
|
- ACS PST frequency extended to 0.8 seconds in debug builds to avoid SPI
|
|
bus lockups.
|
|
- Local datapool fixes for the `PlocSupervisorHandler`
|
|
|
|
# [v1.26.4] 2023-02-10
|
|
|
|
eive-tmtc: v2.12.3
|
|
|
|
## Fixed
|
|
|
|
- `SdCardManager.cpp` `isSdCardUsable`: Use `ext4` instead of `vfat` to check read-only state.
|
|
|
|
# [v1.26.3] 2023-02-09
|
|
|
|
eive-tmtc: v2.12.2
|
|
|
|
## Added
|
|
|
|
- First version of a TCS controller heater control loop, but
|
|
the loop is disabled for now.
|
|
|
|
## Changed
|
|
|
|
- Reworked dummy handling for the TCS controller.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/325
|
|
- Generator scripts now generate files for hosted and for Q7S build.
|
|
|
|
## Fixed
|
|
|
|
- GPS Controller: Set fix value to 0 when switching off to allow
|
|
`GPS_FIX_CHANGE` to work when switching the GPS back on.
|
|
|
|
# [v1.26.2] 2023-02-08
|
|
|
|
## Changed
|
|
|
|
- ACS Controller scheduling is now configurable via the `eive/definitions.h` file. Also ensured
|
|
that scheduling is done in big blocks to reduce risk of missed deadlines.
|
|
- Replaced chained locks for polling new sensor data to the `AcsController`.
|
|
- Made TM store even larger.
|
|
|
|
## Fixed
|
|
|
|
- Bugfix for PDEC handler which causes the PIR register of the PDEC to never
|
|
be cleared on release builds. The dummy variable used to read the register
|
|
needs to be declared volatile to avoid compiler optimizations.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/374
|
|
- Bumped FSFW for fix of possible memory leaks in TCP/IP TMTC bridge
|
|
inside the FSFW.
|
|
|
|
## Added
|
|
|
|
- Create TCS controller for EM build.
|
|
|
|
# [v1.26.1] 2023-02-08
|
|
|
|
- Initialize parameter helper in ACS controller.
|
|
|
|
# [v1.26.0] 2023-02-08
|
|
|
|
eive-tmtc v2.12.1
|
|
|
|
## Changed
|
|
|
|
### ACS
|
|
|
|
- Readded calibration matrices for MGM calibration.
|
|
- Added calculation of satellite velocity vector from GPS position data
|
|
- Added detumble mode using GYR values
|
|
- Added inertial pointing mode
|
|
- Added nadir pointing mode
|
|
- Added ground station target mode
|
|
- Added antistiction for RWs
|
|
- Added `sunTargetSafe` differentiation for LEOP
|
|
- Added check for existance of `SD_0_SKEWED_PTG_FILE` and `SD_1_SKEWED_PTG_FILE` to determine
|
|
which `sunTargetSafe` to use
|
|
- Added `gpsVelocity` and `gpsPosition` to `gpsProcessed`
|
|
- Removed deprecated `OutputValues`
|
|
- Added `HasParametersIF` to `AcsParameters`
|
|
- Added `ReceivesParameterMessagesIF` and `ParameterHelper` to `AcsController`
|
|
- Updated `AcsParameters` with actual values and changed structure
|
|
- Sun vector model and magnetic field vector model calculations are always executed now
|
|
- `domainId` is now used as identifier for parameter structs
|
|
- Changed onboard GYR value handling from deg/s to rad/s
|
|
|
|
## Fixed
|
|
|
|
- Single sourcing the version information into `CMakeLists.txt`. The `git describe` functionality
|
|
is only used to retrieve the git SHA hash now. Also removed `OBSWVersion.h` accordingly.
|
|
- Build system: Fixed small bug, where the version itself was
|
|
stored as the git SHA hash in `commonConfig.h`. This will be
|
|
an empty string now for regular versions.
|
|
- Bump FSFW for important fix in PUS mode service.
|
|
|
|
### ACS
|
|
|
|
- Bugfixes in 'SensorProcessing' where previously MGM values would be calibrated before being
|
|
transformed in body RF. However, the calibration values are in the body RF. Also fixed the
|
|
validity flag of 'mgmVecTotDerivative'.
|
|
- Fixed calculation of model sun vector
|
|
- Fixed calculation of model magnetic field vector
|
|
- Fixed MEKF algorithm
|
|
- Fixed several variable initializations
|
|
- Fixed several variable types
|
|
- Fixed use of `sunMagAngleMin` for safe mode
|
|
- Fixed MEKF not using correct `sampleTime`
|
|
- Fixed assignment of `SUS0` and `SUS6` calibration matrices due to wiring being mixed up
|
|
- Various smaller bugfixes
|
|
|
|
# [v1.25.0] 2023-02-06
|
|
|
|
eive-tmtc version: v2.12.0
|
|
|
|
## Changed
|
|
|
|
- Updated Subsystem mode IDs to avoid clashes with regular device handler modes.
|
|
|
|
## Fixed
|
|
|
|
- `GpsHyperionLinuxController`: Fix `gpsd` polling by continuously calling `gps_read` in one cycle
|
|
until it does not have any data left anymore. Also, the data is now polled in a permanent loop,
|
|
where controller handling is done on 0.2 second timeouts.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/368
|
|
|
|
# [v1.24.0] 2023-02-03
|
|
|
|
- eive-tmtc v2.10.0
|
|
- `AcsSubsystem`: OFF, SAFE and DETUMBLE mode were tested. Auto-transitions SAFE <-> DETUMBLE tested
|
|
as well. Other modes still need to be tested.
|
|
|
|
## Fixed
|
|
|
|
- `AcsController`: Parameter fix in `DetumbleParameter`.
|
|
- Set GPS set entries to invalid on MODE_OFF command.
|
|
- Bump FSFW for bugfix in `setNormalDatapoolEntriesInvalid` where the validity was not set to false
|
|
properly
|
|
- Fixed usage of uint instead of int for commanding MTQ. Also fixed the range in which the ACS Ctrl
|
|
commands the MTQ to match the actual commanding range.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/363
|
|
- Regression: Revert swap of SUS0 and SUS6. Those devices are on separate power lines. In a
|
|
future fix, the calibration matrices of SUS0 and SUS6 will be swapped.
|
|
|
|
## Changed
|
|
|
|
- Update ACS scheduling to represent the actual ACS design. There is one ACS PST now for all
|
|
timing sensitive ACS operations. In the debug builds, the new ACS polling sequence table
|
|
will have a period of 0.6 seconds, but will remain 0.4 seconds for the release build.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365
|
|
- `ACS::SensorValues` is now an ACS controller member to reduce the risk of stack overflow.
|
|
- ACS Subsystem Sequence Mode IDs updated.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365
|
|
TMTC PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/130
|
|
- Update and tweak ACS subsystem to represent the actual ACS design
|
|
- Event handling in the ACS subsystem for events triggered by the ACS controller.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365
|
|
|
|
# [v1.23.1] 2023-02-02
|
|
|
|
TMTC rev: 15adb9bf2ec68304a4f87b8dd418c1a8353283a3
|
|
|
|
## Fixed
|
|
|
|
- Bugfix in FSFW where the sequence flags of the PUS packets were set to continuation segment (0b00)
|
|
instead of unsegmented (0b11).
|
|
- Bugfix in FSFW where the MGM RM3100 value Z axis data was parse incorrectly.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/fsfw/pulls/123
|
|
|
|
# [v1.23.0] 2023-02-01
|
|
|
|
TMTC version: v2.9.0
|
|
|
|
## Changed
|
|
|
|
- Bumped FSFW to include improvements and bugfix for Health Service. The health service now
|
|
supports the announce all health info command.
|
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/725
|
|
|
|
## Fixed
|
|
|
|
- Bumped FSFW to include fixes in the time service.
|
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/726
|
|
- The CCSDS handler starts the transmitter timer each time it is commanded to MODE_ON and times
|
|
out the timer when the handler is commanded to MODE_OFF
|
|
- If the timer is timed out the CCSDS handler will disable the TX clock which will cause the
|
|
syrlinks to got to standby mode
|
|
- PDEC handler now parses the FAR register also in interrupt mode
|
|
|
|
|
|
# [v1.22.1] 2023-01-30
|
|
|
|
## Changed
|
|
|
|
- Updated FSFW to include addition where the `SO_REUSEADDR` option is set
|
|
on the TCP server, which should improve its ergonomics.
|
|
|
|
# [v1.22.0] 2023-01-28
|
|
|
|
TMTC version: v2.6.1
|
|
|
|
## Added
|
|
|
|
- First COM subsystem implementation. It mirrors the Syrlinks mode/submodes but also takes
|
|
care of commanding the CCSDS handler. It expects the Syrlinks submodes as mode commands.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/358
|
|
- The CCSDS handler has has a new submode (3) to configure the default datarate.
|
|
- Default datarate parameter commanding moved to COM subsystem.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/358
|
|
|
|
# [v1.21.0] 2023-01-26
|
|
|
|
TMTC version: v2.5.0
|
|
Syrlinks PR: PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/353
|
|
|
|
## Fixed
|
|
|
|
- The `OBSW_SYRLINKS_SIMULATED` flag is set to 0 for for both EM and FM.
|
|
- MGM4 handling in ACS sensor processing: Bugfix in `mulScalar` operation
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/354
|
|
- Subsystem ID clash: CORE subsystem ID was the same as Syrlinks subsystem ID.
|
|
|
|
## Changed
|
|
|
|
- Startracker temperature set and PCDU switcher set are diagnostic now
|
|
- `SyrlinksHkHandler` renamed to `SyrlinksHandler` to better reflect that it does more than
|
|
just HK and is also responsible for setting the TX mode of the device.
|
|
- `SyrlinksHandler`: Go to startup immediately because the Syrlinks device should always be on
|
|
by default.
|
|
- `SyrlinksHandler`: Go to normal mode at startup.
|
|
|
|
## Added
|
|
|
|
- The Syrlinks handler has submodes for the TX mode now: RX Only (0), RX and TX default
|
|
datarate (1), RX and TX Low Rate (2), RX and TX High Rate (3) and TX Carrier Wave (4).
|
|
The submodes apply for both ON and NORMAL mode. The default datarate can be updated using
|
|
a parameter command (domain ID 0 and unique ID 0) with value 0 for low rate and 1 for high rate.
|
|
- The Syrlinks handler always sets TX to standby when switching off
|
|
- The Syrlinks handler triggers a new TX_ON event when the transmitter was switched on successfully
|
|
and a TX_OFF event when it was switched off successfully.
|
|
- Startracker temperature set and PCDU switcher set are diagnostic now
|
|
- The CCSDS handler can accept mode commands now. It accepts ON and OFF commands. Furthermore
|
|
it has a submode for low datarate (1) and high datarate (2) for the ON command.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/352
|
|
|
|
# [v1.20.0] 2023-01-24
|
|
|
|
## Added
|
|
|
|
- The Q7S SW now checks for a file named `boot_delay_secs.txt` in the home directory.
|
|
If it exists and the file is empty, it will delay for 6 seconds before continuing
|
|
with the regular boot. It can also try to read delay seconds from the file.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/340.
|
|
- Basic TCS Subsystem component.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/319
|
|
- Expose base set of STR periodic housekeeping packets
|
|
|
|
## Changed
|
|
|
|
- Moved some PDEC/PTME configuration to `common/config/eive/definitions.h`
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/319
|
|
- The ACS Controller Gyro Sets (raw and processed) and the MEKF dataset are diagnostics now.
|
|
- Bumped FSFW for Service 11 improvement which includes size and CRC check for contained TC
|
|
- Syrlinks module now always included for both EM and FM
|
|
- SA Deployment: Allow specifying the switch interval and the initial channel. This allows testing
|
|
the new deployment procedure where each channel is burned for half of the whole burn duration.
|
|
It also allows burning only one channel for the whole burn duration. The autonomous mechanism
|
|
was adapted to burn each channel for half of the burn time by default.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/347
|
|
TMTC PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/127
|
|
- `Max31865RtdLowlevelHandler.cpp`: For each RTD device, the config is now re-written before
|
|
every read. This seems to fix some issue with invalid temperature sensor readings.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/345
|
|
|
|
## Fixed
|
|
|
|
- `GyroADIS1650XHandler`: Updated handler to determine correct dynamic range from `RANG_MDL`
|
|
register readout. This is because ADIS16505-3BMLZ devices are used on the ACS board and the
|
|
previous range setting was wrong. Also fixed a small error properly set internal state
|
|
on shut-down.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/342
|
|
- Syrlinks Handler: Read RX frequency shift as 24 bit signed number now. Also include
|
|
validity handling for datasets.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/350
|
|
- `GyroADIS1650XHandler`: Changed calculation of angular rate to be sensitivity based instead of
|
|
max. range based, as previous fix still left an margin of error between ADIS16505 sensors
|
|
and L3GD20 sensors.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/346
|
|
|
|
# [v1.19.0] 2023-01-10
|
|
|
|
## Changed
|
|
|
|
- 5V stack is now off by default
|
|
|
|
## Fixed
|
|
|
|
- PLOC SUPV: Minor adaptions and important bugfix for UART manager
|
|
- Allow cloning and building the hosted OBSW version without proprietary libraries,
|
|
which also avoids the need to have a Gitea account.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/337
|
|
|
|
## Added
|
|
|
|
- First version of ACS controller
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/329
|
|
- Allow commanding the 5V stack internally in software
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/334
|
|
- Add automatic 5V stack commanding for all connected devices
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/335
|
|
|
|
# [v1.18.0] 2022-12-01
|
|
|
|
## Changed
|
|
|
|
- PLOC Supervisor: Changes baudrate to 921600
|
|
- Renamed `/dev/ul-plsv` to `/dev/ploc_supv`, is not a UART lite anymore
|
|
- Renamed `/dev/i2c_eive` to `/dev/i2c_pl` and `/dev/i2c-2` to `/dev/i2c_ps`.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/328
|
|
|
|
# [v1.17.0] 2022-11-28
|
|
|
|
## Added
|
|
|
|
- PLOC Supervisor Update: Update SW to use newest PLOC SUPV version by TAS
|
|
PR 1: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/316
|
|
PR 2: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/324
|
|
PR 3: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/326
|
|
|
|
# [v1.16.0] 2022-11-18
|
|
|
|
- It is now possible to compile Linux components for the hosted build conditionally
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/322
|
|
- ACS Subsystem. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/231
|
|
- Payload Subsystem. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/231
|
|
- Add IRQ mode for PDEC handler. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/310
|
|
- Extended TM funnels to allow multiple TM recipients.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/312
|
|
- DHB: Transitions to normal mode now possible directly, which simplifies subsystem implementations
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/313
|
|
- MAX3185 Low Level Handler and Device Handler: Simplifications and bugfixes to allow switching
|
|
off without triggering unrequested replies
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/313
|
|
- Add remaining missing TMP1075 device handlers.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/318
|
|
|
|
# [v1.15.0] 2022-10-27
|
|
|
|
- Consistent device file naming
|
|
- Remove rad sensor from EM build, lead to weird bugs on EM which
|
|
prevented `xsc_boot_copy` from working properly
|
|
- CFDP closure handling is now working
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/307
|
|
- Safety mechanism for SD card handling on graceful reboots
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/308
|
|
- Solar Array Deployment handler update
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/305
|
|
- IMTQ updates as preparation for ACS controller expansion
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/306
|
|
- P60 Module: Reduce number of set IDs, use same set IDs for core, auxiliary
|
|
and config HK set across the three PCDU modules
|
|
|
|
# [v1.14.1] 11.10.2022
|
|
|
|
- Various bugfixes and regression fixes
|
|
- General file handling at program initialization now works properly again
|
|
- Scratch buffer preferred SD card handling works again
|
|
- Use scoped locks in TCS controller to avoid deadlocks
|
|
|
|
# [v1.14.0] 10.10.2022
|
|
|
|
- Provide full SW update capability for the OBSW.
|
|
This includes very basic CFDP integration, a software update
|
|
procedure specified in detail in the README and some high level
|
|
commands to make this easier for operators.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/302
|
|
- Update for FSFW: `HasReturnvaluesIF` class replaced by namespace `returnvalue`
|
|
- Add some GomSpace clients as a submodule dependency. Use this dependency to deserialize the
|
|
GomSpace TM tables
|
|
- Add API to retrieve GomSpace device parameter tables
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/287
|
|
- Add API to save and load GomSpace config tables
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/293
|
|
- Increase number of allowed consescutive action commands from 3 to 16
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/294
|
|
- Fix for EM SW: Always create ACS Task
|
|
- Added Scex device handler and Scex uart reader
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/303
|
|
- ACS Subsystem. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/228
|
|
|
|
# [v1.13.0] 24.08.2022
|
|
|
|
- Added first version of ACS Controller with gathers MGM data in a set
|
|
- Some tweaks for IMTQ handler
|
|
|
|
# [v1.12.1] 05.07.2022
|
|
|
|
- Disable periodic TCS controller HK generation by default
|
|
|
|
# [v1.12.0] 04.07.2022
|
|
|
|
## Added
|
|
|
|
- Dummy components to run OBSW without relying on external hardware
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/266
|
|
- Basic Thermal Controller
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/266
|
|
- PUS11 TC scheduler
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/259
|
|
- Regular reboot command
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/242
|
|
- Commands for individual RTD devices
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/84
|
|
- `RwAssembly` added to system components. Assembly works in principle,
|
|
issues making 4 consecutives RWs communicate at once..
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/224
|
|
- Adds a yocto helper script which is able to install the release build binaries
|
|
(OBSW and Watchdog) into the `q7s-yocto` repository as long as the `q7s-package`
|
|
or `q7s-yocto` repo was cloned in the same directory the EIVE OBSW repo.
|
|
This makes updating the root filesystem a lot easier. It also creates and installs a
|
|
version file.
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/248
|
|
- Create the generic image by default for the Q7S build. The unique binary with the
|
|
username appended at the end is created as a side-product now
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/248
|
|
|
|
## Fixed
|
|
|
|
- `q7s-cp.py` bugfix
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/256
|
|
- Generator scripts output now produce platform-independent artifacts
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/267
|
|
|
|
### Heater
|
|
|
|
- Adds `HealthIF` to heaters. Heaters are own system object with queues now which allows to set them faulty.
|
|
- SW will attempt to shut down heaters which are on but marked faulty
|
|
- Some simplifications for `HeaterHandler`, use `std::vector` instead of `std::unordered_map` for primary container. Using the heater indexes 0 to 7 allows to use natural array indexing
|
|
- Some additional input sanity checks in `executeAction`
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/236
|
|
|
|
## Changed
|
|
|
|
- CCSDS handler improvements
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/268
|
|
- Build unittest as default side product of hosted builds
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/244
|
|
- Let CI/CD build host build and run unittest side product in same step
|
|
- Catch2 pre-installed in CI/CD docker container, Xiphos SDK installed in CI/CD docker
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/247
|
|
- Sun Sensors have names denoting their location and poiting in the satellite now
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/245
|
|
- Better RTD names denoting their purpose (and location consequently)
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/246
|
|
|
|
# [v1.11.0]
|
|
|
|
## Fixed
|
|
|
|
- Host build working again
|
|
|
|
## Added
|
|
|
|
- Custom Syrlinks FDIR which disabled most of the default FDIR functionality
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/232
|
|
- Custom Gomspace FDIR which disabled most of the default FDIR functionality
|
|
- Custom Syrlinks FDIR which disabled most of the default FDIR functionality
|
|
|
|
## Changed
|
|
|
|
- PCDU handler only called once in PST, but can handle multiple messages now
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/221
|
|
Bugfix: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/235
|
|
- Update rootfs base of Linux, all related OBSW changes
|
|
- Add `/usr/local/bin` to PATH. All shell scripts are there now
|
|
- Add Syrlinks and TMP devices to Software by default
|
|
- Update GPS Linux Hyperion Handler to use socket interface. Still allows switching
|
|
back to SHM interface, but the SHM interface is a possible cause of SW crashes
|
|
- Updated code for changed FSFW HAL GPIO API: `readGpio` prototype has changed
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/240 and
|
|
https://egit.irs.uni-stuttgart.de/eive/fsfw/pulls/76
|
|
|
|
### GPS
|
|
|
|
PRs: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/239
|
|
|
|
- Rename GPS device to `/dev/gps0`
|
|
- Use gpsd version 3.17 now. Includes API changes
|
|
|
|
### EM and FM splitup & Build Workflow improvements
|
|
|
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/238
|
|
|
|
- Split up `bsp_q7s` in separate EM and FM build with module loading set to different
|
|
default values. The EM object factory is unique which allows building a parallel setup
|
|
with dummy components
|
|
- All major BSPs have an own `OBSWConfig.h.in` file which simplifies the file significantly
|
|
- Renamed Q7S primary build folders:
|
|
- `cmake-build-debug-q7s` for primary development build
|
|
- `cmake-build-release-q7s` for primary release build
|
|
- `cmake-build-debug-q7s-em` for primary development build of the EM software
|
|
- `cmake-build-release-q7s-em` for primary release build of the EM software
|
|
- Refactored Q7S helper script handling. It is now intended and preferred to copy the environment
|
|
script to the same folder level as the `eive-obsw` and source it. This will also
|
|
add the path containing the shell helper scripts to `PATH`
|
|
- The actual helper shell scripts were renamed as well to `q7s-<buildSystem>-<buildType>.sh`
|
|
|
|
# [v1.10.1]
|
|
|
|
Version bump
|
|
|
|
# [v1.10.0]
|
|
|
|
For all releases equal or prior to v1.10.0,
|
|
see [milestones](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones)
|