Mission Space Lab

Mission Space Lab FAQ

Do you have a question about Mission Space Lab? Don’t worry, you’re not alone! Have a look below, where you’ll find the answers to frequently asked questions.

If you can’t find the answer you’re looking for, then please send your question to enquiries@astro-pi.org.

Remember to check back periodically, as this page will be updated when new questions arise.

Participation questions

My child/pupil has special educational needs. Can we still enter?

We only accept entries from teams as opposed to individual children, but we would like Astro Pi to be open to as many people as possible. Submissions from teams with special educational needs should be accompanied by a supporting letter from the head teacher or Special Educational Needs Coordinator (SENCo). This supporting information will be considered by the judging panel in their assessment of the entries.

My child/student/relative/friend wants to get involved, but I work for one of the organisations running the competition. Can they still enter?

Any child that is related to members of the judging panel may not enter, and they (and their team) would be disqualified if they did. All other children may enter the competition. All entries will be anonymised for the judging panel.

Can I enter on my own? Can my after-school club/coding club/Scout troop/Brownie pack/own child etc. take part?

A team of at least two people is needed. The competition is not limited to schools. Anyone who lives in an ESA member or associate member country, and who is 19 years of age or under can enter, either as a home-educated student (although you’ll need to team up with another student), a student team at school, or a team from a non-school organisation.

You must have registered in phase 1 of the competition to be able to participate in phase 2.

Questions about the mission

Is there a limit to the number of students on a team or the number of teams we can have?

Teams must have a minimum of two people and a maximum of six. The smaller the group, the more involved each participant can be. Some ideas may require a larger team for coding, testing, documenting, and managing. The size of the team should be proportional to the work involved.

One teacher can be responsible for a maximum of five teams per year, and each student can only be part of one team. In summary:

Team size must be two to six members
One teacher can be responsible for a maximum of five teams
We encourage you to have one teacher for each group, to make sure that they give the best support to the students

What is the general timeline of the 2017-2018 challenge?

This can be found on the mission timeline page. The circles show the time period for each phase.

How can I be allowed to send my code to the ISS?

The competition is open only to teams who participate in phase 1, and who are selected to proceed to phase 2. Code is not accepted from teams that did not participate in phase 1.

Questions about the Astro Pi

What sensors are included on the Astro Pi?

The Astro Pi payload includes the following sensors on the Sense HAT add-on board (we’ve included links to the data sheets for those of you who want that level of detail):

Inertial measurement unit (IMU)




ST LSM9DS1 (data sheet)

Barometric pressure sensor (also temperature)

ST LPS25H (data sheet)

Humidity sensor (also temperature)

ST HTS221 (data sheet)

8×8 RGB LED matrix display

Cree CLU6AFKW/CLX6AFKB (data sheet)

Visible light and infrared (Pi NoIR) cameras

Optical sensor OV5647 (data sheet)

Camera module (data sheet), note V1 is on board the ISS but you will have V2 in your kit

Four-direction centre-push joystick

Alps SKRHABE010 (data sheet)

Six functional push buttons

Real-time clock with backup battery

Additional information on the Astro Pi payload can be found here.

Can I install any Python package from apt-get or pip?

Yes, but only if they are small (large packages of 50MB or more are not allowed). Please record which extra packages are required as part of your submission. Do not make your own custom packages: they must be ones already found in the Raspbian remote repository or pip.

Why can’t we use GPIO edge detection for the push buttons?

The flight unit has a driver that’s already doing GPIO edge detection for the push buttons. This emulates a keyboard device that types the letters u, d, l, r (top quad) and a, b (bottom pair) when the buttons are pressed. For example, if your code attempts to set up its own edge detection using the RPi.GPIO add_event_detect or wait_for_edge functions, then you’ll get the following exception:

RuntimeError: Conflicting edge detection events already exist for this GPIO channel


Because of this, it isrecommended that you don’t use any GPIO libraries in your entry, and that you capture keyboard events using pygame, evdev, or readchar.

How do you program the buttons and joystick of the Astro Pi?

The Astro Pi guide covers this in detail: look under Inputs and Outputs. The joystick is mapped to the keyboard cursor keys, whereas the push buttons are mapped to the letters u, d, l, r, a, and b. Your code just needs to capture these keyboard events and respond to them.

Can I test my code on the exact Raspbian image used on the flight SD cards?

The flight units are running a special security-hardened version of Raspbian Jessie Lite which cannot be shared with participants. However, if you use the Raspbian image supplied with your Astro Pi kit you will not need to worry about this. The Astro Pi kit image can also be downloaded here.

How do you get a timestamp in Python?

The quickest way is to import the datetime module and use the strftime function. This allows you to define a format string and populate it with the current date and time. For example:

import datetime
time_stamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")


Detailed documentation can be found here.

How will the Astro Pi be powered on the ISS?

The Astro Pi payload will be powered directly from a US mains wall socket charger, or from a laptop USB port.

Will there be a display on the Astro Pi?

Yes: the Astro Pi has an 8×8 multicolour LED matrix which can be used as a display. Additional information on the Astro Pi payload can be found here.

How long is the power cable?

The USB cable used to power the Astro Pi payload is 4.6 metres (15 feet) in length.

Can the Astro Pi interact with the ISS computers?

Yes, it can: the Astro Pi is on the ISS Joint Station LAN. However, student experiments are not permitted to use the LAN for any purpose. Please note that if any networking code is found in your entry it will be disqualified automatically.

How can I get an ESA-branded Astro Pi kit?

Participate in the phase 1 registration and be chosen by ESA to proceed onto phase 2; you will then be rewarded with a kit. The kit will be given for free to all selected teams for phase 2 (unless the teacher has already received a kit during the 2016-2017 challenge). You do not need to give back your kit to ESA. The registration for phase 1 closes on 29 October 2017.

Where can I get an Astro Pi?

You can buy everything apart from the aerospace-grade aluminium flight case – there’s more information on those here. You can also 3D print your own replica flight case!

Will the time on the Astro Pi payload be synchronised?

The time on the Astro Pi computers is synchronised to GMT via their on-board real-time clocks.

Which computers will the Astro Pi Sense HAT work with? / Do I need to code my program on a specific model?

The crew will be using the Astro Pi with a Raspberry Pi 1 B+ computer. The Sense HAT is fully compatible with all Raspberry Pi models since the B+ was introduced in July 2014. For the Raspberry Pi Zero, you will need to solder a 40-pin header on first, and make some minor configuration changes.

With some careful modifications, it can be made to work with the older Raspberry Pi 1 A and B models too.

Will we be able to change the code while it’s in space?

No: the code will have to be submitted and tested before flying to the ISS. There may be a future chance to iterate code, but it’s not currently planned.

What is the latest date we can change our code?

The last date to submit changes to your code will be 7 February 2018, when phase 2 closes. This is what will be used in the judging process.

What operating system will be used?

Astro Pi will be using the Raspbian operating system, which can be downloaded here.

What programming language and version is required?

Python version 3.4 is the recommended programming language; version 2.7 is also acceptable if you’re using a legacy Python library as part of your code.

Is there any limit on the size of the program?

The size of the program is limited by the size of the SD card used (currently 8GB). However, the space on the SD card is shared with the other winners as well. As such, applications that are efficient with their SD card space usage will be judged favourably.

How do I command the Sense HAT board?

The Astro Pi Guide and Getting Started with the Sense HAT learning resources explain everything you need to know.

Is there a list of all the possible Sense HAT commands?

The full API reference can be found online here.

Can the crew take the Astro Pi around the ISS with them?

The Astro Pi will be hard-mounted on a multi-use bracket and will thus be stationary at all times.

Will the Astro Pi be fixed or floating in the ISS?

There is one Astro Pi hard-mounted on a multi-use bracket in the Columbus module. A second one will be mounted onto an Earth-facing window. The Astro Pis cannot be moved from their fixed positions on the ISS due to constraints on crew time.

Are there any limitations as to where the Astro Pi can be located?

The Astro Pi can be used in the US, European and Japanese segments of the ISS. It cannot be used in the Russian segments at this time.

What is the position of the Astro Pi inside the ISS?

Astro Pi VIS (Ed) is located in the middle of the Columbus module on the European Physiology Module (EPM). Both units are visible on Google street view here (look down and right). Astro Pi IR (Izzy) will be located on an Earth-facing window. It has not yet been decided which window will be used.

How much crew time can our experiment use?

The Astro Pi will mainly be doing automated processing without the involvement of the crew. The crew time we do have allocated for Astro Pi is mainly for deployment and stowage activities. We have found the crew to be highly engaged in Astro Pi activities and willing to interact with student experiments, but this does depend on the personal choices of the crew members.

How should I structure my code?

Ideally, we like to see source code neatly laid out with clear comments describing each section. The amount of time available to each team to run the programs on board the ISS cannot exceed three hours in total. Please also ensure your code obeys the official coding rules.

How is the code uploaded?

Student code is uploaded to the Astro Pi using the SCP Linux command line tool. There is a ground station in Switzerland which has a direct TCP/IP link to a LAN inside the ISS to which the Astro Pi units are connected. We also have a special Python program called the MCP (Master Control Program). Its job is to start and stop the team’s experiments and monitor their progress, ensuring that they each receive the allotted run time. It’s defensively coded to cope with a number of failure modes, such as sudden power loss or single-event upsets from cosmic radiation.

What area on Earth does one pixel represent with the camera?

Using the data from this page about the V1 camera sensor image area, focal length and sensor resolution we calculate that at an altitude of 400 km the ground sampling distance (GSD) would be 161 meters per pixel.

Is there a quick way to install Open CV?

You can build Open CV from the source code by following these instructions but it can take some time. You can however install a pre-built version quickly, first ensure your Raspberry Pi is online. Then click on the main menu (Raspberry icon), then Accessories, then Terminal. Now enter the commands below:

sudo apt-get update
sudo apt-get install libatlas-base-dev -y
sudo pip3 install opencv-python -i https://www.piwheels.hostedpi.com/simple


Open CV Python tutorials can be found here.

Return to Timeline