QB50 ADCS CubeSupport User Manual Document Version 2.0 Status Released Date 19 July 2015 Author(s) Lourens Visagie Version history Version Status Date Comments 0.1 Draft 1.0 Release 22 October 2014 2.0 Release 19 July 2015 Approval for Release Name Date Signature Herman Steyn Manager ESL Craig Underwood Manager - SSC
Table of Contents Reference documents... 3 List of acronyms... 3 Changes from previous version... 3 1 Introduction... 4 2 Requirements... 4 3 Installation... 4 4 User Interface... 4 5 Setup... 5 5.1 GSE connection... 5 5.2 Power... 6 5.3 Connecting to the ADCS through CubeSupport... 6 5.4 Bootloader vs. ADCS Application... 6 6 Uploading new firmware... 9 7 ADCS Functionality... 10 7.1 Mode selection... 10 7.2 Sub-system Power selection... 11 7.3 ADCS commands... 11 7.3.1 Actuator commands... 11 7.3.2 Reference Attitude... 11 7.3.3 Time... 12 7.3.4 Magnetometer deployment... 12 7.4 Telemetry... 12 8 Configuration... 13 8.1 Orbit elements... 13 8.2 ADCS Configuration... 14 9 Images and Logs... 14 9.1 Images... 14 9.2 TLM log files... 15 9.3 SD card file management... 16 10 Offline functionality... 16 10.1 Telemetry log decoder... 16
10.2 Magnetometer calibration... 17 Reference documents R01 QB50 ADCS Interface Control Document, v3.2, 19 July 2015 R02 QB50 ADCS Reference Manual, v2.0, 17 July 2015 R03 QB50 ADCS Health-check Procedure, v1.0 List of acronyms Changes from previous version Change Section Updated sections dealing with firmware programming 5.4, 6 Added description about telemetry log output to UART. 7.5 & 9.2 Added magnetometer calibration and telemetry log decoding information 10
1 Introduction This manual describes the CubeSupport utility and how it is used to interface with the QB50 ADCS module. The CubeSupport application runs on a PC with Windows and interfaces to the ADCS hardware module through a USB <-> UART cable. Using the utility it is possible to exercise various ADCS functions, view telemetry and status, download files and upload new firmware. 2 Requirements In order to run the CubeSupport utility your system must meet these minimum requirements Windows XP, Vista, 7, 8.NET Framework v4.0 or higher 100MB Disk Space 512 MB RAM 1x USB 2.0 port 3 Installation The CubeSupport utility is distributed as a compressed ZIP file. To install, extract the contents to a convenient location and run the CubeSupport.exe executable file. There is no need to run an installation program. 4 User Interface The main parts of the CubeSupport user interface are shown below. After establishing a connection with the ADCS hardware through the Connection Settings part of the UI, the User Controls section will update to show the ADCS specific UI.
Connection Settings User controls Logging Figure 1 CubeSupport interface areas 5 Setup 5.1 GSE connection Before applying power to the ADCS, connect the GSE cable to the CubeComputer Debug UART. The connection should be made as per the picture below. Observe the order in which the pins on the cable are connected. (From left to right, the cable colours should be yellow, orange, black). Figure 2 GSE connection to ADCS module The other end of the GSE cable should be connected to the USB port of the PC that is running the CubeSupport program.
5.2 Power The ADCS unit should be powered through the PC104 connector as per the ICD [R01]. The pins on the PC104 header that should be supplied with power are shown below: H2 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 50 49 52 51 H1 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 50 49 52 51 PC104 Interface pins H1 47 ADCS +5V +5V ADCS supply H1 48 ADCS +3.3V +3.3V ADCS supply H1 50 GPS +3.3V GPS 3.3V supply H2 27/28 +3V3 connect to 3V3 (either switched on with H1-48 or always on) H2 29 GND Ground connection H2 30 GND Ground connection H2 32 GND Ground connection H2 45 V Bat Battery bus H2 46 V Bat Battery bus Figure 3 Power connections to ADCS module The battery bus voltage should be between 7.5V and 8.5V. 5.3 Connecting to the ADCS through CubeSupport After applying power to the ADCS unit, select the appropriate selection from the FTDI Interface selection on the Connection Settings part of the CubeSupport UI. It may be necessary to press the refresh button to update the selection. If you have only one GSE cable connected to the PC there will only be one available selection. Press the Connect button to attempt to connect to the ADCS hardware. 5.4 Bootloader vs. ADCS Application The ADCS processor makes use of a primary and secondary bootloader. The primary bootloader will be active in the first 5s after applying power. If the connection through CubeSupport is attempted within 5s of powering on the system, the bootloader will remain active and the CubeSupport UI will show the appropriate bootloader interface.
Figure 4 Primary Bootloader specific UI If no connection attempt is made after 5s, the primary bootloader will start the secondary EEPROM Bootloader, which will again be active for 5s. If during this time a connection is established to the ADCS through CubeComputer, the updated bootloader UI will be presented.
Figure 5 EEPROM Bootloader specific UI If the main ADCS program is allowed to start (after 15s or longer after reset or power-on) before attempting to connect using CubeSupport, the user interface will initialise to the main ADCS interface. The UI for the main ADCS application has a number of tabs running along the top of the User controls area. General ADCS Firmware Configuration Images and Logs Scripts Houses buttons for various reset operations, and displays telemetry about communication status and EDAC errors Houses controls for changing various ADCS modes and power settings. Displays telemetry related to ADCS Allows user to upload new firmware, and displays list of currently loaded programs (same interface as Figure 4) Allows user to change ADCS configuration settings Contains controls to capture photos and initiate TLM logging on the remote ADCS. Displays a list of files on the SD card and allows user to download files to PC Allows user to execute scripts (such as the health-check)
Figure 6 ADCS application specific UI 6 Uploading new firmware The Reference Manual [R02] describes the flash program memory structure and boot process. Using the CubeSupport interface it is possible to program new application code into the various code areas. This can be done with either the bootloader active on the ADCS, or if the main ADCS program is running, from the Firmware tab in the CubeSupport UI. The user interface for the primary bootloader is slightly different from the ADCS main program (firmware tab) and secondary EEPROM Bootloader. The primary bootloader is now no longer used to upload new applications and should only be used to reprogram the EEPROM bootloader. Uploading a new ADCS program should take place using the EEPROM bootloader. In order to place a new program into flash memory perform the following steps: 1. Power cycle the CubeComputer or perform a reset from the firmware user interface by pressing the button 2. Wait for 7-8s 3. Connect to the CubeComputer through the UART. The CubeSupport user interface should set itself up for the EEPROM bootloader interface, which looks like Figure 5. 4. From the Program index drop-down, select 1 External Flash Program 1 5. Press the button and select the CubeComputerQB50ExtSram.bin file 6. Type an appropriate description in the Description field 7. Press the button and wait for the upload process to complete
8. Press the button and wait for the process to complete 9. The Flash programs list should now display the same entries in the first two rows 10. Press the button 11. Set the drow-down to 1 Internal Flash Program and press the button 12. Request the Boot selection telemetry and verify that the following state Verify that the upload was successful by power-cycling the CubeComputer, or by pressing the button. Wait 15s before connecting to the CubeComputer UART using CubeSupport. Verify that the CubeSupport user interface is set up for the main ACP program. 7 ADCS Functionality The ADCS specific functionality of the module is exercised through the ADCS tab of the main User controls area. The ADCS Reference Manual [R02] should be consulted for detailed information about the ADCS functions. 7.1 Mode selection The ADCS Mode group of controls allows the user to place the ADCS module in a specific estimation and control state. It also allows the user the activate or de-activate the ADCS processing loop using the Run Mode setting. For any ADCS actions to be performed, or telemetry to be returned, the module has to be in the Enabled run mode. Figure 7 ADCS Mode selection controls
Certain transitions of estimation and control modes will not be allowed. See the Reference Manual [R02] for more detail. 7.2 Sub-system Power selection The default behaviour is that the ADCS program will automatically control power to sub-systems depending on control and estimation mode selections. This can be overridden through the Power Selection controls. 7.3 ADCS commands Figure 8 Power selection controls 7.3.1 Actuator commands It is possible to send explicit actuator commands to the ADCS through the CubeSupport UI. This is done from the Actuator Commands control group. Figure 9 Actuator Commands For the ADCS module to act on these commands, the run mode has to be set to Enabled, and the control mode must be None. Power to the CubeControl MCUs and Motor driver must be explicitly set to On. 7.3.2 Reference Attitude The ADCS module allows for the pitch angle to be controlled to a reference value. This reference value can be specified through the CubeSupport UI. The roll and yaw commands are ignored.
Figure 10 Reference Attitude angle commands 7.3.3 Time The CubeSupport UI allows the user to set the Unix time on the ADCS module, either to an explicit value or directly from the PCs internal clock. 7.3.4 Magnetometer deployment Figure 11 Unix time commands This function is provided to test the deployment interface. Activating the magnetometer boom deployment while the magnetometer is connected to the ADCS module will cause the magnetometer boom to deploy! The magnetometer boom deployment can be activated through the CubeSupport UI by pressing the Deploy button after selecting an appropriate time-out. Figure 12 Magnetometer deployment command 7.4 Telemetry The ADCS tab of the CubeSupport UI contains a number of telemetry panels. The UI will update the relevant panels based on a selection made by the user. The selection is made in the Telemetry Update group of controls. Figure 13 Telemetry Update selection controls The telemetry that is sampled and displayed in the CubeSupport UI is selected using the check -boxes on the left. The sampling interval is controlled through the up-down selection control. It is also possible to automatically log the sampled telemetry to file by specifying an output file with the button.
The logged telemetry should ideally be synchronized with the ADCS processing loop so that all telemetry from one sampling epoch relates to the same iteration of the processing loop. This can be achieved with the selection. The selection determines how far into the processing loop CubeSupport will wait before sampling the telemetry frames. The ADCS processing should have ended after 500ms, so anything after this will be appropriate. But bear in mind that if multiple telemetry frames are being requested it may take some time so if the sampling start offset is chosen too close to the end of the 1s period, some telemetry frames may be requested after the processing loop has ended and a new one begun. In order to return valid telemetry, the sub-system from which the telemetry is ultimately measured should be powered on. Consult the Reference Manual [R02] for more i nformation on which subsystem supplies which telemetry. 7.5 UART Telemetry Logging When interfacing to the ACP through the CubeComputer UART, frequent telemetry sampling such as described above can be avoided by setting up log output to the UART. This is the preferred way of obtaining telemetry when using the UART as communications interface. Logging to UART is enabled the same way as with telemetry logging to SD card. The Images and Logs tab is used for this (section 9.2). Once setup, log telemetry will arrive unsolicited, without the need for telemetry requests. While unsolicited UART telemetry is being received by CubeSupport, the telemetry windows on the ADCS tab of CubeSupport will automatically update. CubeSupport will also save the received telemetry to a file, the same as when telemetry is explicitly requested. While unsolicited telemetry is being received, the telemetry selection from Figure 13 will become greyed-out. 8 Configuration The ADCS configuration and orbit parameters can be adjusted through the CubeSupport UI under the Configuration tab of the main User controls area. 8.1 Orbit elements The current orbit parameters (TLEs) used by the ADCS can be obtained by requesting it. This is done by pressing the button in the SGP4 Orbit Elements heading.
TLEs may be loaded from a file or pasted directly from the clipboard using the button. Individual orbit parameters can also be adjusted using the controls under the SGP4 Orbit Elements heading. Changes are only stored to RAM on the ADCS module. In order to make the current setting permanent, press the button in the SGP4 Orbit Elements header. 8.2 ADCS Configuration The same approach applies to the ADCS configuration. Use the button in the ADCS Configuration header to load the current configuration from the ADCS module. Make changes using the controls under the ADCS Configuration header and make the changes permanent by pressing the button. Details about the configuration settings can be found in the Reference Manual [R02]. 9 Images and Logs The CubeSupport UI allows the user to capture images using the CubeSense cameras and log telemetry internally and save it to the SD card on the CubeComputer. These files (TLM log files and image files) can then be downloaded to the PC. This functionality is provided on the Images and Logs tab of the main User control area. 9.1 Images Figure 14 Image Capture controls To initiate a new image capture, press either of the buttons. The checkbox specifies if a new image should be captured prior to saving it, or if the current image in the CubeSense SRAM buffer should be saved. The checkbox specifies if the image should be saved as a compressed JPG file or uncompressed BMP file. A name can be specified for the destination file on the SD card by typing it in the Name field. The progress of the capture operation can be checked by pressing the button next to the Progress status bar. If the status bar displays 100% and the Status field says No Error, the capture was successfully completed. or
9.2 TLM log files Figure 15 Telemetry Logging to SD card controls The ADCS can log telemetry to the SD card for future download, and to the UART for telemetry sampling by an external OBC. Logging can be initiated through the CubeSupport UI under the Logging header of the Images & Logs tab. The selection is performed by a series of checkboxes. The logging period is adjusted through the up-down selection and the log file can be named in the Name field (only applies to SD card logging). Use the and checkboxes to select whether data should be logged to UART, SD card or both. Once the logging selection is ready, activate logging by pressing the button. The ADCS will continue to log data until the button is pressed. If output to UART was selected, the output log messages will be received by CubeSupport and the ADCS telemetry tab will update automatically, and CubeSupport will save received telemetry to a CSV file.
9.3 SD card file management Figure 16 SD card file management Files on the SD card are managed under the Files on SD card heading on the Images & Logs tab. To get the current list of files on the SD card, press the button. The list will update to show all the available files. To perform an operation on a file, first select the row with the relevant file. To download the selected file to PC, press the button on the toolbar. To delete the file from the SD card, press the button. 10 Offline functionality The following offline utilities are available from the Tools menu of CubeCupport. This utilities do not require that a connection to the ADCS is established. 10.1 Telemetry log decoder Downloaded TLM log files are binary files with format as described in the Reference Manual [R02]. CubeSupport includes a convenient utility to convert the downloaded TLM binary files into calibrated CSV files. The function is initiated by selecting the Decode Telemetry Log menu item from the Tools menu. A dialog window will appear.
Press the Load button and a file dialog will appear asking for the user to choose an input TLM file. The decoded TLM will be displayed in the table after successful load. Press the Save CSV button to save the decoded telemetry to a target CSV file. 10.2 Magnetometer calibration The magnetometer calibration utility can be used to calculate updated calibration values from in-flight magnetometer measurements. The utility is again started from the Tools menu.
The utility expects RAW magnetometer measurements in CSV file, with the following columns: Unix time(s) Channel 1 raw Channel 2 raw Channel 3 raw The data can be imported from CSV file, or by selected the appropriate columns in Excel and copying it to clipboard. Once the data has been imported successfully it will be displayed in the plot area as the red trace. To obtain the modelled equivalent, it is necessary to provide two-line-elements (TLEs) for the orbit in question. This can be done by importing a text file or by copying the TLE strings to clipboard. Now, press the Calibrate button. The In-flight calibration box will now contain the new calibration values. Use the Eclipse filter sliders and epoch offset slider to make adjustments and recalibrate until the calibration error is minimized.