source issueshttps://git.ksat-stuttgart.de/groups/source/-/issues2021-10-17T15:34:15Zhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/30SPI FDIR (CS Control in case of SEL)2021-10-17T15:34:15ZLuc RajerSPI FDIR (CS Control in case of SEL)Recommendation from ESA regarding SELs in SPI Devices:
- All pins to device should be powered down
- Especially CS pin, since it is high inactive
- CS pin can hold latchup even tough it is high impedance
- Therefore Software FDIR should...Recommendation from ESA regarding SELs in SPI Devices:
- All pins to device should be powered down
- Especially CS pin, since it is high inactive
- CS pin can hold latchup even tough it is high impedance
- Therefore Software FDIR should either pull CS pin low or disconnect it if lachtup is detectedhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/29RS485 and USLP improvements2021-10-06T17:31:18ZLuc RajerRS485 and USLP improvementsThings to be done:
- Check if AT91 is configured MSB or LSB first UART
- Unit Tests for generic USLP componentsThings to be done:
- Check if AT91 is configured MSB or LSB first UART
- Unit Tests for generic USLP componentsLuc RajerLuc Rajerhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/27Implementation of CFDP2021-06-24T07:03:15ZRobin MuellerImplementation of CFDPCFDP (CCSDS File Delivery Protocol) will be required for both SOURCE and EIVE. It would make sense to implement it in a generic way so both missions can use it.
Some inititial analysis was performed
- It would make most sense to implem...CFDP (CCSDS File Delivery Protocol) will be required for both SOURCE and EIVE. It would make sense to implement it in a generic way so both missions can use it.
Some inititial analysis was performed
- It would make most sense to implement CFDP on top of SPP (Space Packet Protocol) already used by PUS and use a dedicated APID
Next steps (OBSW):
- Implement dummy `CfdpDistributor` in `fsfw/tcdistribution`, which registers itself to the CCSDS distributor with an APID specified by the user in the constructor. This class simply forwards packets to the CFDP handler. The object ID to the CFDP handler should be set here as well. (maybe new CfdpHandlerIF would be good as well?). Unless there is more than one CFDP handler, which I can not really imagine on small satellites, no internal map should be necessary and only one receiver is cached.
- Implement dummy CfdpHandler in `fsfw/filesystem`, might possibly implement `CfdpHandlerIF`. This is empty at first and simply prints that a packet has been received
Next steps (Client / Python)
- Implement basic CFDP stack in [Python](https://github.com/rmspacefish/tmtccmd) . CFDP will build on the Space Packet Protocol and the SPP is already implemented in Python. However, the current stack implementation assumed that SPPs will always be PUS packets, so refactoring might be necessary here.
- Send an empty CFDP packet to OBSW, verify printout
- I'd prefer a generic CFDP module which is part of `tmtccmd` but detached so it could be extracted into a separate library with the PUS stack. Peeking is possible: https://gitlab.com/librecube/prototypes/python-cfdp
Documents:
[CCSDS_FileDeliveryProtocol.pdf](/uploads/4b04c992914928ae605dbe075824641b/CCSDS_FileDeliveryProtocol.pdf)
[Overview_SpaceCommunicationProtocols.pdf](/uploads/fb3d32a38e153cd86d7d040cc722b9c9/Overview_SpaceCommunicationProtocols.pdf)Matthias TompertMatthias Tomperthttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/26Time Synchronization with PPS2021-03-03T17:28:13ZRobin MuellerTime Synchronization with PPSThe ISIS clock is synchronized with a RTT but only offers second accuracy. To get
a MS time source which is also synchronized, we need a synchronization mechanism on a PPS pin.
I don't know how trivial or difficult it is to implement t...The ISIS clock is synchronized with a RTT but only offers second accuracy. To get
a MS time source which is also synchronized, we need a synchronization mechanism on a PPS pin.
I don't know how trivial or difficult it is to implement this but this is a possible task.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/25Execute Before Flight Sequence2021-05-16T20:23:18ZRobin MuellerExecute Before Flight SequenceThere are certain values in the FRAM which should be set before flight.
Also, both SD cards should have the same generic structure and a full set of images with corresponding ECC Hamming codes.
Therefore, it would make sense to create a...There are certain values in the FRAM which should be set before flight.
Also, both SD cards should have the same generic structure and a full set of images with corresponding ECC Hamming codes.
Therefore, it would make sense to create a list of necessary operations to set up the non-volatile memory before flight.https://git.ksat-stuttgart.de/source/tmtccmd/-/issues/4Replace PyCharm run configurations with an IDE agnostic method2021-02-21T11:41:54ZRobin MuellerReplace PyCharm run configurations with an IDE agnostic methodThe provided PyCharm run configuration are very convenient when using PyCharm, but an IDE agnostic way to store
run configuration and information would be nice (and more extensible, and usable by the GUI).The provided PyCharm run configuration are very convenient when using PyCharm, but an IDE agnostic way to store
run configuration and information would be nice (and more extensible, and usable by the GUI).https://git.ksat-stuttgart.de/source/tmtccmd/-/issues/3Support TCP communication2021-02-21T09:33:21ZRobin MuellerSupport TCP communicationRight now, only UDP is supported. It would be nice if data could be sent via TCP as wellRight now, only UDP is supported. It would be nice if data could be sent via TCP as wellhttps://git.ksat-stuttgart.de/source/tmtccmd/-/issues/2Move this repository to github2021-02-21T11:44:19ZRobin MuellerMove this repository to githubThis module will probably be moved to github soon. It might also be pushed as a PyPi python package so it can be installed more easily.
It will either be owned by a KSat GitHub account, or by my personal account.This module will probably be moved to github soon. It might also be pushed as a PyPi python package so it can be installed more easily.
It will either be owned by a KSat GitHub account, or by my personal account.https://git.ksat-stuttgart.de/source/tmtccmd/-/issues/1Dependency inversion and proper Python packaging2021-02-21T11:18:39ZRobin MuellerDependency inversion and proper Python packagingThis project needs to be adapted to be packaged properly according to
https://packaging.python.org/tutorials/packaging-projects/ and https://stackoverflow.com/questions/1471994/what-is-setup-py
This also requires dependency inversion. ...This project needs to be adapted to be packaged properly according to
https://packaging.python.org/tutorials/packaging-projects/ and https://stackoverflow.com/questions/1471994/what-is-setup-py
This also requires dependency inversion. Instead of the current approach where the user copies the user folder content and a set of hook functions is expected and called, the user should instead pass an instance of a special base object which contains abstract functions. All of those abstract functions are the expected hook functions.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/24Iridium Handler2021-02-11T14:26:31ZRobin MuellerIridium HandlerNot implemented yet, however, the first header files were started to specify Iridium commands.Not implemented yet, however, the first header files were started to specify Iridium commands.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/23CCSDS Handler2021-02-11T14:25:45ZRobin MuellerCCSDS HandlerNot implemented yet. `CCSDSHandler` for the connected Syrlinks.Not implemented yet. `CCSDSHandler` for the connected Syrlinks.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/22PCDU Handler2021-02-11T14:24:41ZRobin MuellerPCDU HandlerHandler for PCDU Vorago (or P60?). Not implemented yet.
This requires a proper data ICD.Handler for PCDU Vorago (or P60?). Not implemented yet.
This requires a proper data ICD.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/21Payload Vorago Handler2021-02-11T14:24:22ZRobin MuellerPayload Vorago HandlerNot implemented yet.
Ideally, this requires a proper data ICD.Not implemented yet.
Ideally, this requires a proper data ICD.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/20Mode Tables2022-02-19T16:30:35ZRobin MuellerMode TablesThe mode tables are representation of the satellite modes. I think they currently exists in the form of Excel files or in ValiSpace but they need to be transformed in a form which allows to auto-generate the code required by the OBSW.The mode tables are representation of the satellite modes. I think they currently exists in the form of Excel files or in ValiSpace but they need to be transformed in a form which allows to auto-generate the code required by the OBSW.Paul Nehlichnehlich@ksat-stuttgart.dePaul Nehlichnehlich@ksat-stuttgart.dehttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/18Software Image Handler2021-06-24T07:02:05ZRobin MuellerSoftware Image HandlerParts have been written, but some important components still missing.
Architecturally, the image handler has 2 primary modes:
Image Copying Engine:
- There are 3 binary slots per SD card. Implement and/or test command to replace one slo...Parts have been written, but some important components still missing.
Architecturally, the image handler has 2 primary modes:
Image Copying Engine:
- There are 3 binary slots per SD card. Implement and/or test command to replace one slot with another (e.g overwrite primary slot with update)
Scrubbing Engine:
- Implement scrubbing of NOR-Flash image using sent hamming code
- Implement scrubbing of SD-Card image using sent hamming code
- Optionally: Automatic periodic scrubbing?Hannes DeichmannHannes Deichmannhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/17SD Card Access2021-04-19T12:12:00ZRobin MuellerSD Card AccessThe HCC library is able to support multi-task operations on SD-Card. However, only one SD-Card can be active at a time.
Therefore the currently active SD-Card needs to be the same for the whole satellite. The SD Card Handler will be used...The HCC library is able to support multi-task operations on SD-Card. However, only one SD-Card can be active at a time.
Therefore the currently active SD-Card needs to be the same for the whole satellite. The SD Card Handler will be used to switch the active SD-Card with a command. If this command is registered, all active tasks using the SD-Card directly will get a notification message to yield SD-Card operations. The SD-Card handler checks up to three cycles whether all operations have ceased (by checking a counting semaphore) and if this is the case, change the active SD-Card. After that, all tasks using the SD-Card can use a getter function to check that the active SD-Card variable has changed and if this is the case, commence operation again with the changed SD-Card. On restart, the active SD-Card setting will be deduced from the preferred SD-Card variable, which is also stored in FRAM.
If file operations were going on, events will be triggered to notify ground about failed or cancelled file operations. The PLOC handler will send a special reply to the PLOC to cancel current file operations.Robin MuellerRobin Muellerhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/16PLOC Handler2020-10-16T11:20:03ZRobin MuellerPLOC HandlerStill has to be written. PLOC handler will likely use SD-Card directly to write files received by PLOC to file directly.Still has to be written. PLOC handler will likely use SD-Card directly to write files received by PLOC to file directly.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/15Sun Sensor Handler2020-12-16T12:54:48ZRobin MuellerSun Sensor HandlerHas to be implemented, hardware not ready yet.Has to be implemented, hardware not ready yet.https://git.ksat-stuttgart.de/source/sourceobsw/-/issues/12Bootloader Improvement2021-04-19T12:15:33ZRobin MuellerBootloader ImprovementSome parts have been written, some parts are missing.
1. Introduce ECC into all algorithms (hamming code generation, validation, storage..)
2. Adaption point 1: TMTC Commander calculates hamming codes and sends it as a telecommand
3. Ad...Some parts have been written, some parts are missing.
1. Introduce ECC into all algorithms (hamming code generation, validation, storage..)
2. Adaption point 1: TMTC Commander calculates hamming codes and sends it as a telecommand
3. Adaption point 2: Software is able to receive hamming code as a file. Then, it can either be kept on the SD-Card (AT91) or written to the FRAM (iOBC)
3. Adaption point 3: Hamming code is used in Software by Scrubbing engine to correct binariesRobin MuellerRobin Muellerhttps://git.ksat-stuttgart.de/source/sourceobsw/-/issues/11Core Controller Progress2020-11-16T10:40:44ZRobin MuellerCore Controller ProgressLarge parts of the core controller have been written.
Missing features:
- Implement commands (actions) to clear store pages or whole store of static stores (TM store, TC store etc.)
- Implement and test ASCII dump of run time statsLarge parts of the core controller have been written.
Missing features:
- Implement commands (actions) to clear store pages or whole store of static stores (TM store, TC store etc.)
- Implement and test ASCII dump of run time stats