How to Make Your Own METAR Map


DIY Kits are available from my shop with a variety of different options which help simplify this project substantially.

Please check them out!

Building the map


First you will need to print your map.

My fullsize maps of Australia are printed at B0 size

Attach printed map to Foamboard being careful to not have any bubbles.

The adhesive is very strong and will rip your map paper if you need to lift it off again.

Caution: I highly recommend getting a second pair of hands to help lay the map on the adhesive

Remove excess foamboard with a Stanley knife alone a straightedge or Foamwerks straight cutter and Channel Rail (Be careful of the rubber on the bottom of the ruler. It can leave black marks on the map).

Drill holes for each airport through the paper and foamboard with the smallest insert (7mm) for your foam drill.

Take your time with each airport so the drill doesn’t rip the paper.

Extra care should be taken with clusters of airports (Capital cities).

If the holes are too close together the LED’s can rip the map when you insert them.

Using a cutting mat or spare foamboard will help the drill stay sharp for cleaner holes.

To make configuring the map easier I recommend writing the airport code for each hole on the back.

It is harder to do with the LED’s in. I already know the order I use so I write that on the back instead of the airport codes.

When all holes are drilled it is time for the LED’s.

Check all the LED’s for extra glue on the tips.

It is easier to remove the extra glue now with a Stanley knife than later when they’re in the map after you turn it on and notice it. TRUST ME

Insert each LED through the foamboard from the back slowly.

The foam drill is 7mm wide and each LED is 8mm so the fit will be snug and if done quickly can tear the map a little bit. Twisting the LED while inserting it can help prevent this.

Use your hot glue gun to secure the LED’s in place

If the LED’s are too close together you can cut the jacket off the LED with a Stanley knife.

Plan where you want to start the first LED string keeping in mind where you will mount the Raspberry Pi. I always start with Tasmania.


Framing you map


Start off by measuring your map and noting it down.

Make sure your mitre saw is properly set up with the fence and blade set true. This is important to make the glue up easier.

Cut your frame mouldings to size.

I have used a spare piece of Pine clamped to the outside of the moulding while cutting to help stop the frame chipping out and also so you can attach it to the opposite side piece when cutting for an exact match of length.

Otherwise, you can put some painters tape where the blade will cut through and this should help with blowout too.

The paint on the moulding is very fragile and will chip from very light knocks so be super careful while cutting so it doesn’t drop.

When cutting the frame pieces to size you need to account for the rebate in the measurements.

If you don’t the pieces will be slightly too long.

If you accidentally cut the pieces too short you can always trim the map down a bit.

Check each piece against the map to make sure it will fit well before gluing.

You want the map to be 1-2mm shorter than the inside edge to help with the fitting.

Arrange all the pieces in place and do another check of the fit for the map just in case and also check the 45° cuts fit well. I usually do a dry clamp up to check as well.

When you are confident it will fit well and there will be no big gaps when gluing it together it is time to start.

Apply a small amount of glue to the ends of the frame and make sure it covers all the area they will contact.

If you use too much glue it is fine. It is just more to clean up when it gets squeezed out.

If you’re unsure just use more glue. A damp cloth will clean up any excess glue later.

Join the corners together and lightly clamp, checking the fit.

Take your time with this step and try to get the front facing and outside corner lined up as well as you can. Inside doesn’t matter as much since you won’t be seeing it.

Repeat this for each corner.

Go around and check each join and then tighten the clamps a little bit more to secure them better.

Use your corner clamps to hold the frame together while the corners dry for at least 24 hours.

For extra strength you can now attach the corner braces.

These are fairly straight-forward. Just mark out the holes for the screws and drill a small pilot hole for each of them and then attach the braces.

Once dry you can fit your map (and glass/acrylic if you have it) and secure it with your point driver.

If you don’t have a point driver and don’t want to buy one you could probably use little nails to hold the map in. Points are way easier to do though. I’ve never used nails so I don’t know how well that would work.

Just point and shoot into the frame.

I try and space the points around 20cm apart and that works well and isn’t overkill.

If you plan on mounting the Raspberry Pi to the frame it is wise to put a layer of wood glue in the spot and letting it dry. Velcro dots peel off the wood after a while so the glue creates a better sticking surface for them.

To attach the hanging wire measure an equal distance from the top of the frame on both sides and mark it.

On my full size maps I measure 15cm from the top as the wire sags a lot over 1.5m.

Being high on the frame helps the frame sit closer to the wall at the top and hides the wiring at the back better.

Place the D rings with the ring pointing up below where you marked and mark out the screw holes so you can drill pilot holes.

Now attach the D rings with the provided screws. Frame wood is very soft so don’t over tighten them. Best to use a hand screwdriver for this.

Thread the wire through the first D ring and wrap it around itself as per the instructions on the wire packet then do the other side making sure the wire is tight. Once again, be careful not to damage the frame by over tightening.

Also, be mindful of the frayed ends of the wire. They hurt when you get stabbed by them.

UPDATE: I no longer use wire and D rings as the maps are too heavy when you put glass in them. I use these hanger rails and they’re much better.


Configuring Raspberry Pi


If you bought the Raspberry Pi with my DIY kit this will already be done for you and you can skip to the ‘Configure LED order and other settings’ section

To power the LED’s and the Raspberry Pi with only one power supply you will want to connect the LED circuit to the GPIO ports on the RPi.

This is already done with a custom HAT for the Raspberry Pi’s that comes with my DIY kit RPi.

I followed this guide when I was learning

Your wiring/circuit should be as follows:

  • Pi GPIO18 (Pin 12 or the 6th down on the right) to 74AHCT125 pin 1A (2nd pin from the left on the bottom row)
  • 74AHCT125 pin 1Y (3rd pin from the left on the bottom row) to LED DIN (Middle wire – Usually green wire)
  • Power supply ground to 74AHCT125 ground (Bottom left-most pin)
  • Power supply ground to 74AHCT125 pin 1OE (Bottom right-most pin)
  • Power supply ground to Pi GND (7th pin down on the right or pin 14)
  • Power supply ground to Pi GND (3rd pin down on the right or pin 6)
  • Power supply ground to LED GND (Usually white wire)
  • Power supply 5V to 74AHCT125 VCC (Top left-most pin)
  • Power supply 5V to LED 5V (Usually red wire)
  • Power supply 5V to Pi 5V (Pin 2 or the top right pin)

On a DC barrel jack connector, the 5V will be the rear most pin and the Ground will be the pin in the middle.

I always refer to the 74AHCT125 chip with notch out of the top surface pointing to the left like in the above diagram.

Once you have your circuit sorted out you can start configuring the software.

With a fresh Raspberry Pi you will need to get Raspian on your MicroSD card which you can follow this guide.

When you have NOOBS on the SD card put it in the RPi and connect it up to your TV/Monitor and power it on.

Select Raspbian Full

Go to Wifi Networks and connect to your Wifi

Click install and then ‘YES’

It will install in around 20 minutes and then show this screen

Click ‘OK’ and it will restart

You will see a Welcome Screen to help configure Raspian

Follow through these steps configuring it to your needs.

It should automatically install any updates and when done ask you to restart

When it has booted up again go to the Raspberry icon in the top left and then

‘Preferences’ then ‘Raspberry Pi Configuration’

Change Boot to ‘To CLI’

Click the ‘Interfaces’ tab and enable ‘SSH’ and ‘I2C’ and then click ‘OK’

Now open the Terminal and type ‘ifconfig’ and press enter to show you what your IP address is

Note the IP address down for later.

Your RPi is now set up so you can connect to it via SSH over Wifi and you will no longer need it to be connected to a screen.

Download and install Putty on your PC so you can SSH into the RPi.

Open Putty and type the IP address that you noted down earlier into the field and press enter

Click Yes on this

Log in with the username and password you set up – Default username and password is pi and raspberry

We need to disable the RPi soundcard so it can use the GPIO18 port


cd /etc/modprobe.d

and press enter


sudo nano snd-blacklist.conf

and press enter


blacklist snd_bcm2835

and then press CTRL+O then enter then CTRL+X

Reboot with

sudo reboot

Reconnect like before with Putty


aplay -l

and then enter and this should show that there are no soundcards which is what we want.

Now to install rpi_metar_au and run it automatically like these instructions but with a twist for Australian styling.

WARNING: The screenshots below will have ‘rpi_metar’ in a lot of places instead of ‘rpi_metar_au’. Make sure you follow what I’ve typed out and not the screenshots.

Copy this into the session

sudo su
apt install python3-venv
python3 -m venv /opt/rpi_metar_au
source /opt/rpi_metar_au/bin/activate
pip install -U git+

You may see errors like this. If this happens just run the install again with

pip install -U git+

When done you can exit and reboot with

sudo reboot

Reconnect again and type

sudo nano /etc/systemd/system/rpi_metar_au.service

and enter

Copy this into the file

Description=METAR Display

Save with CTRL+O and enter then exit with CTRL+X

Make systemd aware of the changes by typing

systemctl daemon-reload

If it asks for authentication choose option 1 (pi/your username) and then enter your password

Make sure it’s set to run at boot by typing

systemctl enable rpi_metar_au

Start the service with

systemctl start rpi_metar_au

Check the service is running with

systemctl status rpi_metar_au

You should see it say active (running) in green

Configure LED order and other settings

If you just skipped to this section because you bought my DIY kit please download and install Putty  and also find out what your Raspberry Pi’s IP address is.

There is a chance that if you tried to follow my LED ordering that you can skip this section too as it will all be correct already.

To find out your Raspberry Pi’s IP address you may need to log into your Wifi router and look for it in there. Probably under DHCP or lan leases etc.


sudo nano /etc/rpi_metar.conf

and enter

The conf file should have airports at the top in this format and should start at 0

YMML = 0
YSSY = 1

Then settings in this format

brightness = 50
lightning = True
lightning_duration = 1.68
metar_refresh_rate = 300
do_fade = False
unknown_off = True
max_wind = 25
wind_duration = 1.68
wind = True
papertrail = False
sources = BOM,NOAA

Legend should come after setting like this

VFR = 120
MVFR = 115
IFR = 116
LIFR = 117
Wind = 118
Light = 119

Save the file with CTRL+O and then exit with CTRL+X

Restart the program to get the new config changes with

systemctl restart rpi_metar_au

My full config file can be found at the bottom of the page.

Now that the RPi is configured you can plug it into your LED’s and mount it behind your map and turn it on.

It shouldn’t take more than 5 minutes to boot up and start showing all yellow LED’s first then as the METAR’s are downloaded and parsed each of them will change to their corresponding colours.

Check each of the LED’s to see if they are on and the correct colour and adjust the order in the config file if you need to.

When that is all correct your map is ready to be hung up and enjoyed!

If you have any feedback for me about this tutorial, or anything else, I am keen to hear it as I am always looking to improve the map and help anyone building one themselves.

Please contact me here

This is my full config file for reference

YPCC = 6
YPXM = 9
YABA = 11
YBLN = 12
YBUN = 13
YPJT = 14
YRTI = 15
YPPH = 16
YPEA = 17
YCUN = 18
YSCR = 19
YNSM = 20
YESP = 21
YPKG = 22
YLTN = 23
YTRA = 24
YLEO = 25
YLST = 26
YMNE = 27
YWLU = 28
YDGU = 29
YMEK = 30
YMOG = 31
YGEL = 32
YSHK = 33
YCAR = 34
YPLM = 35
YOLW = 36
YBWX = 37
YPKA = 38
YBGD = 39
YPBO = 40
YSOL = 41
YPPD = 42
YFDF = 43
YBRY = 44
YCWA = 45
YANG = 46
YCHK = 47
YNWN = 48
YTEF = 49
YWBR = 50
YFRT = 52
YGLS = 54
YKNT = 55
YAYE = 56
YERN = 57
YBAS = 58
YOOD = 60
YCBP = 61
YTAR = 62
YCDU = 63
YWUD = 64
YPWR = 65
YOLD = 66
YLEC = 67
YOOM = 68
YBDV = 69
YLLE = 70
YWDH = 71
YLRE = 72
YBCK = 73
YBCV = 74
YTGM = 75
YTIB = 76
YBHI = 77
YREN = 78
YPAD = 79
YPPF = 80
YPED = 81
YPAG = 82
YWHA = 83
YCEE = 84
YPLC = 85
YKSC = 86
YMBD = 87
YNRC = 88
YMTG = 89
YNHL = 90
YMIA = 91
YSWH = 92
YHSM = 93
YHML = 94
YPOD = 95
YWBL = 96
YKII = 97
YSMI = 98
YSRN = 99
YMHB = 100
YMLT = 101
YWYY = 102
YDPO = 103
YSTH = 104
YFLI = 105
YBNS = 106
YMES = 107
YLTV = 108
YMMB = 109
YMML = 110
YMAV = 111
YBLT = 112
YBDG = 113
YMNG = 114
YSHT = 115
YDLQ = 116
YHAY = 117
YIVO = 118
YWCA = 119
YCBA = 120
YBKE = 121
YWLG = 122
YCNM = 123
YCBB = 124
YSDU = 125
YCDO = 126
YGTH = 127
YNAR = 128
YWGT = 129
YHOT = 130
YMAY = 131
YSWG = 132
YTEM = 133
YWWL = 134
YFBS = 135
YPKS = 136
YYNG = 137
YCWR = 138
YORG = 139
YBTH = 140
YMDG = 141
YSCO = 142
YGDH = 143
YSTW = 144
YNBR = 145
YMOR = 146
YIVL = 147
YARM = 148
YCFS = 149
YLHI = 150
YKMP = 152
YPMQ = 153
YWLM = 154
YSSY = 155
YSHW = 156
YSHL = 157
YSNW = 158
YMRY = 159
YMER = 160
YMCO = 161
YCOM = 162
YSCB = 163
YGLB = 164
YSCN = 165
YSBK = 166
YSRI = 167
YCNK = 168
YMND = 169
YTRE = 170
YGLI = 171
YGFN = 172
YLIS = 173
YBNA = 174
YBCG = 175
YBAF = 176
YBBN = 177
YAMB = 178
YTWB = 179
YBWW = 180
YBOK = 181
YSGE = 182
YROM = 183
YCCA = 184
YKRY = 185
YBSU = 186
YHBA = 187
YMYB = 188
YGAY = 189
YBUD = 190
YGLA = 191
YTNG = 192
YBRK = 193
YEML = 194
YCMT = 195
YMRB = 196
YBMK = 197
YBHM = 198
YBPN = 199
YBTL = 200
YIFL = 201
YCKN = 202
YBCS = 203
YMBA = 204
YGTN = 205
YHUG = 206
YRMD = 207
YWTN = 208
YTEE = 209
YJLC = 210
YCCY = 211
YTMO = 212
YBMA = 213
YCNY = 214
YTNK = 216
YHOO = 218
YHLC = 219
YFTZ = 220
YCIN = 221
YDBY = 222
YBRM = 223
YLBD = 224
WADD = 228
WADL = 229
YBYU = 233
YTTI = 234
YTST = 235
YWYM = 236
YPKU = 237
YARG = 238
YVRD = 239
YPKT = 240
YPDN = 241
YPTN = 242
YJAB = 243
YMGD = 244
YMGB = 245
YELD = 246
YPGV = 247
YGTE = 248
YNGU = 249
YMHU = 250
YBRL = 251
YMTI = 252
YBKT = 253
YNTN = 254
YKOW = 255
YCOE = 256
YLHR = 257
YBWP = 258
YHID = 259
AYPY = 261
AGGH = 266
brightness = 50
lightning = True
lightning_duration = 1.68
metar_refresh_rate = 300
do_fade = False
unknown_off = True
max_wind = 25
wind_duration = 1.68
wind = True
papertrail = False
sources = Avplan, AMM, NOAA