ASU-cubesat / phxsat-gsw-public

Public repository to allow people to hear from and communicate with the Phoenix CubeSat
4 stars 0 forks source link

PING uplink command payload, please? #2

Closed K4KDR closed 4 years ago

K4KDR commented 4 years ago

Could you please publish the hex payload & modulation settings (i.e., 9600 FSK, etc.) of the PING uplink command?

Or better yet, kindly share an audio file of the command as transmitted from your ground station?

This would allow MANY more of us to participate in your project by making it possible to uplink a PING request absent the hardware TNC required by your software. We have successfully transmitted 1200 & 9600 baud uplink commands to a variety of satellites in this manner.

Thank you very much & best of luck with your satellite!

-Scott, K4KDR

N6RFM commented 4 years ago

It would also be most helpful to have an audio file with your (simulated) satellite transmitted response to any commands available for amateur use. That way, we can test our (software) TNC installations and the link to the OBC output window by playback of the wav file through the TNC. Thanks also. - Bob N6RFM

sarahsrogers commented 4 years ago

Certainly! We will work on adding a few audio files of our transmitted commands for amateur use, hopefully by the end of the day. Thank you for the suggestion!

As for a recording of the satellite transmitted responses, we unfortunately do not have a sample of this. We also cannot recreate it prior to deployment, as our only OBC was flight hardware. We can, however, share a generic hk beacon that only contains telemetry from our AX100 radio. It wouldn't include the same information as other responses, but it would include the same AX.25 header and be transmitted at the same frequency. We could provide the structure of the AX100's hk packets as well, so you could see if you could decode them. Would that be alright?

N6RFM commented 4 years ago

Thank you Sarah. That will be very helpful. b.

K4KDR commented 4 years ago

Thank you VERY much for the sample files. I may have missed it, but if you have not, you may wish to clarify for people that these are I/Q files and not audio. Regarding the PING uplink command, I see that the destination address is "KIOO7Y". Is that the correct 'TO' address for us to use and not the 'WJ2XOY' call sign listed on your web page?

Also, for the FROM address will the spacecraft accept our own call signs or must the FROM address specifically be 'KIOO7Y'?

Thank you!

2020-02-05 22:08:08.610 UTC: from KIOO7Y to KIOO7Y (UI, payload: 28 byte)
000 > C0 00 96 92 9E 9E 6E B2 60 96 92 9E 9E 6E B2 61 03 F0 94 20 
020 > 74 01 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 
040 > 12 13 CC 79 EB E6 C0
sarahsrogers commented 4 years ago

Thanks for pointing out the file format, Scott. We will change the documentation to state that these are I/Q files rather than audio.

The WJ2XOY is the callsign of the satellite. to transmit to the spacecraft, I would include this as your DST address.

The KIOO7Y is actually my callsign...except it's a bit incorrect. I recalled my callsign incorrectly when we were configuring the settings on the AX100, so this shows up as KIOO7Y instead of my true callsign, which is KI7OOY (I guess I liked the idea of my callsign having the James Bond number in it). In addition, the callsigns were programmed in backwards by accident just before flight integration, so it appears that the satellite is transmitting from KIOO7Y -> WJ2XOY, when it should be the other way around.

This was something that just got overlooked by accident as things got closer to flight integration and our team became busy with wrapping things up. Unfortunately, we cannot change this on orbit due to the way the AX100's boot settings work. I promise our satellite is more organized than this...

K4KDR commented 4 years ago

Very good - thank you so much! The most important thing from the uplink standpoint is to give ourselves a fighting chance, so having the correct destination address was important.

sarahsrogers commented 4 years ago

Would it help if I stated what I wrote above on our website so this was more clear to others?

K4KDR commented 4 years ago

The history / evolution of how the project got to this point is very interesting, but for the purpose of guiding the public on how to interact with the satellite, I would suggest a focus on the specific needs (many of which you're already published!). Those would be:

For RX only:
-RF freq -modulation & mode (I only noticed a reference to Narrow-FM in recent comments; forgive me if that was mentioned previously) -expected downlink telemetry packet -telemetry data definitions

For TX (PING requests): -RF freq -modulation & mode -packet addressing & payload info (To, From, payload hex bytes) -expected response if successful -options: Hardware TNC w/ your linux app or Software soundmodem w/ custom audio file (which is how I will be transmitting, FYI. You don't see many hardware modems anymore, it seems)

Hope that helps and of course please reach out if I can help in any way.

K4KDR commented 4 years ago

... and by the way, many people might find audio easier to work with than an I/Q file. No doubt you have your own samples, but I have placed an audio version of your PING command uplink packet at:

https://www.qsl.net/k/k4kdr//audio/phxsat-sample-ping-audio.wav

sarahsrogers commented 4 years ago

Thank you so much for adding the audio file, Scott! We added it to our 'Recordings' folder for others to use. Can you tell me what you used for converting the I/Q file to audio? We can convert the hk packet, but I want to make sure we do this correctly.

To return to your question on what callsigns to use for transmitting to the satellite, I believe you should be able to use your own callsign as the SRC address, and Phx's as the DST address, but I want to verify this. I think I recall us trying something similar when testing over a year ago, but I'll double check this tomorrow and get back to you!

K4KDR commented 4 years ago

Very glad to help!

It's not a conversion, but rather an audio recording of the I/Q playback.

There are a wider variety of tools available on Windows, so I move to that platform for this, normally. There are many SDR applications, I use HDSDR.

Playing back your I/Q file in HDSDR, I adjusted my RF tuning & bandwidth to accommodate the signal. Output audio bandwidth is critical for 9600 baud data, so that is set to 15k. Once proper decoding of the 9600 baud data is confirmed, the audio output from HDSDR is piped over a virtual audio cable to Audacity for recording of the audio. The output sample rate from HDSDR and the recording sample rate in Audacity are both set to 48000.

The recording in Audacity is cropped to leave about 1/2 second of silence before & after the data packet. The level is "normalized" (an option in Audacity) and then exported to a 16-bit PCM audio .WAV file. The resulting audio file is replayed to verify proper decoding of the packet and then transmitted over-the-air using a 9600-capable radio set to FM-Narrow to verify proper decoding as received 'live' using an SDR on another computer to simulate real-world conditions.

The above sounds like a lot of steps but takes longer to read than to actually perform. Hope that is helpful!

sarahsrogers commented 4 years ago

Awesome! Thank you very much :) We'll give that a shot and change our I/Q files for future recordings.

Coming back to your question about the callsigns, the AX100 will accept a message no matter what the callsign info is, so for the sake of abiding by standards I would use 'WJ2XOY" in the destination address while transmitting and your callsign for the source address.

I'll update our website so that this is more clear!

K4KDR commented 4 years ago

Thanks so much for all the additional information. I believe that we are ready to try a PING request - all that remains is the small matter of getting a satellite into orbit!

Here is a decode of your sample packet:

------
U frame UI: p/f=0, No layer 3 protocol implemented., length = 44
 dest    KIOO7Y  0 c/r=0 res=3 last=0
 source  KIOO7Y  0 c/r=0 res=3 last=1
  000:  96 92 9e 9e 6e b2 60 96 92 9e 9e 6e b2 61 03 f0  ....n.`....n.a..
  010:  94 20 74 01 00 01 02 03 04 05 06 07 08 09 0a 0b  . t.............
  020:  0c 0d 0e 0f 10 11 12 13 cc 79 eb e6              .........y..
------

... and here is a decode of my PING request packet:

------
U frame UI: p/f=0, No layer 3 protocol implemented., length = 44
 dest    WJ2XOY  0 c/r=0 res=3 last=0
 source  K4KDR   6 c/r=0 res=3 last=1
  000:  ae 94 64 b0 9e b2 60 96 68 96 88 a4 40 6d 03 f0  ..d...`.h...@m..
  010:  94 20 74 01 00 01 02 03 04 05 06 07 08 09 0a 0b  . t.............
  020:  0c 0d 0e 0f 10 11 12 13 cc 79 eb e6              .........y..
------
sarahsrogers commented 4 years ago

Awesome! Thank you so much for testing out our code and helping us with issues so efficiently! We appreciate it greatly :)

sarahsrogers commented 4 years ago

It seems that this issue has been resolved, so I'll close this out to keep the issues up to date. Feel free to reopen if necessary, however.