Open Source CubeSats Ease The Pain Of Building Your Own

Space is hard, especially if you haven’t done it before. A growing number of CubeSats are launched by small, inexperienced teams every year, and a number of them fail due to missing some small but critical hardware or software problem. Researchers from the Robotic Exploration Lab (REx) at Carnegie Melon University have learned some of these lessons the hard way and created PyCubed, an open-source hardware and software framework for future CubeSats.

Most satellites, including CubeSats, require the same basic building blocks. These include ADCS (Attitude Determination and Control System), TT&C (telemetry, track, and command), C&DH (command and data handling), and an EPS (electrical power system). Each of these building blocks is integrated into a single PC/104 size PCB. The main microcontroller is an ATSAMD51, also used on a couple of Adafruit dev boards, and runs Circuit Python. Communications are handled by a LoRa radio module, and there is also an unpopulated footprint for a second radio. An LSM9DS1 IMU and an optional GPS handle navigation and attitude determination, and a flash chip and micro SD card provide RAM and data storage. The EPS consists of an energy harvester and battery charger, power monitor, and regular, that can connect to external Li-Ion batteries and solar panels. Two power relays and a series of MOSFETs connected to burn wires are used to deploy the CubeSat and its antennas.

On the PCB there are standardized footprints for up to four unique payloads for the specific missions. The hardware and software are documented on GitHub, including testing and a complete document on all the design decisions and their justifications. The PyCubed was also presented at the 2019 AIAA/USU Conference on Small Satellites. The platform has already been flight-tested as part of the Kicksat-2 mission, and will also be used in the upcoming V-R3X, Pandasat, and Pycubed-1 projects.

This is not the first open-source CubeSat we’ve seen, and we expect these platforms to become more common. Tracking a CubeSat is a lot less expensive than sending one to space, and can be done for as little as $25.

7 thoughts on “Open Source CubeSats Ease The Pain Of Building Your Own

    1. The first garage built satellite went up in December 1961, Project OSCAR built it and then negotiated to get it into space as part of an existing launch.

      That was the first non-government satellite in orbit (I think no commercial satellites were up by that point) and it proved there could be secondary payloads.

      After that, it became easier to net a launch, but more competition. Ham satellites went up from time to time. But eventually it became a thing, lots of universities wanting a launch.

      So now you see articles like this, yes anyone can build a satellite, but to get it into space you have to meet standards, and have to find a launch.

      Those two things are way harder than building the satellite.

      You can get books about building satellites, and cubesats have a standard size and form so that’s been worked out, I think you can buy off the shelf casing now. If you need send data to earth, Amsat will gladly supply communication boards, if the satellite can be used by hams after the experiment is over.

      But there’s no guarantee of getting into space.

  1. Hi! Max here. I designed PyCubed and did the hardware/software/firmware for V-R3x as well. We’re running mission ops now, but so far the V-R3x mission has been a resounding success! Long story short, running these sats entirely on CircuitPython has been instrumental in allowing easy over-the-air tweaks. More to come.

    V-R3x is using my latest PyCubed boards that I haven’t pushed to the public repo yet. There’s some novel protection circuit stuff that I need to publish on (PhD thesis and whatnot) before I should release- but its coming asap!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.