Name Comment
2024-07-11
2024-07-13
2024-08-01
2024-08-01b
2024-08-13
2024-09-18
2024-10-04
2024-10-05
2024-10-07_VAC_CMD5c_Bdot
2024-10-11_VAC_CMD5d_Bdot
2024-10-15_VAC_CMD5e_Bdot
2024-10-17_VAC_CMD5f_Bdot
2024-10-20_VAC_CMD5g_Bdot
2024-10-25_VAC_CMD5h4_Bdot
2024-10-25_VAC_CMD5h_Bdot
2024-10-31_VAC_CMD3c2_Sensors
2024-11-02_VAC_CMD3c4_Sensors Experiment run on constant sunlight.
No problems were encountered during the experiment.
2024-11-13_VAC_CMD6_Bdot
2024-11-20_VAC_CMD8_Bdot First run of Bdot after the update to 0.11. We encountered some problems with DK failing. We need to update code to use not acked transaction for storing data.
2024-11-23_VAC_CMD8_2_Bdot Second run of Bdot to increase spinup of the satellite. Only last few chunks of data were downloaded to limit number of data to download.
We have also set bdot_gain to 5.0, significantly increasing time to spinup. It did exit automaticly using Gyro max rate 20 deg/s.
2024-12-02_VAC_CMD9_Nadir_pointing First test of pointing capability to Nadir. We did not manage to get sun on any of the sun sensors, this we did not have sufficient information to determine attitude.
Reason is that Spacemaic started experiment in eclipse, so experiment was doomed from the start.
2024-12-05_VAC_CMD9b_Nadir_pointing Second experiment to run nadir pointing. This time, suns sensors are illuminated. First data looks promising, quaternion is geting stabilized.
At time 4:45 TC to change to observation for 600s is issued. On graphs it can be seen that angular velocity increases as it stabilizes and then decreases as is stabilizes.
After 100sec, reported angular error is 7.3 deg, which is good. But reported loop time is over 1000 ms, which means processor cannot keep up.
    (UTC: 2024-12-05T04:45:53Z)
No request struct given.
Response (JSON):
Payload UPY_Get_Python_State_resp
request peripheral check
    state = 3 ... execution state
    index = 4 ... index of currently running script
    runtime = 331005 ms ... total script runtime
    loop_first = 10301 ms ... first loop time
    loop_last = 1589 ms ... last loop time
    loop_avg = 1019 ms ... average loop time
    loop_max = 1890 ms ... maximum loop time
    cycles = 316 ... number of cycles
    extra_info = 65, 69, 49, 48, 57, 46, 56, 44, 87, 69, 49, 46, 49, 44, 71, 49, 46, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... extra information from python
Extra info: AE109.8,WE1.1,G1.2

(UTC: 2024-12-05T04:47:49Z)
No request struct given.
Response (JSON):
Payload UPY_Get_Python_State_resp
request peripheral check
    state = 3 ... execution state
    index = 4 ... index of currently running script
    runtime = 447202 ms ... total script runtime
    loop_first = 10301 ms ... first loop time
    loop_last = 1238 ms ... last loop time
    loop_avg = 1191 ms ... average loop time
    loop_max = 1890 ms ... maximum loop time
    cycles = 414 ... number of cycles
    extra_info = 65, 69, 55, 46, 51, 44, 87, 69, 48, 46, 50, 44, 71, 48, 46, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... extra information from python
Extra info: AE7.3,WE0.2,G0.4
From data it is also apparent that in 4:51, RW are satureted and cannot keep up with environment. This is expected as momentum managment is turned off.
Guidance commands:
vac g sq 0,0,0,1 LVLH 1 vac g gt 1
    Payload VAC_Get_Target
get target
    slot = 1 ... slot
Response (JSON):
Payload VAC_Get_Target_resp
response to Get_Target
    reply = 0 ... 0 for OK, <0 for error code
    param_type = 0 ... param type (0 for quaternion, 1 for vectors)
    q_ref = 0, 0, 0, 1 ... reference quaternion
    q_reference_frame = 2 ... reference quaternion frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA)
    pv_body = 0, 0, 0 ... primary body vector
    pv_ref = 0, 0, 0 ... primary reference vector
    pv_reference_frame = 255 ... primary reference frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA, 4 for Sun)
    sv_body = 0, 0, 0 ... secondary body vector
    sv_ref = 0, 0, 0 ... secondary reference vector
    sv_reference_frame = 255 ... secondary reference frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA, 4 for Sun)
2024-12-27_VAC_CMD9d_Nadir_pointing Experiment failed due to sun not being encoutered.
Bdot was run separately for 26 minutes before executing Nadir pointing.
Experiment itself was run for 16 minutes. Transition to pointing happened after about 144 iterations.
Payload VAC_Get_Target_resp
response to Get_Target
    reply = 0 ... 0 for OK, <0 for error code
    param_type = 0 ... param type (0 for quaternion, 1 for vectors)
    q_ref = 0, -0.707099974155426, 0, 0.707099974155426 ... reference quaternion
    q_reference_frame = 2 ... reference quaternion frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA)
    pv_body = 0, 0, 0 ... primary body vector
    pv_ref = 0, 0, 0 ... primary reference vector
    pv_reference_frame = 255 ... primary reference frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA, 4 for Sun)
    sv_body = 0, 0, 0 ... secondary body vector
    sv_ref = 0, 0, 0 ... secondary reference vector
    sv_reference_frame = 255 ... secondary reference frame (0 for ECI, 1 for ECEF, 2 for LVLH, 3 for LLA, 4 for Sun)
    DK size:    1024 kB, free:     404 kB, ( 39%), badblocks:     0, TEST OK, chip id: 0

host  port  first id   last id  errs      last write time
----|-----|---------|---------|-----|--------------------
  10   010     26810     27770     0  2024-12-27 16:10:06
  10   011     26799     27759     0  2024-12-27 16:10:06
  10   012     26803     27763     0  2024-12-27 16:10:06
  10   013      8707      9667     0  2024-12-27 16:10:06
  10   041     15799     16759     0  2024-12-27 16:10:06
  10   046     14659     15006     0  2024-12-27 16:10:06
  10   001        25        27     0  2024-12-27 16:10:08
  10   044      6525      7485     0  2024-12-27 16:10:06
  10   050      6528      7488     0  2024-12-27 16:10:06
  10   043       900      1500     0  2024-12-27 16:02:38

Payload UPY_Get_Python_State_resp
request peripheral check
    state = 5 ... execution state
    index = 4 ... index of currently running script
    runtime = 0 ms ... total script runtime
    loop_first = 10783 ms ... first loop time
    loop_last = 413 ms ... last loop time
    loop_avg = 397 ms ... average loop time
    loop_max = 2072 ms ... maximum loop time
    cycles = 960 ... number of cycles
    extra_info = 69, 88, 69, 67, 85, 84, 73, 79, 78, 32, 67, 79, 77, 80, 76, 69, 84, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... extra information from python
Extra info: EXECUTION COMPLETE
2024-12-28_VAC_CMD9d2_Nadir_pointing Target set as previous experiment:
vac g sq 0,-0.7071,0,0.7071 LVLH 1
Run for 16 minutes with 26 minutes of Bdot before.
This time, sun was visible. This is partly because of upy run being executed by Spacemanic planner with hex command. Results look similar to previus experiments. It was able to converge with error less than 10 deg for about minute and half. Then RW run out of the steam and satellite started tumbling. What is interesting is that this time, loop counter stayed under 1000ms. It seems that there are some variable communications that affect this. Also, gyro on RW Z stopped responding completely.
One thing noticed is that values for FSS are lower than anticipated - 14k max irr, compared to 27k expected. This limits FOV to approx 35-40 deg.
Momentum management is must-have!
2025-01-07_VAC_CMD10_Nadir_pointing_with_MM

Configuration

per set mm_gain 1000.0
per set upy_log_mm 1

Run parameters

upy run 4 -a1600  # Bdot for 26 minutes
vac g sq 0,-0.7071,0,0.7071 LVLH 1
upy run 4 -a960  # Pointing for 16 minutes
# wait aprox. 5 minutes
per set tc_safe2obs 600

Results

Payload UPY_Get_Python_State_resp
request peripheral check
    state = 5 ... execution state
    index = 4 ... index of currently running script
    runtime = 0 ms ... total script runtime
    loop_first = 10385 ms ... first loop time
    loop_last = 725 ms ... last loop time
    loop_avg = 716 ms ... average loop time
    loop_max = 820 ms ... maximum loop time
    cycles = 960 ... number of cycles
    extra_info = 69, 88, 69, 67, 85, 84, 73, 79, 78, 32, 67, 79, 77, 80, 76, 69, 84, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... extra information from python
Extra info: EXECUTION COMPLETE
host  port  first id   last id  errs      last write time
----|-----|---------|---------|-----|--------------------
  10   010     31930     32890     0  2025-01-07 18:52:05
  10   011     31919     32879     0  2025-01-07 18:52:05
  10   012     31923     32883     0  2025-01-07 18:52:05
  10   013     13827     14787     0  2025-01-07 18:52:06
  10   041     20919     21879     0  2025-01-07 18:52:06
  10   047         1       600     0  2025-01-07 18:45:00
  10   046     18531     18878     0  2025-01-07 18:52:06
  10   001        33        35     0  2025-01-07 18:52:07
  10   044     11645     12605     0  2025-01-07 18:52:06
  10   050     11648     12608     0  2025-01-07 18:52:06
  10   043      2100      2700     0  2025-01-07 18:45:00

DK size:    1024 kB, free:     377 kB, ( 36%), badblocks:     0, TEST OK, chip id: 0

Comments

First data shows that once fine sun sensor was iluminated, the satellite started to point nadir. Quaternion slowly changes, suggesting that it reached nadir and started to track. Angular drift also started to creep, suggesting that bias changes as it warms up. It seems that momentum management worked and we are able to hold attitude for at least 20 minutes!
It worked! Angular error reported is around 2.5 deg after settling down. For next experiment, we need to lower threshold for sun sensors to 7000. Slow buildup of the momentum in X direction is caused probably by direction of magnetic field, which is predominantly in X direction.
2025-01-12_VAC_CMD_CSP

Configuration

per set bdot_gain 2.0 float
per set fdir_rate_max 10.0 float

Run parameters

upy run 4 -a600

Results

Execution stopped after 348 iterations with message Extra info: FDIR:GYRO_RATE:10.04

Comments

Spin up of satellite by swiching bdot gain to have positive feedback. Rotation rate limited by FDIR to 10 deg/s. Satellite is succesfuly rotated to 10 deg/s along Z axis. Rotation rate oscilates around ± 2 deg/s for axis X and Y (it can be seen in Angular velocity in body frame and traces X NAV, Y NAV and Z NAV).
2025-01-17_VAC_CMD_CSP2

Configuration

per set fdir_rate_max 20.0 float

Run parameters

upy run 4 -a 1200

Results

Angular velocity observed at begining: G6.19 Angular velocity observed at LOS: G13.89 Spinup confirmed with message FDIR:GYRO_RATE:20.00

Comments

Additional spinup was executed with higher rate of 20 deg/s. It was concluded that 10 deg/s is not enough as it decays too fast.
2025-01-27_VAC_CSP_Detumble

Configuration

Run parameters

upy run 4 -a 1600

Results

Norm of angular velocity at the end: 0.6 deg/s

Comments

Downloaded only last chunks of nav data. Tumbling rate is low, but 0.6 deg/s does not subtract estimated bias. This is scheduled to be fixed in next release.
2025-01-29_Nadir_with_LUVCAM

Configuration

per set sns_sun_irr_thr 7000 u32
per set bdot_gain -- -1.5 float

Run parameters

upy run 4 -a 1600
vac g sq 0,-0.7071,0,0.7071 LVLH 1

Results

Initiated with higher than usual angular rate - still handled fine.

Comments

Nadir pointing experiment with LUVCam and IR sensors. IR sensors confirm nadir pointing. What is interesting that times 12:31 to 12:38 and then at the end of the pointing, there is spike in the magnetometer noise. Is it possible that turned on payload is causing this? Another interesting thing is that momentum management exerted less torque, can it be that dipole moment of satellite is compensated by payload?