916 lines
37 KiB
Markdown
916 lines
37 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]
|
|
|
|
## Added
|
|
|
|
- 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
|
|
|
|
- `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.
|
|
|
|
# [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)
|