diff --git a/gpl.txt b/LICENSE
similarity index 100%
rename from gpl.txt
rename to LICENSE
diff --git a/README.md b/README.md
index 12d91dec..a649a4f8 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,16 @@
# 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://amsat.org).
+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://amsat.org) https://CubeSatSim.org
+
+
The three custom PCBs are the Main, Battery and Solar boards. Information including schematics and gerbers is in https://CubeSatSim.org/hardware
-
+
+
+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.
diff --git a/config b/config
index f36c9af8..092c9d55 100755
--- a/config
+++ b/config
@@ -1799,9 +1799,10 @@ elif [ "$1" = "-h" ]; then
echo " -R Change the Commands Count in the file command_count.txt"
echo " -B Change Safe Mode (battery saver mode) manually"
echo " -q Change the Squelch setting for command receiver"
+ echo " -Q Read the current Squelch for 10 seconds"
echo " -F Change the RX and TX frequency"
echo " -H Change the Balloon (HAB) mode"
- echo " -p Display payload sensor data"
+ echo " -p Display payload sensor data for 3 seconds"
echo " -v Display voltage and current data"
echo " -P Change the PL (Private Line) CTCSS/CDCSS codes for RX and TX"
echo " -A Transmit APRS control packets to control another CubeSatSim"
diff --git a/hardware/frame/v2.0/2u/cubesatsim_frame_connector.v2.0.stl b/hardware/frame/v2.0/2u/cubesatsim_frame_connector.v2.0.stl
new file mode 100644
index 00000000..b63a2af7
Binary files /dev/null and b/hardware/frame/v2.0/2u/cubesatsim_frame_connector.v2.0.stl differ
diff --git a/hardware/frame/v2.0/2u/readme.md b/hardware/frame/v2.0/2u/readme.md
new file mode 100644
index 00000000..ec399b3b
--- /dev/null
+++ b/hardware/frame/v2.0/2u/readme.md
@@ -0,0 +1,7 @@
+Here is the source for the 2U Connector part: https://cad.onshape.com/documents/eecb39d3cd81220d3a56ce06/v/fdc9aca356206986ef6440e6/e/f881e9547bb3cd4fd653d041
+
+You can export it in other formats
+
+You will also need two additional frame sides
+
+Here's how to upgrade a 1U CubeSatSim https://github.com/alanbjohnston/CubeSatSim/wiki/Upgrading-to-2U
diff --git a/hardware/frame/v2.0/readme.md b/hardware/frame/v2.0/readme.md
index 109e876d..b5828009 100644
--- a/hardware/frame/v2.0/readme.md
+++ b/hardware/frame/v2.0/readme.md
@@ -9,3 +9,5 @@ The source is availale at:
https://cad.onshape.com/documents/ba47819ff100597297d1d967/w/f19409ec7cd5459afb429cb9/e/a0e0cc37dee6fb879c4bcc2b
https://cad.onshape.com/documents/1515e31c7fa5f6258ef39ae7/w/36f6069826ee0c0263f8d85e/e/2b7801717a8e1af3df455057
https://cad.onshape.com/documents/188300bd4469521b14597507/w/546e1730182c1520c46b050d/e/ceef7084a00eb9b26c486bb6
+
+To make a 2U frame, also print the 2U connector part in https://github.com/alanbjohnston/CubeSatSim/tree/master/hardware/frame/v2.0/2u and print two additional side parts. See https://github.com/alanbjohnston/CubeSatSim/wiki/Upgrading-to-2U for more information.
diff --git a/hardware/lite/v2/README.md b/hardware/lite/v2/README.md
new file mode 100644
index 00000000..3810277c
--- /dev/null
+++ b/hardware/lite/v2/README.md
@@ -0,0 +1,13 @@
+Here is information about the CubeSatSim Lite v2 hardware
+
+cubesatsim-Lite_2.0.1_gerbers.zip -- All gerber files used to fabricate PCBs
+
+cubesatsim-Lite_2.0.1_schematic.pdf -- Schematic
+
+cubesatsim-Lite_2.0.1.mnt -- SMD file
+
+cubesatsim-lLite_2.0.1_pcb.png -- image of board
+
+cubesatsim-Lite_2.0.1_bom.csv.txt -- Bill of Materials (BOM)
+
+For more information see https://github.com/alanbjohnston/CubeSatSim/wiki/CubeSatSim-Lite
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnb b/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnb
new file mode 100644
index 00000000..e97af237
--- /dev/null
+++ b/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnb
@@ -0,0 +1,5 @@
+JP1 44.68 53.87 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP2 23.14 59.97 0 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP3 21.74 56.03 270 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP6 33.99 59.61 0 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP7 16.00 63.09 90 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnt b/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnt
new file mode 100644
index 00000000..9e31062d
--- /dev/null
+++ b/hardware/lite/v2/cubesatsim-Lite-v2.0.1.mnt
@@ -0,0 +1,26 @@
+C1 8.36 61.93 0 18pF C0603
+C2 10.03 61.90 0 16pF C0603
+C3 56.06 58.32 90 18pF C0603
+C4 55.47 62.84 270 16pF C0603
+C7 49.23 56.57 0 DNI/47uF C0603
+C8 50.47 47.68 270 DNI/100nF C0603
+E1 3.63 53.23 270 ANT-916-CHP-T XDCR_ANT-916-CHP-T
+E2 61.39 53.21 270 ANT-916-CHP-T XDCR_ANT-916-CHP-T
+J1 32.55 66.61 0 CONN_20X2 2X20
+J13 9.25 45.02 180 SJ1-2503A CONN_SJ1-2503A
+J14 55.07 45.08 180 SJ1-2503A CONN_SJ1-2503A
+L1 9.22 59.44 180 13nH L0603
+L2 56.24 60.55 270 13nH L0603
+LED5 19.08 42.09 270 GREEN LED-0603
+LED6 43.94 41.91 270 BLUE LED-0603
+R2 46.63 62.48 180 DNI/1k R0603
+R4 51.18 62.51 180 DNI/1k R0603
+R10 12.70 41.91 90 DNI/1k 0603-RES
+R11 51.66 41.91 90 DNI/100 0603-RES
+R16 13.79 60.22 0 DNI/68 R0805
+R17 18.44 60.33 270 DNI/180 R0603
+R18 26.67 60.22 180 DNI/68 R0805
+R21 48.90 51.23 0 DNI/100 R0603
+R22 55.14 51.99 0 DNI/220 R0603
+S2 7.80 51.82 90 DTSM-6 DTSM-6
+U6 32.94 51.75 270 SR105U SR_FRS_0W5
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bom.csv.txt b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bom.csv.txt
new file mode 100644
index 00000000..44718daa
--- /dev/null
+++ b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bom.csv.txt
@@ -0,0 +1,53 @@
+"Part";"Value";"Device";"Package";"Description";"";
+"C1";"18pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C2";"16pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C3";"18pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C4";"16pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C5";"47uF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
+"C6";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
+"C7";"DNI/47uF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C8";"DNI/100nF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"E1";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
+"E2";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
+"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J2";"";"CONN_021X02_NO_SILK";"1X02_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J6";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"J10";"DNI/Sparkfun QWIIC Breakout";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J12";"DNI/1x4 pin header";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J13";"SJ1-2503A";"SJ1-2503A";"CONN_SJ1-2503A";"";"";
+"J14";"SJ1-2503A";"SJ1-2503A";"CONN_SJ1-2503A";"";"";
+"J15";"";"CONN_06NO_SILK_NO_POP";"1X06_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP1";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP2";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP3";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP6";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP7";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"L1";"13nH";"SMD-FERRITE-CHIP-120-OHM-500MA(0603)";"L0603";"303030001";"";
+"L2";"13nH";"SMD-FERRITE-CHIP-120-OHM-500MA(0603)";"L0603";"303030001";"";
+"LED3";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED4";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED5";"GREEN";"LED-GREEN0603";"LED-0603";"Green SMD LED";"";
+"LED6";"BLUE";"LED-BLUE0603";"LED-0603";"Blue SMD LED";"";
+"R1";"1K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R2";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R3";"1K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R4";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R7";"1k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R8";"DNI/100";"RESISTOR0603";"0603-RES";"Resistor";"";
+"R10";"DNI/1k";"RESISTOR0603-RES";"0603-RES";"Resistor";"";
+"R11";"100";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R13";"68";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R14";"180";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R15";"68";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R16";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R17";"DNI/180";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R18";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R19";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R20";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R21";"DNI/100";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R22";"DNI/220";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"S1";"RA-SPST";"RA-SPST";"RA-SPST";"";"";
+"S2";"DTSM-6";"DTSM-6";"DTSM-6";"";"";
+"U1";"SR105U";"SR_FRS_0W5";"SR_FRS_0W5";"";"";
+"X2";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
+"X3";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bottom.png b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bottom.png
new file mode 100644
index 00000000..ecafa19d
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_bottom.png differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_centroid.zip b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_centroid.zip
new file mode 100644
index 00000000..314a9832
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_centroid.zip differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_gerbers.zip b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_gerbers.zip
new file mode 100644
index 00000000..ad1a58ef
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_gerbers.zip differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pcb.png b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pcb.png
new file mode 100644
index 00000000..be0e7e5d
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pcb.png differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pour.png b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pour.png
new file mode 100644
index 00000000..6eb98adf
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_pour.png differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_schematic.pdf b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_schematic.pdf
new file mode 100644
index 00000000..b3b16fc0
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_schematic.pdf differ
diff --git a/hardware/lite/v2/cubesatsim-Lite-v2.0.1_top.png b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_top.png
new file mode 100644
index 00000000..2f3b0145
Binary files /dev/null and b/hardware/lite/v2/cubesatsim-Lite-v2.0.1_top.png differ
diff --git a/hardware/lite/vB5/README.md b/hardware/lite/vB5/README.md
index af044d35..8d6f40d6 100644
--- a/hardware/lite/vB5/README.md
+++ b/hardware/lite/vB5/README.md
@@ -10,4 +10,4 @@ cubesatsim-lite-0.5_pcb.png -- image of board
cubesatsim-lite-0.5.csv.txt -- Bill of Materials (BOM)
-For more information see https://github.com/alanbjohnston/CubeSatSim/wiki/CubeSatSim-Lite
+For more information see https://github.com/alanbjohnston/CubeSatSim/wiki/CubeSatSim-Lite-Beta-vB5
diff --git a/hardware/v2.1/CubeSatSim Main v2.1.0 BOM.xls b/hardware/v2.1/CubeSatSim Main v2.1.0 BOM.xls
new file mode 100644
index 00000000..ae5f101c
Binary files /dev/null and b/hardware/v2.1/CubeSatSim Main v2.1.0 BOM.xls differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_bom.csv.txt b/hardware/v2.1/cubesatsim-battery-v2.1.0_bom.csv.txt
new file mode 100644
index 00000000..a60a8138
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-battery-v2.1.0_bom.csv.txt
@@ -0,0 +1,23 @@
+"Part";"Value";"Device";"Package";"Description";"";
+"BT1";"1024";"1024";"BAT_1024";"Check availability";"";
+"BT2";"1012";"1012";"BAT_1012";"Check availability";"";
+"C1";"DNI/0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"F1";"PTC";"PTCPTH";"PTC";"Resettable Fuse PTC";"";
+"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP1";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP2";"";"CONN_01";"1X01";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP3";"";"CONN_01";"1X01";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP4";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP5";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP6";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP7";"";"CONN_01";"1X01";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP8";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP10";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP11";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP13";"";"CONN_01";"1X01";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP14";"";"CONN_01";"1X01";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"R1";"DNI/R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R2";"10k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R3";"10k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"U1";"INA219 purple board";"INA219";"INA219";"";"";
+"U2";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_bottom.png b/hardware/v2.1/cubesatsim-battery-v2.1.0_bottom.png
new file mode 100644
index 00000000..58d2adcd
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_bottom.png differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_centroid.zip b/hardware/v2.1/cubesatsim-battery-v2.1.0_centroid.zip
new file mode 100644
index 00000000..ab278a89
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_centroid.zip differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_gerbers.zip b/hardware/v2.1/cubesatsim-battery-v2.1.0_gerbers.zip
new file mode 100644
index 00000000..428226d4
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_gerbers.zip differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_pcb.png b/hardware/v2.1/cubesatsim-battery-v2.1.0_pcb.png
new file mode 100644
index 00000000..a8b4d242
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_pcb.png differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_pour.png b/hardware/v2.1/cubesatsim-battery-v2.1.0_pour.png
new file mode 100644
index 00000000..b9e7ebdc
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_pour.png differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_schematic.pdf b/hardware/v2.1/cubesatsim-battery-v2.1.0_schematic.pdf
new file mode 100644
index 00000000..f0375bc0
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_schematic.pdf differ
diff --git a/hardware/v2.1/cubesatsim-battery-v2.1.0_top.png b/hardware/v2.1/cubesatsim-battery-v2.1.0_top.png
new file mode 100644
index 00000000..7c8db0c7
Binary files /dev/null and b/hardware/v2.1/cubesatsim-battery-v2.1.0_top.png differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0.mnb b/hardware/v2.1/cubesatsim-main-v2.1.0.mnb
new file mode 100644
index 00000000..b8b888f9
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-main-v2.1.0.mnb
@@ -0,0 +1,18 @@
+D1 63.55 60.58 0 BYW27-400 D-2.5
+D2 72.01 10.49 0 1N5817 D-2.5
+D3 66.45 10.62 180 1N4148 D-2.5
+D8 59.31 7.52 270 DNI/5V1 Zener 1W ZDIO-2.5
+D10 77.50 10.46 0 1N5817 D-2.5
+JP1 72.17 8.66 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP2 24.73 60.99 0 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP3 16.08 58.12 270 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP4 59.36 56.39 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP5 75.08 56.48 270 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP6 26.21 35.94 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+JP7 15.95 62.24 90 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP8 47.28 30.91 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP9 44.21 61.82 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP10 63.61 56.54 0 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+JP11 14.63 52.17 180 JUMPER-SMT_2_NC_TRACE_SILK SMT-JUMPER_2_NC_TRACE_SILK
+U7 36.42 49.89 0 DRA818V DORJI_DRA818V
+X1 71.86 61.21 270 SC1464-ND PG203J
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0.mnt b/hardware/v2.1/cubesatsim-main-v2.1.0.mnt
new file mode 100644
index 00000000..c33a4c37
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-main-v2.1.0.mnt
@@ -0,0 +1,39 @@
+C1 18.75 76.02 270 18pF C0603
+C2 18.69 71.88 270 16pF C0603
+C3 16.38 10.11 180 18pF C0603
+C4 20.68 10.16 180 16pF C0603
+C7 55.60 56.62 0 DNI/47uF C0603
+C8 59.00 47.55 270 DNI/100nF C0603
+C10 66.83 3.91 270 DNI/100nF C0603
+D5 63.42 62.53 0 DNI/1N4007FL SOD-123FL
+D6 72.16 8.69 180 DNI/B5817WS SOD-323F
+D7 66.47 8.84 0 DNI/4148WS SOD-323F
+E1 6.80 76.35 180 ANT-916-CHP-T XDCR_ANT-916-CHP-T
+E2 19.18 3.81 0 ANT-916-CHP-T XDCR_ANT-916-CHP-T
+F2 63.68 57.18 180 DNI/MF-FSML100/8-2 0603
+J1 32.55 66.61 0 CONN_20X2 2X20
+J8 36.17 72.01 0 Sparkfun USB-C Breakout 1X06_NO_SILK
+J9 36.35 74.15 180 DNI/USB4105-GF-A or GT-USB-7010B USB-C-16P-2LAYER-PADS
+J13 8.92 31.68 0 SJ1-2503A CONN_SJ1-2503A
+J14 15.95 31.76 0 SJ1-2503A CONN_SJ1-2503A
+L1 16.76 73.94 90 13nH L0603
+L2 18.49 12.17 180 13nH L0603
+R2 54.00 62.26 0 DNI/1k R0603
+R4 58.39 62.26 180 DNI/1k R0603
+R5 29.46 76.45 180 DNI/5.1k R0603
+R6 43.18 76.48 0 DNI/5.1k R0603
+R10 64.26 72.06 0 DNI/1k R0603
+R11 24.16 72.06 0 DNI/100 R0603
+R12 47.55 72.42 0 DNI/220 R0603
+R16 20.07 60.05 0 DNI/68 R0805
+R17 24.71 60.15 270 DNI/180 R0603
+R18 32.94 60.20 180 DNI/68 R0805
+R21 55.42 51.26 0 DNI/100 R0603
+R22 59.33 44.63 0 DNI/220 R0603
+R25 67.59 40.77 90 DNI/4.7k R0603
+R26 76.53 40.79 90 DNI/4.7k R0603
+R28 61.98 8.81 0 DNI/10k R0603
+R31 3.86 44.37 0 DNI/220 R0603
+R32 3.40 60.55 180 DNI/1k R0603
+U1 54.36 27.48 270 Raspberry Pi Pico PICO-PKG-NO_DEBUG
+U6 39.24 51.22 270 SR105U SR_FRS_0W5
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_bom.csv.txt b/hardware/v2.1/cubesatsim-main-v2.1.0_bom.csv.txt
new file mode 100644
index 00000000..b75fcd21
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-main-v2.1.0_bom.csv.txt
@@ -0,0 +1,94 @@
+"Part";"Value";"Device";"Package";"Description";"";
+"C1";"18pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C2";"16pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C3";"18pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C4";"16pF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C5";"47uF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
+"C6";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
+"C7";"DNI/47uF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C8";"DNI/100nF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"C9";"100nF";"CAPPTH";"CAP-PTH-SMALL";"Capacitor";"";
+"C10";"DNI/100nF";"CERAMIC-10PF-50V-5%-NPO(0603)";"C0603";"302010097";"";
+"D1";"BYW27-400";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D2";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D3";"1N4148";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D5";"DNI/1N4007FL";"DIODE_SOD-123FL";"SOD-123FL";"Diode";"";
+"D6";"DNI/B5817WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
+"D7";"DNI/4148WS";"DIODESOD-323F";"SOD-323F";"Diode";"";
+"D8";"DNI/5V1 Zener 1W";"ZENER-DIODEZD-2.5";"ZDIO-2.5";"Z-Diode";"";
+"D10";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"E1";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
+"E2";"ANT-916-CHP-T";"ANT-916-CHP-T";"XDCR_ANT-916-CHP-T";"868MHz ISM, LoRa, Sensor Networks, SigFox Chip RF Antenna 863MHz ~ 873MHz 0.5dBi Solder Surface Mount Check prices";"";
+"F1";"RHEF100-2";"PTCPTH";"PTC";"Resettable Fuse PTC";"";
+"F2";"DNI/MF-FSML100/8-2";"PTC0603";"0603";"Resettable Fuse PTC";"";
+"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J4";"MPU6050";"M08NO_SILK_FEMALE_PTH";"1X08_NO_SILK@1";"Header 8";"";
+"J5";"BME280";"M04NO_SILK_ALL_ROUND";"1X04_NO_SILK_ALL_ROUND";"Header 4";"";
+"J6";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"J7";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"J8";"Sparkfun USB-C Breakout";"CONN_06NO_SILK_FEMALE_PTH";"1X06_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J9";"DNI/USB4105-GF-A or GT-USB-7010B";"USB_C_2-LAYER_PADS";"USB-C-16P-2LAYER-PADS";"USB Type C 16Pin Connector";"";
+"J10";"DNI/Sparkfun QWIIC Breakout";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J12";"DNI/1x4 pin header";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J13";"SJ1-2503A";"SJ1-2503A";"CONN_SJ1-2503A";"";"";
+"J14";"SJ1-2503A";"SJ1-2503A";"CONN_SJ1-2503A";"";"";
+"J15";"";"CONN_06NO_SILK_NO_POP";"1X06_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP1";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP2";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP3";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP4";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP5";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP6";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP7";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP8";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP9";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP10";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP11";"JUMPER-SMT_2_NC_TRACE_SILK";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"L1";"13nH";"SMD-FERRITE-CHIP-120-OHM-500MA(0603)";"L0603";"303030001";"";
+"L2";"13nH";"SMD-FERRITE-CHIP-120-OHM-500MA(0603)";"L0603";"303030001";"";
+"LED1";"White 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED2";"Yellow 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED3";"Green 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED4";"Blue 5mm";"LED3MM";"LED3MM";"LED";"";
+"LED5";"Red 5mm";"LED3MM";"LED3MM";"LED";"";
+"R1";"1K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R2";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R3";"1K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R4";"DNI/1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R5";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R6";"DNI/5.1k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R7";"1k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R8";"100";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R9";"220";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R10";"DNI/1k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R11";"DNI/100";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R12";"DNI/220";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R13";"68";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R14";"180";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R15";"68";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R16";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R17";"DNI/180";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R18";"DNI/68";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R19";"100";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R20";"220";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R21";"DNI/100";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R22";"DNI/220";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R23";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R24";"4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R25";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R26";"DNI/4.7k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R27";"10K";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R28";"DNI/10k";"R-EU_R0603";"R0603";"RESISTOR, European symbol";"";
+"R29";"220";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R30";"1k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R31";"DNI/220";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R32";"DNI/1k";"SMD-RES-1.2K-1%-1/10W(0603)";"R0603";"301010206";"";
+"R33";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"R34";"DNI/4.7k";"RESISTORPTH-1/4W-VERT";"AXIAL-0.1";"Resistor";"";
+"S1";"RA-SPST";"RA-SPST";"RA-SPST";"";"";
+"U1";"Raspberry Pi Pico";"RASPBERRY_PICO-NO_DEBUG";"PICO-PKG-NO_DEBUG";"";"";
+"U6";"SR105U";"SR_FRS_0W5";"SR_FRS_0W5";"";"";
+"U7";"DRA818V";"DRA818V";"DORJI_DRA818V";"Check availability";"";
+"X1";"SC1464-ND";"PG203J";"PG203J";"MIC/HEADPHONE JACK";"";
+"X2";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
+"X3";"SMA-VERT";"SMA-VERT";"SMA-VERT";"";"";
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_bottom.png b/hardware/v2.1/cubesatsim-main-v2.1.0_bottom.png
new file mode 100644
index 00000000..c5a4429a
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_bottom.png differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_centroid.zip b/hardware/v2.1/cubesatsim-main-v2.1.0_centroid.zip
new file mode 100644
index 00000000..27156c2c
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_centroid.zip differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_gerbers.zip b/hardware/v2.1/cubesatsim-main-v2.1.0_gerbers.zip
new file mode 100644
index 00000000..095b9c1a
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_gerbers.zip differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_pcb.png b/hardware/v2.1/cubesatsim-main-v2.1.0_pcb.png
new file mode 100644
index 00000000..92150f61
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_pcb.png differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_pour.png b/hardware/v2.1/cubesatsim-main-v2.1.0_pour.png
new file mode 100644
index 00000000..5c4dce49
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_pour.png differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_schematic.pdf b/hardware/v2.1/cubesatsim-main-v2.1.0_schematic.pdf
new file mode 100644
index 00000000..46ae259f
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_schematic.pdf differ
diff --git a/hardware/v2.1/cubesatsim-main-v2.1.0_top.png b/hardware/v2.1/cubesatsim-main-v2.1.0_top.png
new file mode 100644
index 00000000..180a19c5
Binary files /dev/null and b/hardware/v2.1/cubesatsim-main-v2.1.0_top.png differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0._gerbers.zip b/hardware/v2.1/cubesatsim-solar-v2.1.0._gerbers.zip
new file mode 100644
index 00000000..ed8ec3cb
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0._gerbers.zip differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0.mnb b/hardware/v2.1/cubesatsim-solar-v2.1.0.mnb
new file mode 100644
index 00000000..3ac6ed08
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-solar-v2.1.0.mnb
@@ -0,0 +1,12 @@
+D1 37.58 48.87 180 1N5817 D-2.5
+D2 37.66 42.52 180 1N5817 D-2.5
+D3 37.50 35.95 180 1N5817 D-2.5
+D4 42.94 48.94 0 1N5817 D-2.5
+D5 42.94 42.42 0 1N5817 D-2.5
+D6 42.79 36.07 0 1N5817 D-2.5
+JP9 1.35 57.85 270 VDD-EN SMT-JUMPER_2_NC_TRACE_SILK
+JP18 24.75 62.60 180 JUMPER-SMT_2_NO_SILK SMT-JUMPER_2_NO_SILK
+U5 71.44 19.89 90 INA219 purple board INA219
+U6 8.59 48.95 270 INA219 purple board INA219
+U7 8.46 20.29 270 INA219 purple board INA219
+U8 71.36 48.21 90 INA219 purple board INA219
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0.mnt b/hardware/v2.1/cubesatsim-solar-v2.1.0.mnt
new file mode 100644
index 00000000..54cb3f58
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-solar-v2.1.0.mnt
@@ -0,0 +1,29 @@
+C2 17.54 37.77 0 0.1µF 0603
+C3 17.41 21.59 0 0.1µF 0603
+C4 17.56 11.14 0 0.1µF 0603
+C5 17.53 50.09 0 0.1µF 0603
+C6 61.82 19.28 180 0.1µF 0603
+C7 62.06 38.65 180 0.1µF 0603
+D7 42.95 38.00 0 1A/23V/620mV SOD-323
+D8 43.08 44.40 0 1A/23V/620mV SOD-323
+D9 43.43 50.75 0 1A/23V/620mV SOD-323
+D10 37.72 50.67 180 1A/23V/620mV SOD-323
+D11 37.62 37.92 180 1A/23V/620mV SOD-323
+D12 37.90 44.40 180 1A/23V/620mV SOD-323
+J1 32.55 66.61 0 CONN_20X2 2X20
+R1 11.58 43.79 270 R100 R0805
+R2 11.68 15.01 270 R100 R0805
+R5 24.84 14.99 90 R100 R0805
+R6 24.87 43.84 270 R100 R0805
+R9 68.07 25.10 90 R100 R0805
+R10 68.19 53.47 90 R100 R0805
+R11 42.91 62.08 0 DNI-4.7k R0603
+R12 36.87 62.08 0 DNI-4.7k R0603
+U2 17.53 44.60 0 INA219AIDR D0008A_N
+U3 48.65 48.20 90 INA219 purple board INA219
+U4 30.84 48.90 270 INA219 purple board INA219
+U10 17.45 26.75 0 INA219AIDR D0008A_N
+U11 17.68 16.66 0 INA219AIDR D0008A_N
+U12 17.50 55.36 0 INA219AIDR D0008A_N
+U13 61.72 24.82 0 INA219AIDR D0008A_N
+U14 61.58 44.20 0 INA219AIDR D0008A_N
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_bom.csv.txt b/hardware/v2.1/cubesatsim-solar-v2.1.0_bom.csv.txt
new file mode 100644
index 00000000..200e9fdb
--- /dev/null
+++ b/hardware/v2.1/cubesatsim-solar-v2.1.0_bom.csv.txt
@@ -0,0 +1,71 @@
+"Part";"Value";"Device";"Package";"Description";"";
+"C2";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"C3";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"C4";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"C5";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"C6";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"C7";"0.1µF";"CAP_CERAMIC0603";"0603";"Ceramic Capacitors";"";
+"D1";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D2";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D3";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D4";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D5";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D6";"1N5817";"DIODE-D-2.5";"D-2.5";"DIODE";"";
+"D7";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"D8";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"D9";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"D10";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"D11";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"D12";"1A/23V/620mV";"DIODE-SCHOTTKY-BAT20J";"SOD-323";"Schottky diode";"";
+"J1";"CONN_20X2";"CONN_20X2";"2X20";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"J5";"DNI/Sparkfun QWIIC Breakout";"CONN_041X04_NO_SILK";"1X04_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP1";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP2";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP3";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP4";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP5";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP6";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP7";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP8";"Micro JST";"CONN_021X02_NO_SILK";"1X02_NO_SILK";"Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP9";"VDD-EN";"JUMPER-SMT_2_NC_TRACE_SILK";"SMT-JUMPER_2_NC_TRACE_SILK";"Normally closed trace jumper";"";
+"JP10";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP11";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP12";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP13";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP14";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP15";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP16";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP17";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP18";"JUMPER-SMT_2_NO_SILK";"JUMPER-SMT_2_NO_SILK";"SMT-JUMPER_2_NO_SILK";"Normally open jumper";"";
+"JP19";"";"CONN_01PTH_NO_SILK_YES_STOP";"1X01_NO_SILK";"Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections";"";
+"JP20";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP21";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP22";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP23";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP24";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP25";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"JP26";"Micro JST";"M02JST-PTH-VERT";"JST-2-PTH-VERT";"Standard 2-pin 0.1" header. Use with";"";
+"R1";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R2";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R3";"4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R4";"4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R5";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R6";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R7";"DNI-4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R8";"DNI-4.7k";"RESISTORPTH-1/4W-VERT-KIT";"AXIAL-0.1EZ";"Resistor";"";
+"R9";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R10";"R100";"R-US_R0805";"R0805";"RESISTOR, American symbol";"";
+"R11";"DNI-4.7k";"R-US_R0603";"R0603";"RESISTOR, American symbol";"";
+"R12";"DNI-4.7k";"R-US_R0603";"R0603";"RESISTOR, American symbol";"";
+"U2";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
+"U3";"INA219 purple board";"INA219";"INA219";"";"";
+"U4";"INA219 purple board";"INA219";"INA219";"";"";
+"U5";"INA219 purple board";"INA219";"INA219";"";"";
+"U6";"INA219 purple board";"INA219";"INA219";"";"";
+"U7";"INA219 purple board";"INA219";"INA219";"";"";
+"U8";"INA219 purple board";"INA219";"INA219";"";"";
+"U10";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
+"U11";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
+"U12";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
+"U13";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
+"U14";"INA219AIDR";"INA219AIDR";"D0008A_N";"";"";
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_bottom.png b/hardware/v2.1/cubesatsim-solar-v2.1.0_bottom.png
new file mode 100644
index 00000000..ee63809f
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_bottom.png differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_centroid.zip b/hardware/v2.1/cubesatsim-solar-v2.1.0_centroid.zip
new file mode 100644
index 00000000..e80ca696
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_centroid.zip differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_pcb.png b/hardware/v2.1/cubesatsim-solar-v2.1.0_pcb.png
new file mode 100644
index 00000000..5ab20a76
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_pcb.png differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_pour.png b/hardware/v2.1/cubesatsim-solar-v2.1.0_pour.png
new file mode 100644
index 00000000..8dd7bf7a
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_pour.png differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_schematic.pdf b/hardware/v2.1/cubesatsim-solar-v2.1.0_schematic.pdf
new file mode 100644
index 00000000..77e59fb7
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_schematic.pdf differ
diff --git a/hardware/v2.1/cubesatsim-solar-v2.1.0_top.png b/hardware/v2.1/cubesatsim-solar-v2.1.0_top.png
new file mode 100644
index 00000000..2c8e3ee3
Binary files /dev/null and b/hardware/v2.1/cubesatsim-solar-v2.1.0_top.png differ
diff --git a/hardware/v2.1/readme.md b/hardware/v2.1/readme.md
new file mode 100644
index 00000000..6e079749
--- /dev/null
+++ b/hardware/v2.1/readme.md
@@ -0,0 +1,33 @@
+
+
+
+
+Here is information about the CubeSatSim PCBs, version v2.1
+
+There are 3 boards: Main, Solar, and Battery
+
+Here's what the files are:
+
+*_gerbers.zip -- All gerber files used to fabricate PCBs along with .TXT drill file
+
+*_schematic.pdf -- Schematic
+
+*_pcb.png -- View of board
+
+*_pour.png -- View of board with fill
+
+*_top.png -- Top view of PCB generated by gerbers
+
+*_bottom.png -- Bottom view of PCB generated by gerbers
+
+*.mnt -- top SMD component placement data
+
+*.mnb -- bottom SMD component placement data
+
+*_bom.csv.txt -- Bill of Materials in CSV format
+
+I use PCBWay to fabricate PCBs https://pcbway.com
+
+Here is the bill of materials: https://CubeSatSim.org/bom
+
+Wiki instructions: https://github.com/alanbjohnston/CubeSatSim/wiki/
diff --git a/install b/install
index f722958b..6bf50f0f 100755
--- a/install
+++ b/install
@@ -192,6 +192,8 @@ sudo raspi-config nonint do_legacy 0
sudo sed -i 's/console=tty1 r/console=tty1 maxcpus=1 r/g' /boot/cmdline.txt # single core if Pi Zero 2
+ sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/cmdline.txt # single core if Pi Zero 2
+
sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/config.txt
if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/config.txt) ]]; then
diff --git a/main.c b/main.c
index c2c96a2e..107c1593 100644
--- a/main.c
+++ b/main.c
@@ -1642,40 +1642,40 @@ void get_tlm_fox() {
encodeA(b_max, 39 + head_offset, (int)(other_max[IHU_TEMP] * 10 + 0.5));
encodeB(b_max, 31 + head_offset, ((int)(other_max[SPIN] * 10)) + 2048);
- if (sensor_min[TEMP] != 1000.0) // make sure values are valid
- {
-
- encodeB(b_max, 4 + head_offset, (int)(sensor_max[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel
- encodeA(b_max, 6 + head_offset, (int)(sensor_max[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel
- encodeB(b_max, 7 + head_offset, (int)(sensor_max[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel
- encodeB(b_max, 40 + head_offset, (int)(sensor_max[GYRO_X] + 0.5) + 2048);
- encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048);
- encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048);
-
- encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure
- encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] * 10.0 + 0.5)); // Altitude
- // encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048);
- encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5));
- encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5));
- encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048);
-
- encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1]));
- encodeA(b_max, 0 + head_offset, (int)(sensor_max[XS2]));
- encodeB(b_max, 1 + head_offset, (int)(sensor_max[XS3]));
- }
- else
- {
- encodeB(b_max, 4 + head_offset, 2048); // 0
- encodeA(b_max, 6 + head_offset, 2048); // 0
- encodeB(b_max, 7 + head_offset, 2048); // 0
- encodeB(b_max, 40 + head_offset, 2048);
- encodeA(b_max, 42 + head_offset, 2048);
- encodeB(b_max, 43 + head_offset, 2048);
-
- encodeA(b_max, 48 + head_offset, 2048);
- // encodeB(b_max, 49 + head_offset, 2048);
- }
-
+ if (sensor_min[TEMP] != 1000.0) // make sure values are valid
+ {
+ encodeB(b_max, 4 + head_offset, (int)(sensor_max[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel
+ encodeA(b_max, 6 + head_offset, (int)(sensor_max[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel
+ encodeB(b_max, 7 + head_offset, (int)(sensor_max[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel
+
+ encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure
+ encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] / 10.0 + 0.5)); // Altitude
+ encodeB(b_max, 40 + head_offset, (int)(sensor_max[GYRO_X] + 0.5) + 2048);
+ encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048);
+ encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048);
+
+ encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048);
+// encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048);
+ encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5));
+ encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5));
+
+ encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1]));
+ encodeA(b_max, 0 + head_offset, (int)(sensor_max[XS2]));
+ encodeB(b_max, 1 + head_offset, (int)(sensor_max[XS3]));
+ }
+ else
+ {
+ encodeB(b_max, 4 + head_offset, 2048); // 0
+ encodeA(b_max, 6 + head_offset, 2048); // 0
+ encodeB(b_max, 7 + head_offset, 2048); // 0
+
+ encodeB(b_max, 40 + head_offset, 2048);
+ encodeA(b_max, 42 + head_offset, 2048);
+ encodeB(b_max, 43 + head_offset, 2048);
+
+ encodeA(b_max, 48 + head_offset, 2048);
+// encodeB(b_max, 49 + head_offset, 2048);
+ }
encodeA(b_min, 12 + head_offset, (int)(voltage_min[map[PLUS_X]] * 100));
encodeB(b_min, 13 + head_offset, (int)(voltage_min[map[PLUS_Y]] * 100));
encodeA(b_min, 15 + head_offset, (int)(voltage_min[map[PLUS_Z]] * 100));
@@ -1698,22 +1698,48 @@ void get_tlm_fox() {
encodeB(b_min, 31 + head_offset, ((int)(other_min[SPIN] * 10)) + 2048);
encodeB(b_min, 37 + head_offset, (int)(other_min[RSSI] + 0.5) + 2048);
encodeA(b_min, 39 + head_offset, (int)(other_min[IHU_TEMP] * 10 + 0.5));
+
+ if (sensor_min[TEMP] != 1000.0) // make sure values are valid
+ {
+ encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel
+ encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel
+ encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel
+
+ encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure
+ encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] / 10.0 + 0.5)); // Altitude
+ encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048);
+ encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048);
+ encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048);
+
+ encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048);
+// encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048);
+ encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5));
+ encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5));
+
+ encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1]));
+ encodeA(b_min, 0 + head_offset, (int)(sensor_min[XS2]));
+ encodeB(b_min, 1 + head_offset, (int)(sensor_min[XS3]));
+ }
+ else
+ {
+ encodeB(b_min, 4 + head_offset, 2048); // 0
+ encodeA(b_min, 6 + head_offset, 2048); // 0
+ encodeB(b_min, 7 + head_offset, 2048); // 0
+
+ encodeB(b_min, 40 + head_offset, 2048);
+ encodeA(b_min, 42 + head_offset, 2048);
+ encodeB(b_min, 43 + head_offset, 2048);
+
+ encodeA(b_min, 48 + head_offset, 2048);
+// encodeB(b_min, 49 + head_offset, 2048);
+ }
+ }
+ encodeA(b, 30 + head_offset, BAT2Voltage);
- if (sensor_min[TEMP] != 1000.0) // make sure values are valid
- {
- encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel
- encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel
- encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel
- encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048);
- encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048);
- encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048);
-
- encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure
- encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] * 10.0 + 0.5)); // Altitude
- encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5));
- encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5));
- encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048);
- // encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048);
+ encodeB(b, 31 + head_offset, ((int)(other[SPIN] * 10)) + 2048);
+
+ encodeA(b, 33 + head_offset, (int)(sensor[PRES] + 0.5)); // Pressure
+ encodeB(b, 34 + head_offset, (int)(sensor[ALT] / 10.0 + 0.5)); // Altitude
encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1]));
@@ -1796,6 +1822,8 @@ void get_tlm_fox() {
encodeA(b, 51 + head_offset, status);
encodeB(b, 52 + head_offset, rxAntennaDeployed + txAntennaDeployed * 2 + c2cStatus * 4);
+ encodeA(b, 53 + head_offset, groundCommandCount);
+
if (mode == BPSK) {
encodeA(b_max, 51 + head_offset, status);
encodeA(b_min, 51 + head_offset, status);
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_maxtelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_maxtelemetry.csv
new file mode 100644
index 00000000..f99efb04
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_maxtelemetry.csv
@@ -0,0 +1,62 @@
+61,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,MAX,Sensor 2,12,integer,1,NONE,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,MAX,Sensor 3,12,integer,1,NONE,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,MAX,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,MAX,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,MAX,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,MAX,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,MAX,BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Battery Current,INA219 Battery Current
+7,MAX,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,BME280 Temp,BME280 STEM Payload sensor temperature
+8,MAX,posXv,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,INA219 +X solar panel Voltage
+9,MAX,posYv,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,INA219 +Y solar panel Voltage
+10,MAX,posZv,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,INA219 +Z solar panel Voltage
+11,MAX,negXv,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,INA219 -X solar panel Voltage
+12,MAX,negYv,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,INA219 -Y solar panel Voltage
+13,MAX,negZv,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,INA219 -Z solar panel Voltage
+14,MAX,posXi,12,mA,cubesatsim_current,NONE,7,2,3,Current,INA219 +X solar panel Current
+15,MAX,posYi,12,mA,cubesatsim_current,NONE,8,2,3,Current,INA219 +Y solar panel Current
+16,MAX,posZi,12,mA,cubesatsim_current,NONE,9,2,3,Current,INA219 +Z solar panel Current
+17,MAX,negXi,12,mA,cubesatsim_current,NONE,10,2,3,Current,INA219 -X solar panel Current
+18,MAX,negYi,12,mA,cubesatsim_current,NONE,11,2,3,Current,INA219 -Y solar panel Current
+19,MAX,negZi,12,mA,cubesatsim_current,NONE,12,2,3,Current,INA219 -Z solar panel Current
+20,MAX,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Battery 2 Voltage,INA219 Battery 2 Voltage
+21,MAX,spin,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,MAX,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,BME280 Pressure,BME280 STEM Payload sensor pressure
+23,MAX,Altitude,12,m,cubesatsim_altitude|INT,NONE,6,4,3,BME280 Altitude,BME280 STEM Payload sensor altitude
+24,MAX,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,MAX,rssi,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
+26,MAX,IHUcpuTemp,12,C,cubesatsim_temperature,NONE,2,1,3,IHU Temp (Pi),Internal temperature of IHU from Pi
+27,MAX,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around X Axis
+28,MAX,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Y Axis
+29,MAX,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Z Axis
+30,MAX,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,BME280 Humidity,BME280 Humidity
+31,MAX,BAT2_I,12,mA,cubesatsim_current,NONE,5,2,3,Battery 2 Current,INA219 Battery 2 Current
+32,MAX,DiodeTemp,12,C,cubesatsim_rpm,NONE,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,MAX,Sensor 1,12,integer,1,NONE,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,MAX,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status, STEM Payload STEM Payload board failure Indicator
+35,MAX,SafeMode,1,-,STATUS_ON_OFF,NONE,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,MAX,SimulatedTelemetry,1,-,STATUS_ON_OFF,NONE,3,4,0,Simulated Telemetry,Simulated Telemetry Indicator
+37,MAX,PayloadStatus1,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 1 failure indicator
+38,MAX,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,MAX,I2CBus1Failure,1,-,17,NONE,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,MAX,I2CBus3Failure,1,-,17,NONE,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,MAX,CameraFailure,1,-,17,NONE,2,4,0,Camera,Camera failure indicator
+42,MAX,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
+43,MAX,RxAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
+44,MAX,TxAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
+45,MAX,C2CStatus,2,-,COMMAND_STATUS,NONE,3,5,0,Command Control, Command & Control Status
+46,MAX,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
+47,MAX,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
+48,MAX,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
+49,MAX,rf6,12,-,0,NONE,0,0,0,None,None
+50,MAX,rf7,12,-,0,NONE,0,0,0,None,None
+51,MAX,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
+52,MAX,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
+53,MAX,pad,4,-,34,NONE,0,0,0,None,Unused
+54,MAX,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
+55,MAX,pad1,1,-,0,NONE,0,0,0,NONE,Filler
+56,MAX,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
+57,MAX,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
+58,MAX,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
+59,MAX,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
+60,MAX,pad2,27,-,0,NONE,0,0,0,NONE,Filler byets
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_mintelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_mintelemetry.csv
new file mode 100644
index 00000000..7d69fce6
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_mintelemetry.csv
@@ -0,0 +1,62 @@
+61,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,MIN,Sensor 2,12,integer,1,NONE,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,MIN,Sensor 3,12,integer,1,NONE,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,MIN,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,MIN,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,MIN,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,MIN,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,MIN,BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Battery Current,INA219 Battery Current
+7,MIN,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,BME280 Temp,BME280 STEM Payload sensor temperature
+8,MIN,posXv,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,INA219 +X solar panel Voltage
+9,MIN,posYv,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,INA219 +Y solar panel Voltage
+10,MIN,posZv,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,INA219 +Z solar panel Voltage
+11,MIN,negXv,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,INA219 -X solar panel Voltage
+12,MIN,negYv,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,INA219 -Y solar panel Voltage
+13,MIN,negZv,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,INA219 -Z solar panel Voltage
+14,MIN,posXi,12,mA,cubesatsim_current,NONE,7,2,3,Current,INA219 +X solar panel Current
+15,MIN,posYi,12,mA,cubesatsim_current,NONE,8,2,3,Current,INA219 +Y solar panel Current
+16,MIN,posZi,12,mA,cubesatsim_current,NONE,9,2,3,Current,INA219 +Z solar panel Current
+17,MIN,negXi,12,mA,cubesatsim_current,NONE,10,2,3,Current,INA219 -X solar panel Current
+18,MIN,negYi,12,mA,cubesatsim_current,NONE,11,2,3,Current,INA219 -Y solar panel Current
+19,MIN,negZi,12,mA,cubesatsim_current,NONE,12,2,3,Current,INA219 -Z solar panel Current
+20,MIN,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Battery 2 Voltage,INA219 Battery 2 Voltage
+21,MIN,spin,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,MIN,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,BME280 Pressure,BME280 STEM Payload sensor pressure
+23,MIN,Altitude,12,m,cubesatsim_altitude|INT,NONE,6,4,3,BME280 Altitude,BME280 STEM Payload sensor altitude
+24,MIN,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,MIN,rssi,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
+26,MIN,IHUcpuTemp,12,C,cubesatsim_temperature,NONE,2,1,3,IHU Temp (Pi),Internal temperature of IHU from Pi
+27,MIN,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around X Axis
+28,MIN,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Y Axis
+29,MIN,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Z Axis
+30,MIN,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,BME280 Humidity,BME280 Humidity
+31,MIN,BAT2_I,12,mA,cubesatsim_current,NONE,5,2,3,Battery 2 Current,INA219 Battery 2 Current
+32,MIN,DiodeTemp,12,C,cubesatsim_rpm,NONE,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,MIN,Sensor 1,12,integer,1,NONE,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,MIN,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status, STEM Payload STEM Payload board failure Indicator
+35,MIN,SafeMode,1,-,STATUS_ON_OFF,NONE,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,MIN,SimulatedTelemetry,1,-,STATUS_ON_OFF,NONE,3,4,0,Simulated Telemetry,Simulated Telemetry Indicator
+37,MIN,PayloadStatus1,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 1 failure indicator
+38,MIN,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,MIN,I2CBus1Failure,1,-,17,NONE,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,MIN,I2CBus3Failure,1,-,17,NONE,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,MIN,CameraFailure,1,-,17,NONE,2,4,0,Camera,Camera failure indicator
+42,MIN,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
+43,MIN,RxAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
+44,MIN,TxAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
+45,MIN,C2CStatus,2,-,COMMAND_STATUS,NONE,3,5,0,Command Control, Command & Control Status
+46,MIN,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
+47,MIN,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
+48,MIN,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
+49,MIN,rf6,12,-,0,NONE,0,0,0,None,None
+50,MIN,rf7,12,-,0,NONE,0,0,0,None,None
+51,MIN,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
+52,MIN,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
+53,MIN,pad,4,-,34,NONE,0,0,0,None,Unused
+54,MIN,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
+55,MIN,pad1,1,-,0,NONE,0,0,0,NONE,Filler
+56,MIN,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
+57,MIN,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
+58,MIN,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
+59,MIN,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
+60,MIN,pad2,27,-,0,NONE,0,0,0,NONE,Filler
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_rttelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_rttelemetry.csv
new file mode 100644
index 00000000..9fdaed04
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_PSK_rttelemetry.csv
@@ -0,0 +1,63 @@
+62,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,realTime,Sensor 2,12,integer,1,Experiments,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,realTime,Sensor 3,12,integer,1,Experiments,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,realTime,BATT_V,12,V,cubesatsim_voltage|FLOAT2,Battery,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,realTime,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+X Panel,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,realTime,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Y Panel,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,realTime,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Z Panel,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,realTime,BATT_I,12,mA,cubesatsim_current,Battery,4,2,3,Battery Current,INA219 Battery Current
+7,realTime,Temperature,12,C,cubesatsim_temperature,Experiments,6,2,3,BME280 Temp,BME280 STEM Payload sensor temperature
+8,realTime,posXv,12,V,cubesatsim_voltage|FLOAT2,+X Panel,7,1,3,Voltage,INA219 +X solar panel Voltage
+9,realTime,posYv,12,V,cubesatsim_voltage|FLOAT2,+Y Panel,8,1,3,Voltage,INA219 +Y solar panel Voltage
+10,realTime,posZv,12,V,cubesatsim_voltage|FLOAT2,+Z Panel,9,1,3,Voltage,INA219 +Z solar panel Voltage
+11,realTime,negXv,12,V,cubesatsim_voltage|FLOAT2,-X Panel,10,1,3,Voltage,INA219 -X solar panel Voltage
+12,realTime,negYv,12,V,cubesatsim_voltage|FLOAT2,-Y Panel,11,1,3,Voltage,INA219 -Y solar panel Voltage
+13,realTime,negZv,12,V,cubesatsim_voltage|FLOAT2,-Z Panel,12,1,3,Voltage,INA219 -Z solar panel Voltage
+14,realTime,posXi,12,mA,cubesatsim_current,+X Panel,7,2,3,Current,INA219 +X solar panel Current
+15,realTime,posYi,12,mA,cubesatsim_current,+Y Panel,8,2,3,Current,INA219 +Y solar panel Current
+16,realTime,posZi,12,mA,cubesatsim_current,+Z Panel,9,2,3,Current,INA219 +Z solar panel Current
+17,realTime,negXi,12,mA,cubesatsim_current,-X Panel,10,2,3,Current,INA219 -X solar panel Current
+18,realTime,negYi,12,mA,cubesatsim_current,-Y Panel,11,2,3,Current,INA219 -Y solar panel Current
+19,realTime,negZi,12,mA,cubesatsim_current,-Z Panel,12,2,3,Current,INA219 -Z solar panel Current
+20,realTime,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,Battery2,5,1,3,Battery2 Voltage,INA219 Battery2 Voltage
+21,realTime,spin,12,rpm,cubesatsim_rpm,Computer Software,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,realTime,Pressure,12,hPa,cubesatsim_pressure,Experiments,6,3,3,BME280 Pressure,BME280 STEM Payload sensor pressure
+23,realTime,Altitude,12,m,cubesatsim_altitude|INT,Experiments,6,4,3,BME280 Altitude,BME280 STEM Payload sensor altitude
+24,realTime,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,realTime,rssi,12,dBm,cubesatsim_rssi|INT,Radio,1,1,3,RSSI,Received Signal Strength Indication
+26,realTime,IHUcpuTemp,12,C,cubesatsim_temperature,Computer Hardware,2,1,3,IHU Temp (Pi),Internal temperature of IHU from Pi
+27,realTime,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+X Panel,7,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around X Axis
+28,realTime,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Y Panel,8,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Y Axis
+29,realTime,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Z Panel,9,3,3,Rotation,STEM Payload Board MPU6050 Angular veolcity around Z Axis
+30,realTime,Humidity,12,%,cubesatsim_temperature,Experiments,6,5,3,BME280 Humidity,BME280 Humidity
+31,realTime,BAT2_I,12,mA,cubesatsim_current,Battery2,5,2,3,Battery2 Current,INA219 Battery2 Current
+32,realTime,DiodeTemp,12,C,cubesatsim_rpm,Experiments,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,realTime,Sensor 1,12,integer,1,Experiments,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,realTime,STEMPayloadStatus,1,-,17,Experiments,6,1,0,STEM Payload Status, STEM Payload STEM Payload board failure Indicator
+35,realTime,SafeMode,1,-,STATUS_ON_OFF,Computer Software,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,realTime,SimulatedTelemetry,1,-,STATUS_ON_OFF,Computer Software,3,4,0,Simulated Telemetry,Simulated Telemetry Indicator
+37,realTime,PayloadStatus1,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 1 failure indicator
+38,realTime,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,realTime,I2CBus1Failure,1,-,17,Computer Hardware,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,realTime,I2CBus3Failure,1,-,17,Computer Hardware,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,realTime,CameraFailure,1,-,17,Computer Hardware,2,4,0,Camera,Camera failure indicator
+42,realTime,GroundCommands,4,-,1,NONE,0,0,0,Ground Commands,Number of ground commands received
+43,realTime,RxAntenna,1,-,16,Radio,1,3,0,RX Antenna,Receive antenna status
+44,realTime,TxAntenna,1,-,16,Radio,1,2,0,TX Antenna,Transmit antenna status
+45,realTime,C2CStatus,2,-,COMMAND_STATUS,Computer Software,3,5,0,Command Control, Command & Control Status
+46,realTime,GroundCommands2,10,-,1,Computer Software,3,3,0,Ground Commands,Number of ground commands received
+47,realTime,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
+48,realTime,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
+49,realTime,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
+50,realTime,rf6,12,-,0,NONE,0,0,0,None,None
+51,realTime,rf7,12,-,0,NONE,0,0,0,None,None
+52,realTime,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
+53,realTime,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
+54,realTime,pad,4,-,34,NONE,0,0,0,None,Unused
+55,realTime,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
+56,realTime,pad1,1,-,0,NONE,0,0,0,NONE,Filler
+57,realTime,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
+58,realTime,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
+59,realTime,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
+60,realTime,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
+61,realTime,pad2,17,-,0,NONE,0,0,0,NONE,Filler
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_conversion_curves.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_conversion_curves.csv
new file mode 100644
index 00000000..38f4351b
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_conversion_curves.csv
@@ -0,0 +1,13 @@
+CurveName,a,bx,cx^2,dx^3,ex^4,fx^5,Description
+cubesatsim_voltage,0,0.01,0,0,0,0,Converts voltages read from the INA219 sensors
+cubesatsim_current,-2048,1,0,0,0,0,Converts positive and negative currents read from the INA219 sensors
+cubesatsim_temperature,0,0.1,0,0,0,0,Converts temperature of Pi
+cubesatsim_rotation,-2048,1,0,0,0,0,Converts positive and negative dps rotation
+cubesatsim_acceleration,-20.48,0.01,0,0,0,0,Converts positive and negative g acceleration
+cubesatsim_altitude,0,10,0,0,0,0,Converts altitude
+cubesatsim_pressure,0,1,0,0,0,0,Converts pressure
+cubesatsim_sensor1,0,1,0,0,0,0,Conversion of Sensor 1
+cubesatsim_sensor2,-2048,1,0,0,0,0,Conversion of Sensor 2
+cubesatsim_sensor3,-20.48,0.01,0,0,0,0,Conversion of Sensor 3
+cubesatsim_rpm,-204.8,0.1,0,0,0,0,Conversion of calculated RPM
+cubesatsim_rssi,-2048,1,0,0,0,0,Conversion of Received Signal Strength
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_maxtelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_maxtelemetry.csv
new file mode 100644
index 00000000..9bcc637e
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_maxtelemetry.csv
@@ -0,0 +1,48 @@
+47,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,MAX,Sensor 2,12,integer,1,NONE,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,MAX,Sensor 3,12,integer,1,NONE,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,MAX,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,MAX,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,MAX,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,MAX,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,MAX,BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Battery Current,INA219 Battery Current
+7,MAX,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,BME280 Temp,STEM Payload Sensor BME280 Temperature
+8,MAX,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,INA219 +X Panel Voltage
+9,MAX,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,INA219 -X Panel Voltage
+10,MAX,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,INA219 +Y Panel Voltage
+11,MAX,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,INA219 -Y Panel Voltage
+12,MAX,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,INA219 +Z Panel Voltage
+13,MAX,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,INA219 -Z Panel Voltage
+14,MAX,PANEL_PLUS_X_I,12,mA,cubesatsim_current,NONE,7,2,3,Current,INA219 +X Panel Current
+15,MAX,PANEL_MINUS_X_I,12,mA,cubesatsim_current,NONE,10,2,3,Current,INA219 -X Panel Current
+16,MAX,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,NONE,8,2,3,Current,INA219 +Y Panel Current
+17,MAX,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,NONE,11,2,3,Current,INA219 -Y Panel Current
+18,MAX,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,NONE,9,2,3,Current,INA219 +Z Panel Current
+19,MAX,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,NONE,12,2,3,Current,INA219 -Z Panel Current
+20,MAX,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Battery 2 Voltage,INA219 Battery 2 Voltage
+21,MAX,SPIN,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,MAX,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,BME280 Pressure,STEM Payload Sensor BME280 Pressure
+23,MAX,Altitude,12,m,cubesatsim_altitude|INT,NONE,6,4,3,BME280 Altitude,STEM Payload Sensor BME280 Altitude
+24,MAX,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,MAX,RSSI,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
+26,MAX,IHUTemperature,12,C,cubesatsim_temperature,NONE,2,1,3,IHU Temp (Pi),Internal Temperature of Pi IHU
+27,MAX,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around X Axis
+28,MAX,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Y Axis
+29,MAX,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Z Axis
+30,MAX,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,BME280 Humidity,STEM Payload Sensor BME280 Humidity
+31,MAX,BATT2_I,12,mA,cubesatsim_current,NONE,5,2,3,Battery 2 Current,INA219 Battery 2 Current
+32,MAX,DiodeTemp,12,C,cubesatsim_rpm,NONE,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,MAX,Sensor 1,12,integer,1,NONE,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,MAX,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status,STEM Payload Board Status
+35,MAX,SafeMode,1,-,STATUS_ON_OFF,NONE,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,MAX,SimulatedTelemetry,1,-,STATUS_ON_OFF,NONE,3,4,0,Simulated Telemetry, Simulated Telemetry Indicator
+37,MAX,PayloadStatus1,1,-,17,NONE,0,0,0,Exp 3,STEM Payload status 1 failure indicator
+38,MAX,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,MAX,I2CBus1Failure,1,-,17,NONE,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,MAX,I2CBus3Failure,1,-,17,NONE,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,MAX,CameraFailure,1,-,17,NONE,2,4,0,Camera,Camera failure indicator
+42,MAX,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
+43,MAX,RXAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
+44,MAX,TXAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
+45,MAX,C2CStatus,2,-,COMMAND_STATUS,NONE,3,5,0,Command Control, Command & Control Status
+46,MAX,Pad,56,-,0,NONE,0,0,0,NONE,NONE
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_mintelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_mintelemetry.csv
new file mode 100644
index 00000000..5d6627a9
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_mintelemetry.csv
@@ -0,0 +1,48 @@
+47,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,MIN,Sensor 2,12,integer,1,NONE,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,MIN,Sensor 3,12,integer,1,NONE,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,MIN,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,MIN,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,MIN,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,MIN,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,MIN,BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Battery Current,INA219 Battery Current
+7,MIN,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,BME280 Temp,STEM Payload Sensor BME280 Temperature
+8,MIN,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,INA219 +X Panel Voltage
+9,MIN,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,INA219 -X Panel Voltage
+10,MIN,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,INA219 +Y Panel Voltage
+11,MIN,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,INA219 -Y Panel Voltage
+12,MIN,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,INA219 +Z Panel Voltage
+13,MIN,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,INA219 -Z Panel Voltage
+14,MIN,PANEL_PLUS_X_I,12,mA,cubesatsim_current,NONE,7,2,3,Current,INA219 +X Panel Current
+15,MIN,PANEL_MINUS_X_I,12,mA,cubesatsim_current,NONE,10,2,3,Current,INA219 -X Panel Current
+16,MIN,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,NONE,8,2,3,Current,INA219 +Y Panel Current
+17,MIN,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,NONE,11,2,3,Current,INA219 -Y Panel Current
+18,MIN,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,NONE,9,2,3,Current,INA219 +Z Panel Current
+19,MIN,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,NONE,12,2,3,Current,INA219 -Z Panel Current
+20,MIN,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Battery 2 Voltage,INA219 Battery 2 Voltage
+21,MIN,SPIN,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,MIN,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,BME280 Pressure,STEM Payload Sensor BME280 Pressure
+23,MIN,Altitude,12,m,cubesatsim_altitude|INT,NONE,6,4,3,BME280 Altitude,STEM Payload Sensor BME280 Altitude
+24,MIN,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,MIN,RSSI,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
+26,MIN,IHUTemperature,12,C,cubesatsim_temperature,NONE,2,1,3,IHU Temp (Pi),Internal Temperature of Pi IHU
+27,MIN,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around X Axis
+28,MIN,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Y Axis
+29,MIN,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Z Axis
+30,MIN,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,BME280 Humidity,STEM Payload Sensor BME280 Humidity
+31,MIN,BATT2_I,12,mA,cubesatsim_current,NONE,5,2,3,Battery 2 Current,INA219 Battery 2 Current
+32,MIN,DiodeTemp,12,C,cubesatsim_rpm,NONE,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,MIN,Sensor 1,12,integer,1,NONE,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,MIN,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status,STEM Payload Board Status
+35,MIN,SafeMode,1,-,STATUS_ON_OFF,NONE,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,MIN,SimulatedTelemetry,1,-,STATUS_ON_OFF,NONE,3,4,0,Simulated Telemetry, Simulated Telemetry Indicator
+37,MIN,PayloadStatus1,1,-,17,NONE,0,0,0,Exp 3,STEM Payload status 1 failure indicator
+38,MIN,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,MIN,I2CBus1Failure,1,-,17,NONE,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,MIN,I2CBus3Failure,1,-,17,NONE,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,MIN,CameraFailure,1,-,17,NONE,2,4,0,Camera,Camera failure indicator
+42,MIN,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
+43,MIN,RXAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
+44,MIN,TXAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
+45,MIN,C2CStatus,2,-,COMMAND_STATUS,NONE,3,5,0,Command Control, Command & Control Status
+46,MIN,Pad,56,-,0,NONE,0,0,0,NONE,NONE
diff --git a/spacecraft/FoxTelem_1.13i/CubeSatSim_rttelemetry.csv b/spacecraft/FoxTelem_1.13i/CubeSatSim_rttelemetry.csv
new file mode 100644
index 00000000..967514bc
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/CubeSatSim_rttelemetry.csv
@@ -0,0 +1,49 @@
+48,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
+0,RT,Sensor 2,12,integer,1,Experiments,6,8,3,Sensor 2,STEM Payload Extra Sensor 2
+1,RT,Sensor 3,12,integer,1,Experiments,6,9,3,Sensor 3,STEM Payload Extra Sensor 3
+2,RT,BATT_V,12,V,cubesatsim_voltage|FLOAT2,Battery,4,1,3,Battery Voltage,INA219 Battery Voltage
+3,RT,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+X Panel,7,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around X Axis
+4,RT,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Y Panel,8,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Y Axis
+5,RT,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Z Panel,9,4,3,Acceleration,STEM Payload Board MPU6050 Acceleration around Z Axis
+6,RT,BATT_I,12,mA,cubesatsim_current,Battery,4,2,3,Battery Current,INA219 Battery Current
+7,RT,Temperature,12,C,cubesatsim_temperature,Experiments,6,2,3,BME280 Temp,STEM Payload Sensor BME280 Temperature
+8,RT,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,+X Panel,7,1,3,Voltage,INA219 +X Panel Voltage
+9,RT,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,-X Panel,10,1,3,Voltage,INA219 -X Panel Voltage
+10,RT,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,+Y Panel,8,1,3,Voltage,INA219 +Y Panel Voltage
+11,RT,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,-Y Panel,11,1,3,Voltage,INA219 -Y Panel Voltage
+12,RT,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,+Z Panel,9,1,3,Voltage,INA219 +Z Panel Voltage
+13,RT,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,-Z Panel,12,1,3,Voltage,INA219 -Z Panel Voltage
+14,RT,PANEL_PLUS_X_I,12,mA,cubesatsim_current,+X Panel,7,2,3,Current,INA219 +X Panel Current
+15,RT,PANEL_MINUS_X_I,12,mA,cubesatsim_current,-X Panel,10,2,3,Current,INA219 -X Panel Current
+16,RT,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,+Y Panel,8,2,3,Current,INA219 +Y Panel Current
+17,RT,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,-Y Panel,11,2,3,Current,INA219 -Y Panel Current
+18,RT,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,+Z Panel,9,2,3,Current,INA219 +Z Panel Current
+19,RT,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,-Z Panel,12,2,3,Current,INA219 -Z Panel Current
+20,RT,BATT2_V,12,V,cubesatsim_voltage|FLOAT2,Battery2,5,1,3,Battery2 Voltage,INA219 Battery2 Voltage
+21,RT,SPIN,12,rpm,cubesatsim_rpm,Computer Software,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
+22,RT,Pressure,12,hPa,cubesatsim_pressure,Experiments,6,3,3,BME280 Pressure,STEM Payload Sensor BME280 Pressure
+23,RT,Altitude,12,m,cubesatsim_altitude|INT,Experiments,6,4,3,BME280 Altitude,STEM Payload Sensor BME280 Altitude
+24,RT,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
+25,RT,RSSI,12,dBm,cubesatsim_rssi|INT,Radio,1,1,3,RSSI,Received Signal Strength Indication
+26,RT,IHUTemperature,12,C,cubesatsim_temperature,Computer Hardware,2,1,3,IHU Temp (Pi),Internal Temperature of Pi IHU
+27,RT,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+X Panel,7,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around X Axis
+28,RT,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Y Panel,8,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Y Axis
+29,RT,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Z Panel,9,3,3,Rotation,STEM Payload Board MPU6050 Angular Veolcity around Z Axis
+30,RT,Humidity,12,%,cubesatsim_temperature,Experiments,6,5,3,BME280 Humidity,STEM Payload Sensor BME280 Humidity
+31,RT,BATT2_I,12,mA,cubesatsim_current,Battery2,5,2,3,Battery2 Current,INA219 Battery2 Current
+32,RT,DiodeTemp,12,C,cubesatsim_rpm,Experiments,6,6,3,Diode Temp,STEM Payload Diode Temperature
+33,RT,Sensor 1,12,integer,1,Experiments,6,7,3,Sensor 1,STEM Payload Extra Sensor 1
+34,RT,STEMPayloadStatus,1,-,17,Experiments,6,1,0,STEM Payload Status,STEM Payload Board Status
+35,RT,SafeMode,1,-,STATUS_ON_OFF,Computer Software,3,2,0,Safe Mode, Safe Mode (Low Battery Voltage)
+36,RT,SimulatedTelemetry,1,-,STATUS_ON_OFF,Computer Software,3,4,0,Simulated Telemetry, Simulated Telemetry Indicator
+37,RT,PayloadStatus1,1,-,17,NONE,0,0,0,Exp 3,STEM Payload status 1 failure indicator
+38,RT,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
+39,RT,I2CBus1Failure,1,-,17,Computer Hardware,2,2,0,I2C Bus 1,I2C bus 1 failure indicator
+40,RT,I2CBus3Failure,1,-,17,Computer Hardware,2,3,0,I2C Bus 3,I2C bus 3 failure indicator
+41,RT,CameraFailure,1,-,17,Computer Hardware,2,4,0,Camera,Camera failure indicator
+42,RT,GroundCommands,4,-,1,NONE,0,0,0,Ground Commands,Number of ground commands received
+43,RT,RXAntenna,1,-,16,Radio,1,3,0,RX Antenna,Receive antenna status
+44,RT,TXAntenna,1,-,16,Radio,1,2,0,TX Antenna,Transmit antenna status
+45,RT,C2CStatus,2,-,COMMAND_STATUS,Computer Software,3,5,0,Command Control, Command & Control Status
+46,RT,GroundCommands2,10,-,1,Computer Software,3,3,0,Ground Commands,Number of ground commands received
+47,RT,Pad,46,-,0,NONE,0,0,0,NONE,NONE
diff --git a/spacecraft/FoxTelem_1.13i/README.md b/spacecraft/FoxTelem_1.13i/README.md
new file mode 100644
index 00000000..765fba49
--- /dev/null
+++ b/spacecraft/FoxTelem_1.13i/README.md
@@ -0,0 +1,7 @@
+These files update the spacecraft files in FoxTelem version 1.13i or later and fix a bug in the payload altitude sensor display.
+
+You can download them as a zip file: [foxtelem_spacecraft_files.zip](https://github.com/user-attachments/files/23393444/foxtelem_spacecraft_files.zip)
+
+Extract (unzip foxtelem_spacecraft_files.zip) and copy into FoxTelem spacecraft folder, replacing existing files.
+
+Next time you run FoxTelem, the CubeSatSim-FSK and CubeSatSim-BPSK spacecraft will be automatically updated.
diff --git a/stempayload/Payload_BME280_MPU6050_AIO/readme.MD b/stempayload/Payload_BME280_MPU6050_AIO/readme.MD
index ec01c104..1e23a74d 100644
--- a/stempayload/Payload_BME280_MPU6050_AIO/readme.MD
+++ b/stempayload/Payload_BME280_MPU6050_AIO/readme.MD
@@ -1,5 +1,7 @@
This code for the Raspberry Pi Pico W supports the built-in BME-280 and MPU-6050 sensors on the Main board and adds support for Adafruit.io
+Here is a ZIP file of these files: https://github.com/user-attachments/files/21951798/Payload_BME280_MPU6050_AIO.zip
+
To use this code, you will need to create a Free account at https://io.adafruit.com
You will need to configure your Adafruit.io account information and your WiFi credentials in the edit_this_config_and_rename.h file
diff --git a/update b/update
index 7d917ea6..8d316d44 100755
--- a/update
+++ b/update
@@ -47,6 +47,8 @@ sudo sed -i 's/update to/update\nto/g' /etc/motd
sudo sed -i 's/console=tty1 r/console=tty1 maxcpus=1 r/g' /boot/cmdline.txt # single core if Pi Zero 2
+sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/cmdline.txt # single core if Pi Zero 2
+
cd /home/pi/CubeSatSim
git pull --no-rebase > .updated
@@ -404,7 +406,7 @@ cd /home/pi/ssdv
# sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get update -y
sudo apt-get install -y libjpeg-dev zlib1g-dev libfreetype6-dev liblcms1-dev libopenjp2-7 libtiff5 python3-pil
- sudo pip3 install adafruit-blinka RPI.GPIO adafruit-extended-bus adafruit-circuitpython-ina219 pillow
+ sudo pip3 install -y adafruit-blinka RPI.GPIO adafruit-extended-bus adafruit-circuitpython-ina219 pillow
fi