CubeSatSim Test Plan - alanbjohnston/CubeSatSim GitHub Wiki

CubeSatSim Test Plan

Basic Tests

Startup and LED Tests

:white_square_button: Start with the CubeSatSim shut down and the RBF pin inserted. If not in this state, perform these steps:

  • If Green Power LED is not illuminated, insert RBF pin.
  • If Green Power LED is illuminated, press and hold pushbutton until the Green LED flashes slowly. Release the pushbutton and the Green LED will go out, then the Blue LED will go out. After 30 seconds, insert the RBF pin.
  • If you are logged into the Pi, type this command: sudo shutdown now After 30 seconds, insert the RBF pin.

:white_square_button: With the RBF pin inserted, the CubeSatSim is off and pressing the pushbutton will not turn it on.

:white_square_button: Removing the RBF switch will turn on the CubeSatSim. Some small LEDs on the STEM Payload board will immediately illuminate. The small green LED on the Pi Zero will illuminate and blink. After about 30 seconds, the Green LED should come on, and a few seconds later the Blue LED should illuminate.

:white_square_button: On power up, the CubeSatSim will automatically transmit on 434.9 MHz when the Blue Transmit LED is illuminated. The first thing it will transmit is a CW ID of HI HI DE CALLSIGN with FM modulation. (CALLSIGN will the the callsign you set by typing the CubeSatSim/config -c command when logged into the Pi. If you have never set it, it will be the default AMSAT) Listen with a radio or SDR on approximately 434.9 MHz FM demodulation to hear the callsign.

:white_square_button: Depending on what mode the CubeSatSim is in, after the CW callsign, there will be delay of a few seconds or 30 seconds and then you should hear the telemetry or SSTV signal being transmitted. The Blue Transmit LED will sometimes be on, sometimes off depending on the mode.

:white_square_button: The Red LED will illuminate when the USB charging cable is plugged in. Note: On some older CubeSatSim hardware (vB6 and older version), the Red LED will also illuminate when a solar panel is illuminated.

AFSK (APRS) Mode Tests

:white_square_button: Set the CubeSatSim to AFSK mode (one blink of Green LED or by typing the command CubeSatSim/config -a when logged into the Pi) and around 434.9 MHz FM, you should hear the CW ID and then after a few seconds you should hear short APRS packets of about 2 seconds duration and see the Blue Transmit LED blink on and off with the packets.

:white_square_button: A radio with an APRS TNC or a Ground Station with Direwolf or the OpenWebRX Web SDR set to DIG (Digital) Packet around 434.9 MHz will decode the APRS telemetry packets

:white_square_button: One packet is sent about every 4 seconds.

:white_square_button: The packets should contain: the CALLSIGN with a suffix of -11 and latitude and longitude coordinates. The values should be the ones you set using the command line (CubeSatSim/config -c for the callsign and CubeSatSim/config -l for the latitude and longitude, of if you never set them, they will be the default callsign AMSAT and the default coordinates of Washington, DC, AMSAT's headquarters.

:white_square_button: The APRS icon should be a satellite.

:white_square_button: The telemetry string should be displayed in the Comments field and should begin "hi hi" and then a series of three digit numbers.

SSTV Tests

:white_square_button: If in SSTV mode (four blinks of the Green LED), the Scottie 2 SSTV image should be easily decoded using MMSSTV or QSSTV, with a short break between images.

:white_square_button: If no Pi Camera is plugged in, the first image should be the AMSAT Logo after reboot or reset (white background). Then, after that, every 30 seconds an image of the CubeSatSim will be transmitted (black background) as the Blue LED illuminates.

:white_square_button: If a Pi Camera is plugged into the Pi Zero, the first image after reboot or reset will be an image of the CubeSatSim (black background). After that, every 30 seconds, the Pi Camera LED should illuminate as a photo is taken, then that photo will be transmitted as the Blue LED illuminates.

FSK/BPSK Tests

:white_square_button: Set the CubeSatSim to FSK mode (two blink of Green LED or by typing the command CubeSatSim/config -f when logged into the Pi) and around 434.9 MHz FM, you should hear the CW ID and then after a few seconds you should hear a carrier for about 30 seconds, then you should hear the telemetry signal, which sounds like a low rumbling sound. If you zoom into the waterfall with an SDR, you can see two peaks, which represents the two binary values being transmitted.

:white_square_button: Set the CubeSatSim to BPSK mode (three blink of Green LED or by typing the command CubeSatSim/config -b when logged into the Pi) and around 434.9 MHz FM, you should hear the CW ID and then after a few seconds you should hear a carrier for about 15 seconds, then about 15 seconds of silence, then you should hear the telemetry signal, which sounds like a buzzing sound. If you zoom into the waterfall with an SDR, you can see a rounded peak. Note that to hear BPSK properly, you should demodulate with USB (Upper Side Band).

:white_square_button: For both FSK and BPSK, after the startup sequence, the signal will be transmitted continuously. The Blue Transmit LED will mostly be on, but will blink off ever 4 seconds when a new frame of telemetry data is being sent.

FSK/BPSK FoxTelem Tests

:white_square_button: In FSK or BPSK mode, FoxTelem version 1.09 or later will decode lots of telemetry. Having FoxTelem control an RTL-SDR or FunCube dongle is the simplest, although you will likely have to display the FFT spectrum and click on the signal peak. The FFT spectrum is at the bottom of the Input tab and is a red line. If it isn’t displayed, select Decoder/Show FFT and it will be displayed. You might also need to drag a divider bar up from the bottom if your screen resolution is low. You may need to enter the Center Frequency of 434840 in the kHz box before clicking start (don't enter 434900). You can also use an SDR or radio to tune the signal (FM demodulation for FSK and USB for BPSK) with the audio fed into FoxTelem, although this can be trickier to get working, especially with BPSK.

:white_square_button: On boot, you can see the CW ID, then the telemetry signal around 434.9 MHz. After each power on or reboot, you may need to retune, as the CubeSatSim often transmits on a slightly different frequency around 434.9 MHz. However, once it starts, the frequency should not drift. It is a good idea to have "Find Signal" enabled. If you see either "Scanning" or "Faded" in light grey letters in the FFT window, this means Find Signal is enabled. If not, go under the File/Settings menu and under the Decoder Options check the box Find Signal then click Save. If you have never set your latitude and longitude in FoxTelem, you may need to do it before you can save the settings.

:white_square_button: To decode the telemetry in FoxTelem, you need to have the CubeSatSim-FSK and CubeSatSim-BPSK spacecraft added on FoxTelem version 1.09 or later. If they don’t appear as a tab, you can add them by selecting Spacecraft/Add then clicking on the CubeSat_Simulator_DUV.MASTER file to add CubeSatSim-FSK or CubeSat_Simulator_PSK.MASTER file to add CubeSatSim-BPSK.

:white_square_button: With the CubeSatSim in FSK mode (two blinks of Green LED or CubeSatSim/config -f), telemetry is easily decoded just by centering the decode on the signal. The Source must be set to FSK/DUV in the Input tab of FoxTelem and the Start button clicked. In the Input tab, the Frames and Payloads counts at the bottom of the window should increase by one about every 4 seconds.

:white_square_button: If you click on the CubeSatSim-FSK tab then on the Health tab, you should see some non-zero data and the Telemetry Frames Decoded count in the top right should be increasing.

:white_square_button: FoxTelem decodes three types of telemetry frames: RT (Real-Time, instantaneous sensor readings), MIN (Minimum values stored since the last reboot or reset), and MAX (Maximum values stored since the last reboot or reset). Values of 0000 indicates no data has been decoded for this type of frames. MIN and MAX frames are sent about every 5 frames, so it might take up to 40 seconds to have received all three types of frames. If one of the columns stays at 0 for all the values, it means that type of frame has not been decoded.

:white_square_button: The battery voltage (Cell A+B+C, which means the three NiMH cells in series) should read in the range of 4.5 V to 3.0 V. If it is 3.9 V or higher, it is fully charged. If it is 3.5 V or lower, it is low on charge.

:white_square_button: First look at the Temperature field under Computer Hardware. This temperature should vary slightly with each frame decoded, indicating that new values are being received.

:white_square_button: Under Radio, the TX Antenna should show as Deployed, although it will briefly show as Stowed in the first frame sent after powering up or changing modes.

:white_square_button: Under Computer Hardware, the I2C Bus fields show the status of the three I2C buses. The normal state for a CubeSatSim is Bus 0 FAIL, Bus 1 OK, and Bus 3 OK. The normal state for a CubeSatSim Lite is Bus 0 FAIL, Bus 1 OK, and Bus 3 FAIL.

:white_square_button: The Camera shows whether a Pi Camera is plugged in and enabled on the Pi.

:white_square_button: Your CubeSatSim will normally be sending real telemetry, as indicated by the Simulated Telemetry FAIL setting. It can be configured using the command line to generate and send simulated telemetry using the CubeSatSim/config -t command. If I2C Bus 3 shows as FAIL, the CubeSatSim will automatically switch to simulated telemetry. A CubeSatSim Lite will automatically send simulated telemetry since Bus 3 will be FAIL.

:white_square_button: Under Computer Software, Normal Mode should be OK, unless the battery voltage is below 3.5 V when it will show FAIL to indicate Safe Mode.

:white_square_button: Under Battery, the battery voltage will be in the range 3.0 V to 4.5 V.

:white_square_button: When running under batter power, the battery current will be in the range of 200 - 350 mA and will vary quite a lot between samples.

:white_square_button: When charging with the USB charging cable, the current will be negative and the battery voltage greater than 4.0 V. When the battery is fully discharged, the battery charging current will be around -450 mA. When fully charged, the trickle battery charging current will be around -45 mA.

:white_square_button: When the USB charging cable is unplugged, the battery voltage will always decrease. When the USB charging cable is plugged in, the battery voltage will always increase. If the battery is charged, it will drop to close to 4 V. If the battery still needs charging, it will drop to a voltage closer to 3.5 V.

:white_square_button: Under PSU (Power Supply Unit), the bus voltage will be very close to 5 V and the current in the range 120 to 200 mA.

:white_square_button: The +X, +Y, and +Z panels show telemetry on solar panel voltage, current. The -X, -Y, and -Z only show voltage and current.

:white_square_button: A voltage of 0 indicates the sensor is unavailable. Under no illumination or with no solar panel plugged in, the voltage will read around 0.8 V to 1 V.

:white_square_button: Under room illumination, you will see around 2 V of voltage.

:white_square_button: Under lamp illumination or sunlight, you will see a voltage in the range 3 – 5 V.

:white_square_button: You will only see a non-zero current under lamp illumination or sunlight. LED lamp illumination will be less than 10 mA, while sunlight or halogen lamp illumination can be up to 200 mA. Halogen lamps put out lots of heat - don't leave the CubeSatSim in front of a halogen lamp for more than a few seconds.

:white_square_button: Similar data can be displayed in FoxTelem when the CubeSatSim is in BPSK mode and BPSK: Fox/Husky is selected for the Input. Tuning BPSK is trickier and fewer frames will be decoded compared to FSK. MIN and MAX payloads are sent every frame for BPSK, so they will update faster. The WOD tab will not show any data.

STEM Payload Tests

:white_square_button: In FoxTelem, under Experiments, if the STEM Payload Board is plugged in and the Arduino programmed, it should show STEM Payload OK. If there is no STEM Payload Board or the Arduino isn’t running the Payload software, it will show as FAIL. If it is OK, there will be non-zero data for the sensors. The rest of the tests in this section assume STEM Payload OK.

:white_square_button: If CubeSatSim is at rest, and the STEM Payload OK, the rotation will be close to zero.

:white_square_button: If the CubeSatSim is moved or bumped, the rotation values will spike, perhaps as high as +/- 50 dps (degrees per second).

:white_square_button: With the CubeSatSim on the turntable on the Low setting, the rotation rate will be about 7 -9 degrees per second.

:white_square_button: Turn the CubeSatSim on its side, and the rotation axis will change.

:white_square_button: If it is tilted at an angle, more than one rotation axis will show a non-zero value.

:white_square_button: If it is rotating, the Green LED on the STEM Payload board will illuminate, and be off if it is still.

:white_square_button: If the CubeSatSim is at rest, and the STEM Payload OK, the acceleration will indicate which way gravity is acting on the CubeSatSim. If it is flat on one side, one value will be close to +/- 1 g while the others will be zero.

:white_square_button: If it is tilted, more than one axis acceleration will show a value. If the CubeSatSim is jolted, the Blue LED on the STEM Payload board will illuminate, and be off if it is not being sharply moved.

:white_square_button: In AFSK mode, if a STEM Payload board is plugged in and the Arduino programmed, there will be an additional string of BME280 xx yy zz aa MPU6050 bb cc dd ee ff gg XS hh ii jj XS 0 0.0 where the letters are digits.

Button Tests

:white_square_button: If the CubeSatSim was shut down using the button and the RBF switch is not inserted, pressing and releasing the button will power it up.

:white_square_button: Pressing and holding the button until the Green Power LED blinks once will put the CubeSatSim into APRS mode.

:white_square_button: Pressing and holding the button until the Green Power LED blinks twice will put the CubeSatSim into FSK mode.

:white_square_button: Pressing and holding the button until the Green Power LED blinks three times will put the CubeSatSim into BPSK mode.

:white_square_button: Pressing and holding the button until the Green Power LED blinks four times will put the CubeSatSim into SSTV mode.

:white_square_button: Pressing and releasing button will reboot, and CubeSatSim will start back up in 40 seconds in the same mode.

:white_square_button: Pressing and holding the button until the Green LED blinks slowly will shut down the CubeSatSim.

:white_square_button: To power back up a CubeSatSim that has been shutdown, press and release the button if the RBF pin is not plugged in.

:white_square_button: To power back up a CubeSatSim that has been shutdown and has the RBF pin inserted, remove the RBF pin.

Advanced Tests

Command Line Tests

Note: You only need to login to your Pi if you want to customize it or configure it. If not, you can skip these tests.

:white_square_button: Log into your Pi by either:

  • Plugging an HDMI monitor (using a mini HDMI adapter) and a keyboard (using an OTG cable)
  • Connecting to your Pi using SSH over your WiFi by editing the wpa_supplicant.conf file (https://www.raspberrypi.org/documentation/configuration/wireless/headless.md) or running sudo raspi-config and selecting System Options then Wireless LAN
  • Connecting to your Pi using SSH over a USB cable. The Micro USB connector plugs into the Pi Zero USB port (NOT the power port) and the USB connector into your computer which has Apple Bonjour installed.

:white_square_button: If your Pi Zero W or Pi Zero W 2 is on your WiFi network or if you are using Ethernet over USB, you can log into the Pi using SSH. For example, on Windows or Mac, you can type this in the command line: ssh [email protected]. You might have to answer yes to some questions, then you will be prompted for your password. If you have never changed it, it will be the default rapsberry

:white_square_button: Start in the Pi home directory. To make sure you are here, type: cd

:white_square_button: Verify your CubeSatSim configuration by typing: CubeSatSim/config The output will tell you which mode is set and print the configuration file sim.cfg. This will also show all the different configuration options.

:white_square_button: Verify you can change modes using the command line. Change to FSK mode by typing: CubeSatSim/config -f Then, after verifying that it is in FSK mode, change to BPSK mode by typing: CubeSatSim/config -b

:white_square_button: Change the callsign by typing: CubeSatSim/config -c

:white_square_button: Change the latitude and longitude by typing: CubeSatSim/config -l Change to AFSK mode to verify

:white_square_button: Test manually reading the current and voltage sensors by typing: CubeSatSim/telem

:white_square_button: Generate a log file: CubeSatSim/log

:white_square_button: To see the CubeSatSim log, type CubeSatSim/log After a few seconds, you should get a lot of text scrolling across the screen and a file called CubeSatSim/log.txt which has this information stored in it.

:white_square_button: To see the CubeSatSim transmit log, type CubeSatSim/log -r After a few seconds, you should get a lot of text scrolling across the screen and a file called CubeSatSim/logr.txt which has this information stored in it. Verify it is stored in a file by clearing any existing log files by typing rm CubeSatSim/logr.txt then CubeSatSim/logr then cat CubeSatSim/logr.txt

:white_square_button: If you have a CubeSatSim (and not a Lite), check the status of I2C Bus 3 by typing i2cdetect -y 3 You should see sensors listed at 40, 41, 44, and 45.

:white_square_button: Turn on Simulated Telemetry by typing CubeSatSim/config -m then typing y for yes. In FoxTelem you will see Simulated Mode ON and also the values changing. Make sure you change it back by running CubeSatSim/config -m then typing n for no or you will be confused next time you run your CubeSatSim!

:white_square_button: To change the APRS coordinates, type CubeSatSim/config -l - you should see them change in the APRS packets after it starts up again.

Battery Discharge Tests

:white_square_button: To test the battery discharge, keep running in FSK mode for several hours (AA batteries) or over an hour (AAA batteries). In FoxTelem, you will see the battery voltage fall over time.

:white_square_button: When the voltage falls below 3.5 Volts, Safe Mode will be activated and displayed in FoxTelem as Normal Mode FAIL.

:white_square_button: When the voltage falls below 3.0 Volts, the CubeSatSim will shut down automatically.

:white_square_button: If the CubeSatSim shuts down automatically, plug in the USB charging cable. The Red Charging LED will illuminate.

:white_square_button: After shutting down and having the charging cable plugged in, pressing the pushbutton will most likely NOT power up the CubeSatSim. This is normal.

:white_square_button: After the CubeSatSim shuts down automatically, insert the RBF pin and plug in the USB power cable. After about a minute, removing the RBF pin will power up the CubeSatSim.

:white_square_button: It will take about twice as long to recharge as discharge, so several hours for AA batteries and two hours for the AAA batteries.

APRS or CW Telemetry Decoding Test

:white_square_button: With the CubeSatSim in APRS or CW mode, copy the telemetry string beginning with "hi hi" followed by a string of 3 digit numbers.

:white_square_button: Pasting the telemetry string starting with "hi hi" into the telemetry spreadsheet (https://cubesatsim.org/telem) should show some currents, voltages, and temperatures. Note that only solar panel current is displayed, so only strong illumination will generate charging current.