eive-obsw/CHANGELOG.md

1200 lines
51 KiB
Markdown
Raw Normal View History

2022-04-21 14:18:41 +02:00
Change Log
=======
All notable changes to this project will be documented in this file.
2022-05-04 14:43:27 +02:00
The format is based on [Keep a Changelog](http://keepachangelog.com/).
2022-04-21 14:18:41 +02:00
2022-04-21 14:21:02 +02:00
The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones)
list yields a list of all related PRs for each release.
2023-02-22 15:03:07 +01:00
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:
2023-01-26 20:33:16 +01:00
- The TMTC interface changes in any shape of form.
- The behaviour of the OBSW changes in a major shape or form relevant for operations
2023-01-26 20:33:16 +01:00
2023-02-01 20:21:04 +01:00
# [unreleased]
2023-03-29 11:41:42 +02:00
## Changed
- SCEX filename updates. Also use T as the file ID / date separator between date and time.
2023-03-31 01:14:59 +02:00
- 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.
2023-04-01 13:43:24 +02:00
- Simulate real PCDU in PCDU dummy by remembering commandes switch change and triggering appropriate
events. Switch feedback is still immediate.
2023-03-29 11:41:42 +02:00
2023-03-30 17:16:59 +02:00
## Fixed
- Bugfix for side lane transitions of the dual lane assemblies, which only worked when the
2023-03-31 19:16:57 +02:00
assembly was directly commanded.
2023-03-31 13:22:07 +02:00
- Syrlinks Handler: Bugfix so transition command is only sent once.
2023-03-30 17:16:59 +02:00
## 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.
2023-03-28 22:26:23 +02:00
# [v1.41.0] 2023-03-28
eive-tmtc: v2.20.0
q7s-package: v2.2.0
2023-03-27 15:00:40 +02:00
## 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.
2023-03-27 15:03:54 +02:00
- SUS device handlers: Go to ON mode on startup instead of NORMAL mode.
2023-03-27 17:44:51 +02:00
- Tweaks for the delay handling for the persistent TM stores. This allows pushing the full
2023-03-28 22:08:08 +02:00
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.
2023-03-28 22:17:54 +02:00
- Bump FSFW for fix of `ControllerBase` class `startTransition` implementation.
- Bump FSFW for possible fix of `PowerSwitcherComponent`: Initial mode `MODE_UNDEFINED`.
2023-03-27 15:00:40 +02:00
2023-03-26 15:28:00 +02:00
## Changed
- Enabled periodic hosuekeeping generation for release images.
2023-03-26 16:43:36 +02:00
- Project structure (linux and mission folder) is subsystem centric now.
2023-03-26 15:28:00 +02:00
2023-03-24 21:34:03 +01:00
# [v1.40.0] 2023-03-24
- eive-tmtc: v2.19.4
- q7s-packasge: v2.1.0
2023-03-24 15:39:45 +01:00
- Bumped fsfwgen for bugfix: Event translation can deal with duplicate event names now.
2023-03-23 10:51:06 +01:00
## Fixed
2023-03-23 12:03:53 +01:00
- 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.
2023-03-23 10:51:06 +01:00
- The `mekfInvalidCounter` now resets on setting the STR to faulty.
2023-03-24 21:34:03 +01:00
- Improve the SD lock handling. The file handling does not need to be locked as it
2023-03-24 21:36:31 +01:00
is only handled by one thread.
2023-03-23 10:51:06 +01:00
2023-03-15 09:38:31 +01:00
## 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).
2023-03-22 10:38:41 +01:00
- STR: Fix weird issues on datalink layer data reception which sometimes occur.
2023-03-24 02:34:38 +01:00
- Syrlinks FDIR: Fully allow FDIR to do more recoveries. Assembly should take care of preventing
the switch to go off.
2023-03-24 21:10:59 +01:00
- Allow dual lane assembly side switches.
2023-03-22 10:38:41 +01:00
2023-03-23 12:14:46 +01:00
## Changed
2023-03-24 13:28:27 +01:00
- Rework FSFW OSALs to properly support regular scheduling (NICE priorities) and real-time
scheduling.
2023-03-22 10:38:41 +01:00
- 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.
2023-03-23 12:14:46 +01:00
- TCS: Local pool variables are members now.
2023-03-24 02:34:38 +01:00
- 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.
2023-03-24 21:08:44 +01:00
- Change project structure to be more subsystem centric for ACS and COM.
2023-03-23 12:14:46 +01:00
2023-03-22 21:33:35 +01:00
# [v1.39.1] 2023-03-22
2023-03-21 23:56:59 +01:00
## Fixed
- Bugfix for STR: Some action commands wrongfully declined.
2023-03-22 00:00:32 +01:00
- STR: No normal command handling while a special request like an image upload is active.
2023-03-22 21:33:35 +01:00
- RS485 data line was not enabled when the transmitter was switched on.
2023-03-21 23:56:59 +01:00
2023-03-21 23:32:41 +01:00
# [v1.39.0] 2023-03-21
2023-03-21 12:56:22 +01:00
Requires firmware update for new FPGA design where reset line is routed into the software.
2023-03-21 23:32:41 +01:00
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
2023-03-21 12:56:22 +01:00
2023-03-21 23:45:25 +01:00
eive-tmtc: v2.19.3
2023-03-15 09:38:31 +01:00
## 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.
2023-03-20 18:02:59 +01:00
- Contingency handling for non-working I2C bus bug. Reboot the system if the I2C is not working.
2023-03-20 13:09:28 +01:00
## 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.
2023-03-18 14:50:34 +01:00
## Changed
2023-03-20 17:53:33 +01:00
- 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.
2023-03-20 15:50:50 +01:00
- Updated GYR bias values to newest measurements. This also corrects the ADIS values to always
consit of just one digit.
2023-03-18 14:50:34 +01:00
- 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.
2023-03-21 12:55:39 +01:00
- Connect and handle reset line for the PTME core in the software now.
2023-03-21 13:25:22 +01:00
- Safe mode controller failure event now only triggers once per minute.
2023-03-18 14:50:34 +01:00
2023-03-17 18:08:08 +01:00
# [v1.38.0] 2023-03-17
eive-tmtc: v2.19.2
2023-03-17 16:19:04 +01:00
## Fixed
- SA deployment file handling: Use exceptionless API.
- Fix deadlock in SD card manager constructor: Double lock of preferred SD card lock.
2023-03-15 10:08:58 +01:00
## 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.
2023-03-15 10:38:00 +01:00
## Changed
- Telemetry relevant datasets for the RWs are now set invalid and partially reset on shotdown.
2023-03-15 11:32:58 +01:00
- 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.
2023-03-15 11:42:03 +01:00
- Bump FSFW: merged upstream.
2023-03-17 16:27:00 +01:00
- Move BPX battery scheduling to ACS PST to avoid clashes with IMTQ scheduling / polling
2023-03-15 10:38:00 +01:00
2023-03-14 20:02:27 +01:00
# [v1.37.2] 2023-03-14
- Changed `PoolManager` bugfix implementation in the FSFW.
- Some tweaks for IPC and TM store configuration
2023-03-14 18:44:50 +01:00
# [v1.37.1] 2023-03-14
This version works on the EM as well.
eive-tmtc: v2.19.1
2023-03-12 20:51:33 +01:00
## Added
- Added `EXECUTE_SHELL_CMD` action command for `CoreController` to execute arbitrary Linux commands.
2023-03-14 13:12:42 +01:00
- Added some missing PLOC commands.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/462
2023-03-14 13:07:22 +01:00
- Add `PcduHandlerDummy` component.
2023-03-14 13:19:48 +01:00
- Added parameter for timeout until `MEKF_INVALID_MODE_VIOLATION` event is triggered.
2023-03-12 20:51:33 +01:00
2023-03-13 10:05:54 +01:00
## 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.
2023-03-13 11:36:10 +01:00
- The Syrlinks task now has a proper name instead of `MAIN_SPI`.
2023-03-14 13:04:56 +01:00
- 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.
2023-03-14 14:06:33 +01:00
- Store more TCP und UDP packets.
2023-03-14 16:52:03 +01:00
- 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.
2023-03-13 10:05:54 +01:00
2023-03-14 13:07:22 +01:00
## Changed
- Set `OBSW_ADD_TCS_CTRL` to 1. Always add TCS controller now for both EM and FM.
2023-03-14 15:30:26 +01:00
- generators module: Bump `fsfwgen` dependency to v0.3.1. The returnvalue CSV files are now sorted.
2023-03-14 17:12:05 +01:00
- generators module: Always generate subsystem ID CSV files now.
2023-03-14 18:41:11 +01:00
- 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.
2023-03-14 13:32:13 +01:00
- Initialize switch states to a special `SWITCH_STATE_UNKNOWN` (2) variable. Return
2023-03-14 14:03:27 +01:00
`PowerSwitchIF::SWITCH_UNKNOWN` in switch state getter if this is the state.
2023-03-14 13:32:13 +01:00
- Wait 1 second before commanding SAFE mode. This ensures or at least increases the chance that
the switch states were initialized.
2023-03-14 13:56:19 +01:00
- Dual Lane Assemblies: The returnvalues of the dual lane power state machine FSM are not ignored
anymore.
2023-03-14 13:32:13 +01:00
2023-03-11 15:09:31 +01:00
# [v1.37.0] 2023-03-11
2023-03-11 15:24:43 +01:00
eive-tmtc: v2.18.1
2023-03-11 15:09:31 +01:00
2023-03-07 11:13:00 +01:00
## Added
2023-03-07 11:13:00 +01:00
- `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`.
2023-03-10 11:39:31 +01:00
- `AcsController` will now never command a RW speed larger than the maximum allowed speed.
2023-03-07 11:13:00 +01:00
2023-03-09 16:52:47 +01:00
## Fixed
2023-03-09 19:44:24 +01:00
- `PAPB_EMPTY_SIGNAL_VC1` GPIO was not set up properly.
2023-03-09 16:52:47 +01:00
- Fix for heater names: HPA heater (index 7) is now the Syrlinks heater.
2023-03-07 10:36:00 +01:00
- `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.
2023-03-10 10:29:27 +01:00
- Instead of updating the `idleModeControllerParameters`, the `targetModeControllerParameters`
were updated.
2023-03-07 10:36:00 +01:00
- 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.
2023-03-07 13:57:45 +01:00
- 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.
2023-03-07 14:15:33 +01:00
- Solved naming collision between file used for solar array deployment and confirmation for
ACS for solar array deployment.
2023-03-10 17:31:12 +01:00
- Fixed that scaling of RW torque would result in a zero vector unless the maximum value was exceeded.
2023-03-11 10:22:21 +01:00
- Bias for the GYR data was substracted within the wrong rf (sensor rf vs body rf).
2023-03-09 16:52:47 +01:00
2023-03-10 11:18:34 +01:00
## Changed
2023-03-10 18:17:04 +01:00
- 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
2023-03-07 10:36:00 +01:00
- The `detumbleCounter` now does not get hard reset anymore, if the critical rate does not get
violated anymore. Instead it is incrementally reset.
2023-03-10 17:21:52 +01:00
- The RW antistiction now only takes the RW speeds in account.
2023-03-10 15:21:36 +01:00
- ACS CTRL transition to DETUBMLE is now done in CTRL internally. No
system level handling necessary anymore.
2023-03-10 11:18:34 +01:00
- 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.
2023-03-10 11:16:02 +01:00
- Request raw MTM measurement twice for IMTQ, might reduce number of times measurement could not
be retrieved.
2023-03-10 14:59:52 +01:00
- Event manager and event service have larger queues now: 45 -> 120 for Service 5, 80 -> 120 for
2023-03-10 15:01:59 +01:00
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.
2023-03-10 11:18:34 +01:00
2023-03-08 19:17:24 +01:00
# [v1.36.0] 2023-03-08
2023-03-08 19:20:18 +01:00
eive-tmtc: v2.17.2
2023-03-08 11:37:11 +01:00
## Added
2023-03-06 15:58:19 +01:00
2023-03-06 15:56:37 +01:00
- Star Tracker Assembly
2023-03-08 11:37:11 +01:00
- 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.
2023-03-07 17:08:33 +01:00
## Changed
2023-03-07 15:34:08 +01:00
- Persistent TM stores will now create new files on each reboot.
- Fast ACS subsystem commanding: Command SUS board consecutively with other devices now
2023-03-07 18:55:11 +01:00
- Star Tracker: Use ground confguration for EM and flight config for FM by default.
2023-03-07 15:34:08 +01:00
2023-03-07 14:20:42 +01:00
## Fixed
2023-03-08 18:59:22 +01:00
- Command TCS controller off first for TCS subsystem transition to off.
- Health handling for TCS board assembly
2023-03-08 18:12:37 +01:00
- 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.
2023-03-08 14:50:25 +01:00
- `std::filesystem` API usages: Avoid exceptions by using variants which return an error code
instead of throwing exceptions.
2023-03-07 21:07:58 +01:00
- GPS fix loss was not reported if mode is unset.
2023-03-08 01:24:41 +01:00
- 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.
2023-03-07 14:20:42 +01:00
- Allow arbitrary submodes for dual lane boards to avoid FDIR reactions of subsystem components.
Bump FSFW to allow this.
2023-03-07 15:34:34 +01:00
- PUS 15 was not scheduled
2023-03-08 18:12:37 +01:00
- 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.
2023-03-06 15:56:37 +01:00
- ACS system components are now always scheduled (EM specific)
2023-03-06 15:58:19 +01:00
2023-03-06 14:42:23 +01:00
# [v1.35.1] 2023-03-04
2023-03-03 17:06:32 +01:00
## 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
2023-03-06 14:42:23 +01:00
- Watchdog fixes
- IMTQ timing fixes
## Added
- Add IMTQ assembly
2023-03-03 17:06:32 +01:00
2023-03-04 17:19:36 +01:00
# [v1.35.0] 2023-03-04
eive-tmtc: v2.16.4
2023-03-04 17:12:56 +01:00
## 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.
2023-03-04 12:01:15 +01:00
## Fixed
- Bumped FSFW: `Countdown` and `Stopwatch` use new monotonic clock API now.
2023-03-04 17:09:24 +01:00
- IMTQ: Various fixes, most notably missing buffer time after starting MGM measurement
and corrections for actuator commanding.
2023-03-04 17:09:51 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/430
2023-03-04 12:01:15 +01:00
2023-03-03 16:45:25 +01:00
# [v1.34.0] 2023-03-03
2023-03-03 16:52:38 +01:00
eive-tmtc: v2.16.3
2023-03-03 16:45:25 +01:00
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.
2023-03-02 09:02:49 +01:00
## Changed
2023-02-23 23:56:11 +01:00
- The SD card prefix is now set earlier inside the `CoreController` constructor
- The watchdog handling was moved outside the `CoreController` into the main loop.
2023-03-02 09:02:49 +01:00
- Moved polling of all SPI parts to the same PST.
2023-03-02 14:43:50 +01:00
- Allow quicker transition for the EIVE system component by allowing consecutive TCS and ACS
component commanding again.
2023-03-02 15:44:07 +01:00
- Changed a lot of lock guards to use timeouts
2023-03-03 16:06:38 +01:00
- Queue sizes of TCP/UDP servers increased from 20 to 50
2023-03-03 16:49:21 +01:00
- Significantly simplified and improved lock guard handling in TCS and ACS board polling
tasks.
2023-03-02 09:02:49 +01:00
2023-03-02 14:42:42 +01:00
## Fixed
- IMTQ: Sets were filled with wrong data, e.g. Raw MTM was filled with calibrated MTM measurements.
2023-03-02 14:46:20 +01:00
- Set RM3100 dataset to valid.
2023-03-02 17:53:59 +01:00
- Fixed units in calculation of ACS control laws safe and detumble.
2023-03-03 14:36:52 +01:00
- Bump FSFW for change in Countdown: Use system clock instead of reading uptime from file
to prevent possible race condition.
2023-03-03 16:49:21 +01:00
- 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
2023-03-02 14:42:42 +01:00
2023-03-02 15:05:12 +01:00
## Added
- Added Syrlinks Assembly object to allow recovery handling and to fix faulty FDIR behaviour.
2023-03-02 14:42:42 +01:00
2023-03-03 16:45:25 +01:00
# [v1.33.0] 2023-03-01
2023-03-01 18:40:05 +01:00
eive-tmtc: v2.16.2
2023-02-26 14:55:33 +01:00
## Changed
- Move ACS board polling to separate worker thread.
2023-03-01 18:10:16 +01:00
- Move SUS board polling to separate worker thread.
2023-02-26 14:55:33 +01:00
2023-02-26 18:21:05 +01:00
## 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
2023-03-03 16:45:25 +01:00
# [v1.32.0] 2023-02-24
2023-02-24 19:13:00 +01:00
eive-tmtc: v2.16.1
2023-02-24 01:09:40 +01:00
## Fixed
- ADIS1650X: Added missing MDL_RANG pool entry for configuration set
2023-02-24 14:52:35 +01:00
- Bumped FSFW for bugfix in health service: No execution complete for targeted health announce
command.
2023-02-24 15:48:04 +01:00
- 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
2023-02-24 16:52:37 +01:00
- Bumped FSFW for bugfix in destination handler: Better error handling and able to process
destination folder path.
2023-02-24 15:48:04 +01:00
## Changed
2023-02-24 19:03:03 +01:00
- 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
2023-02-24 15:48:04 +01:00
- 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
2023-02-24 19:03:03 +01:00
- 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.
2023-02-24 15:48:04 +01:00
## Added
2023-02-24 19:03:03 +01:00
- 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
2023-02-24 11:12:16 +01:00
- `ExecutableComIfDummy` class to have a dummy for classes like the RTD polling class.
2023-02-24 15:48:04 +01:00
- 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
2023-02-24 01:09:40 +01:00
2023-03-03 16:45:25 +01:00
# [v1.31.1] 2023-02-23
2023-02-23 18:53:29 +01:00
2023-02-23 18:51:31 +01:00
## 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
2023-02-23 19:51:07 +01:00
- ACS Controller: Correction for size of MEKF dataset and some optimization and fixes
for actuator control which lead to a crash.
2023-02-23 18:51:31 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/403
2023-03-03 16:45:25 +01:00
# [v1.31.0] 2023-02-23
2023-02-23 15:32:40 +01:00
2023-02-23 15:46:53 +01:00
eive-tmtc: v2.16.0
2023-02-23 15:14:56 +01:00
## 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
2023-02-22 16:00:28 +01:00
## Changed
2023-02-22 19:48:44 +01:00
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)
2023-02-22 16:00:28 +01:00
- 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
2023-02-22 16:00:28 +01:00
## 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`
2023-03-03 16:45:25 +01:00
# [v1.30.0] 2023-02-22
2023-02-22 15:03:07 +01:00
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
2023-03-03 16:45:25 +01:00
# [v1.29.1] 2023-02-21
2023-02-21 11:39:56 +01:00
2023-02-21 11:32:51 +01:00
## 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
2023-02-21 11:39:56 +01:00
- Disable stopwatch in MAX31865 polling task
2023-02-21 11:32:51 +01:00
2023-03-03 16:45:25 +01:00
# [v1.29.0] 2023-02-21
2023-02-21 11:29:18 +01:00
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
2023-03-03 16:45:25 +01:00
# [v1.28.1] 2023-02-21
2023-02-21 00:52:52 +01:00
2023-02-20 15:02:58 +01:00
## Fixed
2023-02-21 00:52:52 +01:00
- Patch version which compiles for EM
2023-02-20 15:02:58 +01:00
- CFDP Funnel bugfix: CCSDS wrapping was buggy and works properly now.
2023-02-20 18:35:19 +01:00
- PDEC: Some adaptions to prevent task lockups on invalid FAR states.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/393
2023-02-20 19:59:22 +01:00
- CMakeLists.txt fix which broke CI/CD builds when server could not retrieve full git SHA.
2023-02-21 02:59:28 +01:00
- 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.
2023-02-20 15:02:58 +01:00
2023-02-17 12:20:29 +01:00
## Changed
- Add `-Wshadow=local` shadowing warnings and fixed all of them
2023-02-19 13:43:18 +01:00
- Updated generated CSV files: Support for skip directive and explicit
"No description" info string
2023-02-20 20:05:53 +01:00
- The polling threads for actuator polling now have a slightly higher priority than the ACS PST
to ensure timing requirements are met.
2023-02-17 12:20:29 +01:00
2023-02-17 19:27:28 +01:00
## Added
- git post checkout hook which initializes and updates the submodules
automatically.
2023-02-17 11:18:08 +01:00
# [v1.28.0] 2023-02-17
eive-tmtc: v2.12.7
2023-02-17 09:46:20 +01:00
## 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.
2023-02-13 15:42:45 +01:00
## Changed
- Igrf13 model vector now outputs as uT instead of nT
2023-02-17 11:18:08 +01:00
- Changed timings for `AcsPst`, more time for sun sensors.
2023-02-15 15:15:30 +01:00
- Added values for MGM sensor fusion
2023-02-17 10:04:14 +01:00
- 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
2023-02-17 10:04:51 +01:00
- Bumped FSFW to allow initializing child modes in `SubsystemBase` derived objects.
2023-02-15 15:15:30 +01:00
## Fixed
2023-02-17 10:04:14 +01:00
2023-02-15 15:15:30 +01:00
- Fixed values for GYR sensor fusion
2023-02-17 09:46:20 +01:00
- Fixed speed types for `rwHandlingParameter`
- Pseudo inverse used for allocating torque to RWs and RW antistiction now actually consider the
state of the RWs
2023-02-14 18:54:43 +01:00
# [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.
2023-02-17 11:18:08 +01:00
eive-tmtc: v2.12.6
2023-02-14 18:54:43 +01:00
2023-02-08 21:40:09 +01:00
## Added
2023-02-10 12:07:45 +01:00
- Function for the ACS controller to command MTQ and RWs called by all subroutines
2023-02-10 13:17:52 +01:00
- RwHandler now handles commanding of RW speeds via RwSpeedActuationSet
- Tracing supports which allows checking whether threads are running as usual.
2023-02-08 21:40:09 +01:00
## Changed
2023-02-13 15:42:45 +01:00
- 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
2023-02-13 11:04:43 +01:00
and scales them to the appropriate range
- All RwHandler are now polled five times per ACS cycle
2023-02-14 14:27:25 +01:00
- 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
2023-02-14 13:11:52 +01:00
## Removed
- lwgps dependency not compiled anymore, is not used
2023-02-13 15:42:45 +01:00
2023-02-13 14:19:07 +01:00
# [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
2023-02-13 01:26:30 +01:00
# [v1.27.0] 2023-02-13
2023-02-13 10:07:21 +01:00
eive-tmtc: v2.12.5
2023-02-13 01:26:30 +01:00
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`
2023-02-10 14:02:27 +01:00
# [v1.26.4] 2023-02-10
eive-tmtc: v2.12.3
2023-02-10 14:09:39 +01:00
## Fixed
- `SdCardManager.cpp` `isSdCardUsable`: Use `ext4` instead of `vfat` to check read-only state.
2023-02-09 18:03:37 +01:00
# [v1.26.3] 2023-02-09
2023-02-09 18:01:55 +01:00
eive-tmtc: v2.12.2
2023-02-08 21:40:09 +01:00
## Added
2023-02-09 18:03:37 +01:00
- First version of a TCS controller heater control loop, but
the loop is disabled for now.
2023-02-08 21:40:09 +01:00
## Changed
- Reworked dummy handling for the TCS controller.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/325
2023-02-09 15:59:19 +01:00
- Generator scripts now generate files for hosted and for Q7S build.
2023-02-08 21:40:09 +01:00
2023-02-09 17:56:20 +01:00
## Fixed
- GPS Controller: Set fix value to 0 when switching off to allow
`GPS_FIX_CHANGE` to work when switching the GPS back on.
2023-02-08 21:22:07 +01:00
# [v1.26.2] 2023-02-08
2023-02-08 16:46:30 +01:00
## 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.
2023-02-08 20:40:53 +01:00
- Replaced chained locks for polling new sensor data to the `AcsController`.
- Made TM store even larger.
2023-02-08 16:46:30 +01:00
2023-02-08 20:06:15 +01:00
## 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
2023-02-08 21:22:07 +01:00
- Bumped FSFW for fix of possible memory leaks in TCP/IP TMTC bridge
inside the FSFW.
2023-02-08 20:06:15 +01:00
2023-02-08 20:40:53 +01:00
## Added
- Create TCS controller for EM build.
2023-02-08 15:02:56 +01:00
# [v1.26.1] 2023-02-08
- Initialize parameter helper in ACS controller.
2023-02-08 14:52:11 +01:00
# [v1.26.0] 2023-02-08
eive-tmtc v2.12.1
2023-02-07 13:58:41 +01:00
## Changed
2023-02-07 09:46:19 +01:00
2023-02-08 14:11:49 +01:00
### ACS
2023-02-08 13:23:05 +01:00
- Readded calibration matrices for MGM calibration.
2023-02-08 13:21:49 +01:00
- 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
2023-02-07 13:58:41 +01:00
which `sunTargetSafe` to use
2023-02-08 13:21:49 +01:00
- 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
2023-02-07 13:58:41 +01:00
- `domainId` is now used as identifier for parameter structs
2023-02-08 13:21:49 +01:00
- Changed onboard GYR value handling from deg/s to rad/s
2023-02-07 13:58:41 +01:00
## Fixed
2023-02-07 19:40:32 +01:00
2023-02-08 11:08:38 +01:00
- 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.
2023-02-07 19:40:32 +01:00
- 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.
2023-02-08 01:32:18 +01:00
- Bump FSFW for important fix in PUS mode service.
2023-02-08 14:11:49 +01:00
### ACS
2023-02-08 13:23:05 +01:00
- Bugfixes in 'SensorProcessing' where previously MGM values would be calibrated before being
2023-02-07 09:46:19 +01:00
transformed in body RF. However, the calibration values are in the body RF. Also fixed the
validity flag of 'mgmVecTotDerivative'.
2023-02-08 13:21:49 +01:00
- 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
2023-02-07 13:58:41 +01:00
2023-02-06 20:19:08 +01:00
# [v1.25.0] 2023-02-06
eive-tmtc version: v2.12.0
2023-02-06 20:15:45 +01:00
## Changed
- Updated Subsystem mode IDs to avoid clashes with regular device handler modes.
2023-02-06 09:20:20 +01:00
## Fixed
- `GpsHyperionLinuxController`: Fix `gpsd` polling by continuously calling `gps_read` in one cycle
2023-02-06 10:24:13 +01:00
until it does not have any data left anymore. Also, the data is now polled in a permanent loop,
2023-02-06 10:22:28 +01:00
where controller handling is done on 0.2 second timeouts.
2023-02-06 09:20:20 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/368
2023-02-03 16:43:53 +01:00
# [v1.24.0] 2023-02-03
- eive-tmtc v2.10.0
2023-02-03 14:21:36 +01:00
- `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`.
2023-02-03 14:23:39 +01:00
- Set GPS set entries to invalid on MODE_OFF command.
2023-02-03 16:08:34 +01:00
- Bump FSFW for bugfix in `setNormalDatapoolEntriesInvalid` where the validity was not set to false
properly
2023-02-03 16:11:28 +01:00
- 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
2023-02-03 16:08:34 +01:00
- 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.
2023-02-03 14:23:39 +01:00
## Changed
2023-02-02 17:16:15 +01:00
- Update ACS scheduling to represent the actual ACS design. There is one ACS PST now for all
2023-02-07 18:10:48 +01:00
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.
2023-02-02 17:16:15 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365
2023-02-03 16:08:34 +01:00
- `ACS::SensorValues` is now an ACS controller member to reduce the risk of stack overflow.
2023-02-03 14:23:39 +01:00
- 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
2023-02-03 14:21:36 +01:00
2023-02-02 18:37:56 +01:00
# [v1.23.1] 2023-02-02
TMTC rev: 15adb9bf2ec68304a4f87b8dd418c1a8353283a3
2023-02-01 20:47:50 +01:00
## Fixed
- Bugfix in FSFW where the sequence flags of the PUS packets were set to continuation segment (0b00)
instead of unsegmented (0b11).
2023-02-02 18:37:56 +01:00
- 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
2023-02-01 20:47:50 +01:00
2023-02-01 20:20:08 +01:00
# [v1.23.0] 2023-02-01
2022-04-21 14:18:41 +02:00
2023-02-01 20:20:08 +01:00
TMTC version: v2.9.0
2023-02-01 19:43:38 +01:00
2023-02-01 17:44:45 +01:00
## Changed
- Bumped FSFW to include improvements and bugfix for Health Service. The health service now
supports the announce all health info command.
2023-02-01 18:44:00 +01:00
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/725
2023-02-01 17:44:45 +01:00
2023-02-01 13:43:29 +01:00
## Fixed
2023-02-01 18:44:00 +01:00
- 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
2023-02-01 13:43:29 +01:00
2023-01-30 14:35:31 +01:00
# [v1.22.1] 2023-01-30
2023-01-30 14:25:50 +01:00
## Changed
- Updated FSFW to include addition where the `SO_REUSEADDR` option is set
on the TCP server, which should improve its ergonomics.
2023-01-28 14:55:41 +01:00
# [v1.22.0] 2023-01-28
2023-01-28 15:02:35 +01:00
TMTC version: v2.6.1
2023-01-28 14:55:41 +01:00
## 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
2023-01-28 14:55:41 +01:00
- 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
2023-01-26 20:04:50 +01:00
# [v1.21.0] 2023-01-26
2023-01-26 20:53:36 +01:00
TMTC version: v2.5.0
Syrlinks PR: PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/353
2023-01-25 13:47:29 +01:00
## Fixed
2023-01-24 19:48:20 +01:00
2023-01-24 19:47:30 +01:00
- The `OBSW_SYRLINKS_SIMULATED` flag is set to 0 for for both EM and FM.
2023-01-25 13:47:29 +01:00
- MGM4 handling in ACS sensor processing: Bugfix in `mulScalar` operation
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/354
2023-01-26 16:22:15 +01:00
- Subsystem ID clash: CORE subsystem ID was the same as Syrlinks subsystem ID.
2023-01-24 19:48:20 +01:00
## Changed
2023-01-24 13:18:29 +01:00
- Startracker temperature set and PCDU switcher set are diagnostic now
2023-01-24 19:48:20 +01:00
- `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.
2023-01-26 13:02:29 +01:00
- `SyrlinksHandler`: Go to startup immediately because the Syrlinks device should always be on
by default.
- `SyrlinksHandler`: Go to normal mode at startup.
2023-01-24 19:48:20 +01:00
## 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).
2023-01-26 14:39:23 +01:00
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.
2023-01-26 16:45:28 +01:00
- 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
2023-01-24 19:47:30 +01:00
- 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
2023-01-24 13:18:29 +01:00
2023-01-24 12:30:23 +01:00
# [v1.20.0] 2023-01-24
2023-01-13 13:16:26 +01:00
## Added
2023-01-20 14:25:21 +01:00
- The Q7S SW now checks for a file named `boot_delay_secs.txt` in the home directory.
2023-01-13 13:16:26 +01:00
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.
2023-01-23 11:55:49 +01:00
- Basic TCS Subsystem component.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/319
2023-01-24 12:25:16 +01:00
- Expose base set of STR periodic housekeeping packets
2023-01-13 11:21:02 +01:00
## Changed
2023-01-23 11:55:49 +01:00
- Moved some PDEC/PTME configuration to `common/config/eive/definitions.h`
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/319
2023-01-18 16:10:14 +01:00
- The ACS Controller Gyro Sets (raw and processed) and the MEKF dataset are diagnostics now.
2023-01-13 11:21:02 +01:00
- Bumped FSFW for Service 11 improvement which includes size and CRC check for contained TC
2023-01-18 12:58:45 +01:00
- Syrlinks module now always included for both EM and FM
2023-01-20 12:24:19 +01:00
- 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.
2023-01-20 12:25:14 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/347
2023-01-20 12:26:45 +01:00
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
2023-01-13 11:21:02 +01:00
2023-01-18 14:24:17 +01:00
## 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
2023-01-23 16:07:51 +01:00
- `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
2023-01-18 14:24:17 +01:00
2023-01-20 14:25:21 +01:00
# [v1.19.0] 2023-01-10
2023-01-10 16:23:54 +01:00
2023-01-10 15:41:09 +01:00
## Changed
- 5V stack is now off by default
2022-12-23 12:18:44 +01:00
## Fixed
- PLOC SUPV: Minor adaptions and important bugfix for UART manager
2023-01-09 16:03:04 +01:00
- 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
2022-12-23 12:18:44 +01:00
## Added
- First version of ACS controller
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/329
2022-12-21 13:44:48 +01:00
- Allow commanding the 5V stack internally in software
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/334
2022-12-22 14:37:25 +01:00
- Add automatic 5V stack commanding for all connected devices
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/335
2023-01-20 14:25:21 +01:00
# [v1.18.0] 2022-12-01
2022-04-21 14:18:41 +02:00
2022-11-28 18:23:55 +01:00
## Changed
- PLOC Supervisor: Changes baudrate to 921600
2022-11-29 11:07:02 +01:00
- 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`.
2022-11-29 11:08:34 +01:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/328
2022-12-01 15:58:39 +01:00
2023-01-20 14:25:21 +01:00
# [v1.17.0] 2022-11-28
2022-11-28 18:23:55 +01:00
2022-11-18 14:26:40 +01:00
## Added
- PLOC Supervisor Update: Update SW to use newest PLOC SUPV version by TAS
2022-11-28 16:33:50 +01:00
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
2022-11-18 14:26:40 +01:00
2023-01-20 14:25:21 +01:00
# [v1.16.0] 2022-11-18
2022-11-18 14:22:00 +01:00
2022-11-15 13:41:39 +01:00
- 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
2022-11-04 08:37:59 +01:00
- 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
2022-11-02 10:58:40 +01:00
- Extended TM funnels to allow multiple TM recipients.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/312
2022-11-03 15:34:07 +01:00
- DHB: Transitions to normal mode now possible directly, which simplifies subsystem implementations
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/313
2022-11-03 15:35:32 +01:00
- 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
2022-11-11 16:26:16 +01:00
- Add remaining missing TMP1075 device handlers.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/318
2022-11-02 10:59:21 +01:00
2023-01-20 14:25:21 +01:00
# [v1.15.0] 2022-10-27
2022-10-27 08:56:20 +02:00
- Consistent device file naming
2022-10-27 09:00:21 +02:00
- 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
2022-10-27 09:02:55 +02:00
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
2022-10-27 09:08:26 +02:00
- P60 Module: Reduce number of set IDs, use same set IDs for core, auxiliary
and config HK set across the three PCDU modules
2022-10-27 08:56:20 +02:00
2022-10-27 09:11:10 +02:00
# [v1.14.1] 11.10.2022
2022-10-11 23:10:09 +02:00
- 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
2022-10-27 09:11:10 +02:00
# [v1.14.0] 10.10.2022
2022-08-24 16:38:38 +02:00
2022-09-28 10:05:36 +02:00
- 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
2022-08-24 17:35:06 +02:00
- Update for FSFW: `HasReturnvaluesIF` class replaced by namespace `returnvalue`
2022-08-27 16:04:55 +02:00
- 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
2022-09-02 13:16:56 +02:00
- 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
2022-09-15 11:38:29 +02:00
- Fix for EM SW: Always create ACS Task
2022-09-27 19:22:06 +02:00
- Added Scex device handler and Scex uart reader
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/303
2022-10-10 17:44:28 +02:00
- ACS Subsystem. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/228
2022-08-24 17:35:06 +02:00
2022-08-24 16:38:38 +02:00
# [v1.13.0] 24.08.2022
2022-08-16 16:45:14 +02:00
- Added first version of ACS Controller with gathers MGM data in a set
2022-08-24 16:38:38 +02:00
- Some tweaks for IMTQ handler
2022-08-16 16:45:14 +02:00
2022-07-05 02:14:32 +02:00
# [v1.12.1] 05.07.2022
- Disable periodic TCS controller HK generation by default
2022-07-04 11:13:26 +02:00
# [v1.12.0] 04.07.2022
2022-05-05 16:49:10 +02:00
2022-05-07 12:54:25 +02:00
## Added
2022-07-04 11:13:26 +02:00
- 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
2022-05-24 15:22:45 +02:00
- PUS11 TC scheduler
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/259
2022-05-24 01:14:47 +02:00
- Regular reboot command
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/242
2022-05-23 17:52:44 +02:00
- Commands for individual RTD devices
PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/84
2022-05-11 01:50:49 +02:00
- `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
2022-05-07 12:54:25 +02:00
- 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
2022-05-07 12:55:48 +02:00
- 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
2022-05-07 12:54:25 +02:00
2022-05-23 18:39:13 +02:00
## Fixed
- `q7s-cp.py` bugfix
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/256
2022-07-04 11:13:26 +02:00
- Generator scripts output now produce platform-independent artifacts
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/267
2022-05-23 18:39:13 +02:00
2022-05-13 09:35:47 +02:00
### 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
2022-05-05 16:55:51 +02:00
## Changed
2022-05-05 16:49:10 +02:00
2022-07-04 11:13:26 +02:00
- 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
2022-05-05 16:49:10 +02:00
- 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
2022-05-05 16:55:51 +02:00
- Better RTD names denoting their purpose (and location consequently)
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/246
2022-05-05 16:49:10 +02:00
2022-04-21 14:18:41 +02:00
# [v1.11.0]
2022-05-03 11:34:47 +02:00
## Fixed
- Host build working again
2022-04-28 13:08:19 +02:00
## Added
2022-04-28 17:54:47 +02:00
- Custom Syrlinks FDIR which disabled most of the default FDIR functionality
2022-05-03 12:51:34 +02:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/232
2022-05-03 11:33:07 +02:00
- Custom Gomspace FDIR which disabled most of the default FDIR functionality
2022-04-28 17:54:47 +02:00
- Custom Syrlinks FDIR which disabled most of the default FDIR functionality
2022-04-28 13:08:19 +02:00
2022-04-21 14:18:41 +02:00
## Changed
2022-04-22 10:59:43 +02:00
- PCDU handler only called once in PST, but can handle multiple messages now
2022-05-03 12:51:34 +02:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/221
Bugfix: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/235
2022-04-21 14:18:41 +02:00
- Update rootfs base of Linux, all related OBSW changes
2022-04-21 14:21:02 +02:00
- Add `/usr/local/bin` to PATH. All shell scripts are there now
2022-04-28 11:37:06 +02:00
- Add Syrlinks and TMP devices to Software by default
2022-05-03 11:33:07 +02:00
- 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
2022-05-04 14:12:35 +02:00
- 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
2022-04-21 14:18:41 +02:00
2022-05-03 12:51:34 +02:00
### 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
2022-05-03 12:48:30 +02:00
### EM and FM splitup & Build Workflow improvements
2022-05-03 12:51:34 +02:00
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/238
2022-05-03 12:48:30 +02:00
- 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`
2022-04-21 14:18:41 +02:00
2022-04-22 16:16:25 +02:00
# [v1.10.1]
Version bump
2022-04-21 14:18:41 +02:00
# [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)