Build your own Arthur satellite dish for tracking the ISS

Construct a 3D paper model of the iconic Arthur satellite dish that notifies you whenever the International Space Station passes overhead!

The Arthur satellite dish at Goonhilly Earth Satellite Station

Based in Cornwall, UK, the Goonhilly Earth Satellite Station was once the largest satellite earth station in the world. It has been home to more than 60 dishes since its first dish, Arthur, was built in 1962.

Arthur satellite dish

Arthur is responsible for bringing many iconic moments in television history to the UK. For example, it transmitted man’s first steps on the moon on 20 July 1969. Since then, it’s become a protected Grade II listed structure.

Project Arthur

Apollo 50’s Project Arthur is an open-source 3D papercraft project that allows you to build your own desktop Arthur satellite dish model, complete with LED notifications via a Raspberry Pi Zero W.

The entire body of the satellite dish is built using ten sheets of 160gsm cardstock, printed with the Arthur design that you can download for free from the Project Arthur website. A Raspberry Pi Zero W fits within the base of the model, and you can push a small LED through the feedhorn — the bit that sticks out the front of the dish.

Arthur satellite dish - raspberry pi iss indicator

The Apollo 50 team created a simple IFTTT web applet that accesses an API to find out the location of the International Space Station (ISS).

The project uses a conditional web applet that we created on the IFTTT (If This Then That) platform. The applet monitors an API via NASA and Open Notify that we give a specific location on Earth (such as your home/school). It computes whether the ISS is overhead, and in that case sends a tweet to you with a particular hashtag (such as #ISS_overGoonhilly). When this hashtag is picked up by the code running on the Pi, the LED will flash to indicate that the ISS is overhead!

Raspberry Pi and the International Space Station

Our two Astro Pi units, Ed and Izzy, are currently aboard the International Space Station as part of the ongoing Astro Pi Challenge we’re running in partnership with the European Space Agency (ESA). The Astro Pi units consist of a Raspberry Pi 1 Model B+ and a Sense HAT inside a 6063-grade aluminium flight case, and they allow school children from all ESA member countries to write code to run experiments in space. You can learn more about the Astro Pi Challenge here.

Astro Pi in space - Arthur satellite dish

If you’d like to try out more space-themed Pi projects, our free project resources include ‘People in space’ indicator — a handy LED-packed gadget for checking how many people (that we know of ?) are currently in space.

Raspberry Pi ISS People in Space indicator - Arthur satellite dish

There are many more free resources on our projects site, including our own take on an ISS tracker, and the files to print your own Astro Pi case. And you can learn more about papercraft in issue 6 of HackSpace magazine, our monthly maker publication available in print and as a free PDF download that makes a sneaky appearance in the Project Arthur video!


Alex Bate avatar

I’m definitely making this and I apologise in advance to everyone at Pi Towers for the mess I’ll inevitably make on and around my desk.

Edward avatar

I really want to do this. However, I need some help. What is 160 GSM whitecard? When I searched for it all the websites are in the UK and I am IN the USA.

SimonFD avatar

GSM is grams per square metre. For comparison, a normal sheet of printer paper might be 80 GSM, so 160 GSM might be considered “thick paper”.

This website might help:

Edward avatar

Thank you for the response.It looks like I need to get 40 lb stock to get close to 160 gsm. Off to the office supply store.

StevenP avatar

An upgrade idea – use a pan and tilt mechanism to point the dish and follow in real-time where the ISS is currently in the sky. It’s always useful to know where to look in the sky if you are trying to find the ISS, you won’t see it if it’s behind a neighbour’s house or a cloud.

Alex Bate avatar

That’s an awesome idea!

Alec Short avatar

That would be amazing yes!!!

Edward avatar

What do the various numbers printed on the cut and fold lines represent? I though they were measurements(in millimeters) but they dont seem to make sense.

Alex Bate avatar

Hi Edward. The instructions on the printout page suggest that you glue the numbers to each other. Once printed and cut out, you’ll find two of each number. So glue 1 to 1, 2 to 2 and so on.

Edward avatar

Thanks Alex. I guess I should have read ALL 4 of the instructions ;-P

Mark avatar

Are there Step-By-Step instructions for this? I’m new, and would rather enjoy making this project.

Alex Bate avatar

Hi Mark. If you click the link on the Project Arthur website to go through to GitHub, you’ll find instructions on the printout sheets for the model.

Mark avatar

Alex, Thank you for a swift reply. However, I was referring to the Raspberry Pi. How do I wire it up inside the Big Arthur, and upload the software to it, get it running etc. The model is made. Now I want to start working with it. Gonna merge several programs (IIS – Tip of Dish) and How Many in Space (perimiter of dish.

ike mitchell avatar

This has been a blast to build. I’ve never been good at model making, but my Arthur looks fantastic. I’ll post when I have the ISS link running.

Thank you for such a fun project

Edward avatar

Can someone explain the Pizero/python side of this? I am guessing I load whatever version of raspian I prefer onto the Pizero, set it up to my LAN, and then run the pi code. py file. Does that sound correct?

David avatar

Add me to the list ;) I’d really like to know this, too.
I am new to raspbi & co. so it would really be helpful to have a step-by-step tutorial regarding the pi/electronics side.

Looking into I did find out that the LED goes into pin number 36, however, I don’t have a clue where number 36 is on the GPIO.
In addition, I couldn’t find where to set my geo-location (this is probably important, no?). Also, why do I need a Twitter application authentication in the python code?

Andrew Maffia avatar

I’m a newbie too, so here is my uninformed input so far:
PIN36 = GPIO16 (
Your location has to go in your IFTTT app. This is the stage I’m at, so I now get a tweet with #ISSoverhead (change the text from ‘right now’ to ‘soon’ & add your hashtag)
Next up is I guess, the twitter app & I’m hoping to find all the info here:

Edward avatar

Here is a link to a great resource for the pin out for a Raspberry Pis (and many other boards) It is a bit confusing since the pins don’t follow in order. I think pin 36 will be BCM 16. Hope this helps.

David avatar

Thank you both, Andrew and Gordon.
Thanks to the link to the “getting started with twitter api”, I now understand the software side of it.

I still have some issues with the hardware side. I now have a pre-soldered pi zero w, male female jumper wires and the LED. If I understand correctly, I need to plug one female side of the jumper wire to the GPIO16/PIN32. I assume I also need to provide power which means I have to plug another female jumper wire into the 5v Power (i.e. PIN2 or 4). No I have two male endings of the jumper wire which I need to attach to the LED (by soldering?). I apologize for these stupid questions. Never have been good in electronics…

Gordon avatar

Hi David,

I’m not qualified to advise you on how to set up your Pi Zero, but can tell you what I did with the Pi B+ (old model) I’m using. First, note that the code uses Pin 36, not Pin 32. I used a breadboard, LED and a 330ohm resistor, using two male-female jumper wires to attach the LED to Pin 36/GPIO 16 and to the ground pin next to it. As I understand it, with the Pi turned on, it’s delivering 3.3 volts to the GPIO pin.

Hope this helps.

Andrew Maffia avatar

Hi David, defo with Gordon there – only 3.3V + resistor. So you are going from GPIO16/PIN36 to the resistor to the led anode (long leg) & out the short leg to ground (I used PIN34, right next to the other jumper). The script turns the power on/off

Gordon avatar

I’ve opened a Twitter account and have created an app for ISS notification. The code seems to run without an error, but I haven’t been able to get a Tweet when the ISS is passing overhead. I’ve never used Twitter before and don’t know how to set it up for this project (or use it for any other purpose). For example, where is the particular ISS identifier hashtag to be entered…in my Twitter account and/or the Twitter app I created? Where, exactly? Do I include the hashtag or is it added by Twitter? I’m clueless and need step-by-step guidance about linking Twitter to get this thing to run.

A related question: now that I have the Twitter app set up, I don’t see how to edit it. The only option appears to be “Revoke access.”

Many thanks for any help!

Andrew Maffia avatar

Hi Gordon,
I’m working on the whole thing myself & shall report my step-by-steps when done (gonna take a while as long as England stay in the World Cup!)
Have you done the IFTTT bit? (Space\Tweet the ISS passing overhead) This sendes the tweet to your account. You don’t have to ‘do’ anything in Twitter afaic.
The twitter app just sits there – please take time to follow the wonderful project here: If you learn as much as I did just by following that step-by-step, I’ll be knocking at your door for help soon!
Good luck!

Gordon avatar

Hi Andrew,
Thank you for your helpful reply. I’ve now managed to get the IFTTT applet to tweet to my account (major progress for me!), but the LED won’t blink. I’m uncertain when the blinking is supposed to occur. Is it to begin as soon as the tweet is received, or is to start when the ISS is overhead (about 25 minutes after receiving the tweet)? I’ve checked the LED circuit and it’s set up correctly with GPIO 36, so don’t know what else to try.

Gordon avatar

(Replying to my own post, because it doesn’t seem possible to make a new comment that isn’t a reply to a previous post)–Anyway, to close out my saga…

I finally got this thing to work! Apparently, the LED was operating properly from the outset, but when a tweet would come in, I wouldn’t be near the Pi and the blinking cycle would complete before I looked at the LED, leading me to believe that the blink feature wasn’t working. I’ve since changed the count in the code from 20 to 120.

Andrew Maffia avatar

Hi Gordon! Nice, well done. I managed that last night too & pumped it up to 900 seconds with a more annoying blink sequence so I cannot miss it now. Broke my Raspbian installation though trying to update it (had saved the files, phew!) & am now starting on a re-flash. Next step is getting it in autostart after power on – have you done that? If so, any tips?

Andrew Maffia avatar

OK, got that sorted with & shebang line #!/usr/bin/python3.5 at the start of the script & chmod +x
Now for the soldering & I’m up and running!
Can anyone tell me if it would be inappropriate to upload my script to the Github page with my instructions? No idea of the netiquette, sorry!

Leon avatar

Hi Andrew/ Gordon,
Please can you tell me what your IFTTT receipe was.
I have configured my twitter but this one piece is remaining

Any help is greatly appreciated


Andrew Maffia avatar

Hi Leon,
haven’t been back here for while, so sorry for the late replay.
I think Alec’s updated project page covers your question, but don’t hesitate to get in touch if not.
Good luck!

Alec Short avatar

Hello Everyone! Im Alec the creator of this project first apoligies as this webpage wasnt meant to go live quite so early..and thanks for all the feedback. Ive now updated the tutorial that will hopefully provide guidance on completing the model..

Good luck with the project 


Alec Short avatar

Hi all thanks for featuring the project im Alec Short who designed it and wanted to let you know it has nown been updated

Many Thanks!

Andrew Maffia avatar

Hi Alec,
thanks for the updates & a great project: I learned so much & had loads of fun following it. You made a maker!
Thanks again!

Comments are closed