1321 lines
56 KiB
Markdown
1321 lines
56 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]
|
|
|
|
## 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.
|
|
- 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.
|
|
|
|
## 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.
|
|
|
|
## Changed
|
|
|
|
- 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.
|
|
|
|
# [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)
|