26 PacSat
Alan Johnston edited this page 2026-03-22 01:36:40 -04:00

PacSat Mode

There is a new experimental CubeSatSim mode called PacSat. PacSat is short for Packet Satellite, and is a type of amateur radio digital store-and-forward satellite that has been around for decades. Early PacSats include PacSat AO-16 launched in 1990 and AO-51 Echo launched in 2004 and MIR-Sat 1 MO-112 launched in 2021. The most recent operational PacSat was FalconSAT-3 or FO-62 launched in 2007 and re-entered in 2023. AMSAT is currently building a PacSat which will hopefully launch in the future. In the meantime, you can try out this mode using the v2 CubeSatSim hardware and an experimental code branch.

The CubeSat PacSat mode is known as the PacSatSim, and uses 1200 bps AFSK transmissions. A PacSat system has two components: a satellite and a ground station. The satellite functions as a Bulletin Board Service (BBS) which is essentially a file server in orbit. Using the ground station, users can download and upload files to the satellite. In this way, contacts can be made across the globe using this store-and-forward approach of exchanging messages.

There are other digital satellites in orbit right now known as Digipeaters or Digital Packet Repeaters. Here's is a list: https://www.amsat.org/live-digipeater-satellites/ A PacSat is different than a Digipeater since a Digipeater immediately repeats the packet and does not store it or keep a directory of packets received. The CubeSatSim PacSat will also act as a Digipeater.

CubeSatSim PacSat

A CubeSatSim can act as the PacSat satellite or the PacSat Ground Station. The PacSat satellite transmits telemetry APRS packets as well as allocating a download channel known as a PacSat Broadcast (PB) to users. A typical exchange begins with a ground station requesting a Directory (DIR) from the PacSat which is a list of files that are available. With this list downloaded, the ground station can request the download of specific files, or upload new files. After a file or message has been downloaded, the user can reply or comment and upload that message to the PacSat.

The PacSat code used by the CubeSatSim is developed by Chris Thompson VE2TCP/G0KLA of FoxTelem fame. His PacSat Ground Station looks similar to FoxTelem, and is open source Java code which can run on Linux, Windows, or Mac computers. Unlike FoxTelem, which is just a receiver of telemetry, the PacSat Ground Station receives and transmits. If run on a CubeSatSim or a CubeSatSim Lite, it utilizes the FM transceiver board, or, in low power Safe mode, the rpitx software transmitter. It can also work with a FM radio transceiver using audio in, audio out, and Push To Talk (PTT) or VOX for transmit control. The easiest way to do this is to have two CubeSatSims, or a CubeSatSim and a Lite, or two Lites.

A CubeSatSim will transmit on 434.9 MHz and receive on 435 MHz by default. But to have a pair of them act as a PacSat and a PacSat Ground Station, they have to have their transmit and receive frequencies opposite of each other. Typically, I will leave the PacSat transmitting at 434.9 MHz but change the PacSat Ground Station to transmit at 435 MHz. The CubeSatSim PacSat operates in half-duplex, so in theory they could receive and transmit on the same frequency, but having them on different frequencies makes it much easier to see the interaction between them.

Chris Thompson's PacSat Page has lots of information about PacSat and the AX.25 protocols used to implement it https://www.g0kla.com/pacsat/

Running the PacSat

To try out the PacSat mode, you need to be running the master-b-p software branch. These commands will update your software:

   cd
   cd CubeSatSim
   git pull
   git checkout master-b-p
   ./update
   CubeSatSim/config -G

There is a chance that this update might fail in which case you will need to reinstall the software from scratch, or start from a v2.2 Disk image and run the update commands.

After a reboot, you should see APRS packets transmitted at 434.9 MHz (or at a different frequency if you modified it using the CubeSatSim/config -F command) about every 10 seconds or so.

Here's what they will look like in Direwolf:

Screenshot 2026-03-21 at 12 26 50 AM

If you didn't set your callsign during installation or using the CubeSatSim/config -c command, the callsign will just be AMSAT. Direwolf tries to interpret them as APRS packets, so it gives errors and unknown messages, but that's fine.

PacSat Packets

You will see three types of packets transmitted by the CubeSatSim PacSat.

  • PBLIST packets list the status of the PacSat Broadcast or PB. The PB indicates who is currently able to request files to be broadcast or downloaded. The default is PB Empty which means anyone can request the PB.

  • BBSTAT packets indicate the status of the Bulletin Board. The default is Open

  • TLM1 packets are telemetry packets and contain a binary data block with the same information as is displayed in FoxTelem FSK or BPSK.

PBLIST and BBSTAT packets are sent about every 30 seconds, while TLM1 packets are sent every 10 seconds.

To see other packets, you will need a PacSat Ground Station capable of transmitting request packets.

Reset the PacSat

You can reset the PacSat configuration by typing this command:

   CubeSatSim/config -k

The directory will then just have two items in it. You will likely have to also reset the PacSat Ground Station (see below).

PacSat Ground Station on the CubeSatSim

The PacSat Ground Station software is included in the master-b-p branch. However, it must be run in the Desktop GUI, not the command line. So the first thing you need to do is to configure your Pi Zero 2 to boot to the Desktop GUI by running raspi-config:

   sudo raspi-config

Use the up/down arrows and the return key to select the System Options:

Screenshot 2026-03-21 at 12 58 50 AM

Then select Boot / Auto Login:

Screenshot 2026-03-21 at 12 59 03 AM

Then select either Desktop or Desktop Autologin:

Screenshot 2026-03-21 at 12 59 17 AM

After exiting, select Yes to reboot and you will have the Desktop GUI running. You can access it using the HDMI connector, mouse, and keyboard or remotely logging in from your PC or Mac using VNC (VNC Viewer by RealVNC is a free download).

In the Desktop, open a Terminal window by double clicking on the black rectangle icon at the top left of the screen:

Screenshot 2026-03-21 at 1 28 57 AM

Now type this command in the terminal window:

   CubeSatSim/config -F

This command allows you to change the transmit and receive frequencies. The Ground Station transmit and receive frequencies must be the opposite of the Satellite, otherwise, they won't receive what the other transmits. If your PacSat Satellite is using the default transmit 434.9 MHz and receive 435 MHz, then for the PacSat Ground Station, enter 435 for transmit and 434.9 for receive.

Screenshot 2026-03-21 at 1 44 28 AM

Now type this command in the terminal window to switch to the PacSat Ground Station mode:

   CubeSatSim/config -I 
Screenshot 2026-03-21 at 1 44 55 AM

After you reboot, double click on the PacSat icon on the Desktop:

Screenshot 2026-03-21 at 1 04 12 AM

Alternatively, you can type this command into a Terminal window:

   CubeSatSim/groundstation/pacsat-run.sh

Select the first option to Run PacSat Ground Station in the popup menu:

Screenshot 2026-03-21 at 5 42 50 PM

If you are running it for the first time, you may get this prompt to "Overwrite Existing spacecraft config file". Select Yes to proceed.

Screenshot 2026-03-21 at 1 39 58 AM

When the ground station runs, you will see this window:

Screenshot 2026-03-21 at 1 12 08 AM

Direwolf will be running in another terminal window - don't close it! You can look at it to see the Direwolf log of packets sent and received.

Setting Callsign and Latitude and Longitude

You can go under File then Settings and set your callsign. You will also have to put in latitude and longitude or a grid square to save your changes when you select Save.

Screenshot 2026-03-21 at 1 40 31 AM

PacSat Ground Station with Simulated PacSat Satellite

This is the simplest way to experience PacSat operation. You only need one CubeSatSim or CubeSatSim Lite. From the Desktop, double click on the PacSat icon on the Desktop, but select the Run a Locally Simulated PacSat option:

Screenshot 2026-03-21 at 12 30 32 PM

You should see this after about 30 seconds:

Screenshot 2026-03-21 at 12 20 59 AM

One open terminal window will show the Direwolf log of the locally simulated PacSat. Another open terminal window will show the Direwolf log of the PacSat Ground Station.

The telemetry packet count at the bottom (Telem) should increase every 10 seconds or so. If you select the TLMP1 tab, you will see the telemetry data:

Screenshot 2026-03-21 at 12 33 56 PM

If you click on the tiny down arrow near the list of data just above the RESET column, the list will go away and the whole window will display the latest telemetry data:

Screenshot 2026-03-21 at 12 34 17 PM

If you are using a CubeSatSim Lite, the telemetry data will be simulated (under Computer Software, it will say Simulated Telemetry ON. If you are using a CubeSatSim, the telemetry data will be real (under Computer Software, it will say Simulated Telemetry OFF.

Just like in FoxTelem, you can double click on a telemetry value and generate a graph. Once you have a graph, you can use the + icon to add a second field to see the two values graphed together.

If you select the Directory tab, you can download any of the files listed in the Directory. Select the file in the list so it is highlighted, then select the FILE button. You will see DL (Download) and FILE packets, then the Status of the file will change to NEW and Holes will show 0 with download percentage at 100%.

Screenshot 2026-03-21 at 1 06 37 PM

Now you can double click on it and view the file.

Screenshot 2026-03-21 at 1 08 47 PM

You can reply to this message by clicking the Reply button and then clicking Send and the file will be uploaded. You will see a series of messages below and the file will be uploaded.

Screenshot 2026-03-21 at 1 18 51 PM

If you select the Outbox tab, the State should show as SENT. If it hasn't sent yet, it will show QUE.

Screenshot 2026-03-21 at 1 12 44 PM

The uploaded file won't show up in the Directory unless you request the directory using the DIR button, but then it will show up at the top of the Directory list.

Screenshot 2026-03-21 at 1 20 36 PM

PacSat Operation with two CubeSatSims

You can have a full PacSat Satellite and Ground Station interaction if you have two CubeSatSims, two CubeSatSim Lites, or a CubeSatSim and a Lite.

You will configure one as the PacSat Satellite (CubeSatSim/config -G) and the other as the PacSat Ground Station (CubeSatSim/config -I then run the PacSat Ground Station) and make sure their transmit and receive frequencies are opposite.

Then you can run the PacSat Ground Station and you should receive packets from the Satellite and you will see this:

Screenshot 2026-03-21 at 12 20 59 AM

If instead you see something like this:

Screenshot 2026-03-21 at 5 55 30 PM

where no Directory downloads, and instead of telemetry packets (TELEM FRAME) you see random characters. If you see this, it probably means that your Ground Station does not have the correct callsign for the PacSat. The Telem count at the bottom will not increase. If you try to download the Directory with the DIR button, you will see the DIR REQ packets but no answer:

Screenshot 2026-03-21 at 5 55 50 PM

If you go under the Spacecraft menu then PacSatSim you can see what callsign is configured:

Screenshot 2026-03-21 at 5 59 51 PM

In this case, the default callsign AMSAT is set, but the PacSat has been configured with my callsign KU2Y. You can configure this by exiting the PacSat Ground Station, double clicking the PacSat icon again but this time select Configure the PacSat Ground Station:

Screenshot 2026-03-21 at 6 01 37 PM

Type 1 for the menu item to Configure your PacSat Ground Station:

Screenshot 2026-03-21 at 6 01 59 PM

Then type 2 for the menu item to set the Remote PacSat Callsign.

Screenshot 2026-03-21 at 6 02 26 PM

If I enter my callsign KU2Y then run the PacSat Ground Station again, the telemetry packets will be decoded and displayed, and the Directory can be requested.

If you had previous been running the Locally Simulated PacSat Ground Station or another CubeSatSim mode, when you run the PacSat Ground Station, you might get this prompt:

Screenshot 2026-03-21 at 5 43 17 PM

Type a y then return. After the reboot you will be able to run the PacSat Ground Station.

I like to look at an SDR waterfall that shows both 434.9 and 435 MHz so you can see the packets being transmitted. For example, if the PacSat is transmitting on 434.9 MHz, you might see this when you first run the PacSat and the PacSat Ground Station:

Screenshot 2026-03-21 at 10 49 55 AM

SDR Waterfall Views

To see packets from the PacSat Ground Station, you need to make a request, such as request a Directory with the DIR button. It will look like this in the waterfall:

Screenshot 2026-03-21 at 5 48 37 PM

The one packet from the PacSat Ground Station on 435 MHz causes the PacSat to transmit the large directory packets on 434.9 MHz.

Here's what a sending a message or replying to a message on the PacSat Ground Station looks like:

Screenshot 2026-03-21 at 10 50 49 AM

Here's what requesting a download of a large file, such as a JPG image looks like:

Screenshot 2026-03-21 at 10 49 21 AM

You can try uploading a JPG image by clicking on New Msg then under Select Type choose JPG. Don't select a large JPG or it will take forever to upload! I use the smallest JPGs I can generate, around 2.3 kilobytes.

Reset the PacSat Ground Station

Sometimes, the directory on the PacSat Ground Station can get out of sync with the Directory on the PacSat. One symptom of this is that the Ground Station requests the Directory over and over again, wanting entries that don't exist. To fix this, you want to reset the PacSat Ground Station to clear the stored data. Do this by selecting Configure the PacSat Ground Station when you double click on the PacSat icon:

Screenshot 2026-03-21 at 6 01 37 PM

Then, select menu option 1 then menu option 3 to Reset the Ground Station configuration.

Screenshot 2026-03-21 at 6 16 39 PM

Note that the next time you run the PacSat Ground Station, you may get the prompt to "Overwrite Existing spacecraft config file". Select Yes to proceed.

Digipeater Operation

In PacSat mode, the CubeSatSim will act as a Digipeater - an APRS Packet Repeater. You just need to set the Digipeater Via Path to contain WIDE1-1 and transmit the APRS packet on the receive frequency of the PacSat, 435 MHz if it hasn't been changed. Here is an example packet input decoded by Direwolf:

   W3YP-2 audio level = 14(5/5)   [NONE]   _||||||__
   [0.3] W3YP-2>APK5C1,WIDE1-1:!4000.00N/07000.00WD
   Position, was originally undefined
   N 40 00.0000, W 070 00.0000

And here is the Digipeater output on 434.9 MHz:

   Digipeater KU2Y-1 audio level = 18(6/5)   [NONE]   ||||||___
   [0.2] W3YP-2>APK5C1,KU2Y-1*:!4000.00N/07000.00WD
   Position, was originally undefined
   N 40 00.0000, W 070 00.0000

I used my Quansheng UV-5 to generate this APRS packet.