CubeSatSim, the AMSAT CubeSat Simulator http://cubesatsim.org
  • C 42%
  • Python 23.2%
  • Shell 18.7%
  • C++ 14.9%
  • Makefile 1.2%
Find a file
2026-09-19 15:56:20 -04:00
afsk Create README.md 2021-06-28 14:49:22 -04:00
ax5043 Update README.md 2021-06-28 14:48:21 -04:00
direwolf Update direwolf-pacsatsim.conf TX delay 30 2026-08-25 20:40:22 -04:00
groundstation Update pacsat.sh Pacsat 2026-09-05 10:41:39 -04:00
hardware Update README.md 2025-11-19 09:49:28 -05:00
OliveTin Update config.yaml add Pi Hardware and Software 2026-09-18 15:53:51 -04:00
spacecraft Add files via upload 2026-05-25 10:16:23 -04:00
spreadsheet Rename readme.txt to readme.md 2021-10-23 09:43:04 -04:00
sstv Add files via upload 2026-09-16 14:23:11 -05:00
stempayload Update README.md 2026-08-14 23:41:03 -04:00
systemd Update frequency.service add cpuquota 50% 2026-08-17 15:50:38 -04:00
wav Delete afsk6.wav 2021-06-28 14:42:58 -04:00
.gitignore Update .gitignore add camera.jpg 2026-09-16 16:30:02 -04:00
asound.conf Update asound.conf add MicVolume 2026-08-20 10:30:38 -04:00
codecAO40.c Update codecAO40.c moved variables 2025-01-19 10:55:53 -05:00
codecAO40.h Update codecAO40.h added fec defines 2025-01-19 11:06:37 -05:00
command Update command print MicVolume 2026-09-05 07:40:52 -04:00
config Update config still -n no preview 2026-09-18 23:26:39 -04:00
direwolf-cc.conf Update direwolf-cc.conf add plughw 2026-09-19 15:56:20 -04:00
dtmf_aprs_cc.py Update dtmf_aprs_cc.py fix PacSat 2026-06-06 08:35:30 -04:00
fecConstants.h add files from funcube-dev/funcubeLib 2025-01-19 14:23:37 +02:00
frequency.py Update frequency.py fix udo 2026-08-27 17:13:03 -04:00
frequency.sh Update and rename rigctld.sh to frequency.sh 2026-07-04 07:07:50 -04:00
gps_client.py Update gps_client.py -1 result if gpsd not installed 2026-01-23 22:33:59 -05:00
hotspot_ini Update hotspot_ini changed to hotspot_default 2026-08-09 14:05:16 -04:00
ina219.py Update ina219.py to avoid BrokenPipeError 2023-11-07 15:23:49 -05:00
install Update install move config -L to after asound.conf 2026-09-07 00:01:00 -04:00
install.sh adding back in links 2021-06-09 02:10:36 +01:00
LICENSE Rename gpl.txt to LICENSE for recognitopn by github 2025-07-31 23:00:43 -05:00
log Update log don't cat log after real time 2026-08-17 15:57:00 -04:00
main.c Update main.c remove is_safe_input test 2026-08-19 09:25:35 -04:00
main.h Merge pull request #445 from edstone26/master 2026-08-19 06:53:39 -06:00
Makefile Update Makefile fix typos 2025-08-22 10:24:40 -04:00
motd.txt Create motd.txt 2026-01-16 10:23:48 -05:00
pacsatsim.sh Update pacsatsim.sh config -z 2026-09-18 15:11:13 -04:00
pushbutton.py Update pushbutton.py add ttyd -W 2026-08-10 15:25:24 -04:00
README.md Update README.md added link to Bookworm discussion 2026-01-08 16:27:49 -05:00
sensor_extension.c Update sensor_extension.c remove extra 2025-09-05 09:33:16 -04:00
squelch_cc.py Update squelch_cc.py wall incrementing mode message 2025-06-15 16:55:08 -04:00
telem.c Update telem.c v2.3 2026-08-18 13:58:10 -04:00
TelemEncoding.c added (int) to remove compiler warning 2021-06-26 10:23:04 -04:00
TelemEncoding.h moving 2021-06-24 11:57:04 -04:00
transmit.py Update transmit.py increase csdr gain repeater mode 2026-09-19 15:38:28 -04:00
update delete update and replace with link to install 2026-03-09 15:44:07 +00:00
update.sh adding back in links 2021-06-09 02:10:36 +01:00
venv.sh venv as script 2026-08-06 12:19:06 -04:00
Welcome_Message.txt Create Welcome_Message.txt 2026-09-14 14:22:38 -04:00

CubeSatSim

The CubeSat Simulator https://github.com/alanbjohnston/CubeSatSim/wiki is a low cost satellite emulator that runs on solar panels and batteries, transmits UHF radio telemetry, has a 3D printed frame, and can be extended by additional sensors and modules. This project is sponsored by the not-for-profit Radio Amateur Satellite Corporation, AMSAT® https://CubeSatSim.org

CubeSatSim v2

The three custom PCBs are the Main, Battery and Solar boards. Information including schematics and gerbers is in https://CubeSatSim.org/hardware

cubesatsim-main-v2 0 1_top cubesatsim-battery-v2 0_top cubesatsim-solar-v2 0_top

For information about the AMSAT STEM education program based on the CubeSatSim, see https://CubeSatSim.org/EducatorsGuide

For STEM activities to do with the CubeSatSim, see the https://CubeSatSim.org/ActivityGuides

There are several hardware versions and software branches to go with them - see below for information.

See the Wiki Software Install page for more details: https://github.com/alanbjohnston/CubeSatSim/wiki/2.-Software-Install. The software runs on any Raspberry Pi including the Raspberry Pi 4B, 3B, 3B+, Pi Zero, Pi Zero W, or Pi Zero 2 W.

There are two ways to get the CubeSatSim(TM) software for your Pi.

One option is to download the disk image file and write it to a 16GB micro SD card or larger. The image is based on Raspberry Pi OS (Bulleye) Lite. All software is installed, you just need to login to change your password and set your amateur radio callsign if you have one. You can run the ./update.sh script to update all packages and update and compile the latest CubeSatSim software.

The other option is to start with a Raspberry Pi OS (Rasbian) image (only Bullseye works, Bookworm or Trixie are not compatible) and run the installation script ./install.sh which will install and compile all the related software. This includes the following packages:

  • wiringpi
  • git
  • libasound2-dev
  • pi-power-button
  • Direwolf
  • rpitx
  • python3-pip
  • python3-smbus

Disk Image Option Steps

See the Wiki Software Install page for details: https://github.com/alanbjohnston/CubeSatSim/wiki/2.-Software-Install.

Installation Script Option Steps

CubeSatSim runs on the Bullseye version of Raspberry Pi OS (Desktop or Lite), although a Pi Zero or Pi Zero W should only run Lite. Your Pi will need to have internet access to update settings and install packages.

For the status of our efforts to get the code running on Bookworm, see https://github.com/alanbjohnston/CubeSatSim/discussions/389

Here is a Bullseye Pi OS image that works: https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2023-05-03/ Here is the file download link: https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-full.img.xz

You can use this with the Raspberry Pi Imager, but under OS you need to choose the Use Custom option at the very bottom of the list, then select the downloaded image 2023-05-03-raspios-bullseye-armhf-full.img.xz

Unfortunately, Customization is not supported with a Custom image, so you can't preset your username, password, localization, and WiFi settings.

So after you write this image to your microSD card, you will need to connect a monitor and keyboard to your Pi Zero 2 to set these things (make sure you set pi as the username). After that, you can connect it to your WiFi and turn on ssh and vnc for remote access.

You can then follow the software installation steps and it work work. The only hiccup is that if you run the installer script while running the Desktop, the Direwolf installation will freeze. But you can just cycle the power to the Pi Zero 2, then run the installer script again and it will complete successfully. Alternatively, if you use sudo raspi-config to change to Boot to Console (System/ Boot Auto Login/ Console or Console Auto Login) then the installer script will complete without any issues.

Note: CubeSatSim expects to be installed as the pi user and references many paths in /home/pi/*. Installing as a different user will result in configuration files not saving along with many other issues.

To install the software follow these steps:

sudo apt-get update

sudo apt-get install -y git

git clone http://github.com/alanbjohnston/CubeSatSim.git

cd CubeSatSim

git checkout master

# You are now ready to install the software using this script in the CubeSatSim directory:

./install

The installation script will run for quite a while. You will get prompted for your amateur radio callsign in all capitals, if you have one. If you don't you can put some other word which will be transmitted as a CW ID. You will also be prompted for your latitude and longitude for APRS packets. The script will prompt you if you want to modify /boot/config.txt file. Type a y and the script will complete. You will need to reboot.

See the Wiki for more details about the CubeSatSim https://github.com/alanbjohnston/CubeSatSim/wiki

Here are some Quick Start Guides for operating the CubeSatSim: https://CubeSatSim.org/qsg

Older Versions

There are several versions of the hardware and software to go with them: