Frequently Asked Questions

Do you have a question about the Astro Pi or the challenges? 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

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

Questions about the challenge

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

We only accept 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 also 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 country and who is 16 years of age or under can enter, either as a home-educated student (although you’ll need to team up with another student) or as a student team. Teams need to have at least one teacher to support them as a tutor.

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

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

While there’s no limit to team size, we recommend keeping the team to ten people or fewer. 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 will have to be proportional to the work involved.

There’s no limit to the number of teams a school or club can enter. It’s entirely dependent on the teacher’s availability to support their team(s). In summary:

  • A minimum of two is required to form a team.
  • There’s no maximum limit on team size, but we recommend between four and ten members to make sure that everybody has a role.
  • 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 2016-2017 challenge?

The timeline can be found at the bottom of this page on the ESA website.

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

The competition is open only to teams who participated in phase 1 and who were selected to receive an Astro Pi kit. Code is not accepted from teams that did not participate in phase 1.

Can I still enter?

Registration for phase 1 closed on 13th November 2016, and no entries can be accepted after this date. There will, however, be future Astro Pi competitions in which you can participate.

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):

  • Gyroscope
  • Accelerometer
  • Magnetometer
  • Temperature sensor
  • Barometric pressure sensor
  • Temperature sensor
  • Humidity sensor
  • 8 x 8 RGB LED matrix display
  • Visible light and infrared (Pi NoIR) cameras
  • 4-direction centre-push joystick
  • 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 50 MB 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’s recommended 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 based on the release from March 2016, not the latest version with PIXEL; therefore, there’s a possibility that some package version issues could occur. Please note that you will not be penalised for this in the judging process. If your entry is selected by the judges, we will fix any issues and test it before it goes into space.

Because of the security hardening, it’s not possible to release a copy of the on-orbit OS. If you’re worried about this, you can download the March 2016 image from the link below and burn it onto an SD card. This can be done using Windows, Mac OS X, or Linux.


You’ll also need to run the following terminal commands to download the extra packages included on the flight image. Your Pi must be online and the download process is likely to take some time.

sudo apt-get update
sudo apt-get install python-dev python3-dev python-pip python3-pip sense-hat libjpeg-dev -y
sudo pip install ephem evdev
sudo pip-3.2 install evdev pillow
sudo reboot

Finally, you’ll need to download and install the push button driver which is described in this guide. Scroll down to Detect a button press in code and follow the steps.

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 ="%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.

Where can I get an Astro Pi?

You can buy everything apart from the aerospace-grade aluminium flight case: there’s more information 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?

Thomas Pesquet 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 28th February 2017, when the competition 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.

Do I need to code my program on a specific model?

No. 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.

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 Thomas Pesquet take the Astro Pi around the ISS with him?

The Astro Pi will be hard-mounted on a multi-use bracket in the Columbus module 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 was mounted onto a hatch window in Node 2 but is now in storage. The crew can remove the Astro Pi from the bracket, but constraints on crew time would mean that this activity would depend on them doing it in their free time, which cannot be guaranteed. Only one Astro Pi unit is planned to be used during this activity.

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

The Astro Pi can only be used in the Columbus module of the ISS.

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

The position of the Astro Pi is not the same as for Tim Peake’s mission. Astro Pi VIS (Ed), for the Proxima mission, is located in the middle of the Columbus module on the European Physiology Module (EPM). The position can be seen in this video (look for the green light in the bottom right corner). You can also do a virtual tour of the Columbus Module and try to find the EPM module.

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 member.

How should I structure my code?

Ideally, we like to see neatly laid out source code with clear comments describing each section. You can choose to write one single computer program to attempt achieving both missions, or two different programs, one for each mission. The amount of time available to each team to run the programs on board the ISS cannot exceed 3 hours in total. If you submit just one program file for both missions, you will then have the program running for 3 hours. If you submit two program files, you will need to indicate how you want to divide the 3 hours of allocated time between the two programs, otherwise we will just assume 1 hour 30 minutes for each program.

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 for all selected teams for phase 2. You do not need to give back your kit to ESA. This registration closed on the 13th of November 2016.

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 which the Astro Pi unit is plugged into. We also have a special Python program called the MCP (Master Control Program). It’s job is to start and stop the teams 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.