Retrieved my first two radiosondes

I have been nerding on weather balloons for years now, and the amazing radiosonde_auto_rx project blew my mind when I first ran across it. Back then it was in it’s infancy with a handful of listeners, many of which were intermittent dabblers like me who couldn’t be bothered to keep their station running 24/7. Fast forward a few years, a country move and a child birth later and I’ve dusted off my auto_rx tracker. A month later and I’m happy to present my first two captured radiosondes!

What is a radiosonde?

I’m glad you asked. Have you looked at a weather forecast lately? Radiosondes are a key part of how weather is modeled to give us these forecasts. Twice daily at hundreds of sites around the world, launched on the same schedule of noon and midnight UTC, a weather balloon is launched which conducts a “sounding” of the atmosphere. It contains at least a GPS receiver, radio transmitter, and temperature/humidity sensor which relay back to the ground station the path that the balloon takes and the conditions it passes through. The wind you feel at ground level is never what is happening above you…if you’ve ever explored maps on sites like which let you visualize wind speed at different altitudes, you can learn that the atmosphere is full of layers. It’s complicated and ever changing.

How does it come back down?

The balloon lifting the sonde expands as the atmosphere things out. Around 30km altitude (roughly 3x the altitude of a commercial airliner) the balloon reaches it’s breaking point, and pops. The sonde then falls back to earth, slowing down with a parachute to make a soft landing.

Where do they land? Who gets them?

That’s the fun part! They land all over the place, and generally speaking the service which launches them does not expect them back. I’ve read reports that some weather services ask you to post them back and even a meager reward for returning the device, but the devices I’ve found are presumably rather cheap and the sticker on them simply says to recycle or throw it away. My first one I found literally in a dumpster, having landed in a parking lot.


It’s fun! Finding a balloon is a fun chase. It takes you to a new place every time you go looking for one, which is nerve wracking and exciting. It’s proven to be fun and educational for my 4 year old daughter too. She asks questions, gets excited, and thinks about the earth.

My finds:

Lisle – golf course – January 29th

The first radiosonde I’ve ever spotted at landing. Unfortunately on the far side of a fence in a golf course during winter when the course is closed. I managed to see it – which motivated me all the more! But I’ve given up chasing it. Flight path:

It’s hanging from the far side of that tree…I promise…

February 8th – Glendale Heights

My first find! sent me a Signal message letting me know of the landing while I was eating my breakfast and hadn’t pulled up yet that day. At 1pm I took my daughter on a short drive to the landing site at an apartment complex ten minutes from my house. I hadn’t been smart enough to bring my auto_rx receiver so I was flying blind, hoping it would be an easy spot. After a few awkward laps driving around the parking lot I noticed a long string hanging out of a dumpster. Hopped out of the car to have a look, and sure enough, there it was. Still transmitting six hours after landing!  You can view the flight path and sensor data on SondeHub:

February 12th – Naperville

In the evening unexpectedly let me know that a sonde had landed at the far end of my 20km notification radius. It was late, but the tracking data provided by another receiver had the landing point pretty accurate and safely landing in a school’s football field. This time I brought my pi auto_rx receiver and an antenna with. As I drove up to the predicted landing site I realized that my USB power supply to the Pi was not powerful enough. Good I had brought a backup! Fired it up and immediately started receiving telemetry data from the sonde on the ground about 100m away. A short walk later and I had easily recovered my second radiosonde! You can view the flight path and sensor data on SondeHub:

So far:

What’s next

Finding more will be fun. One landed just the other day 6k from my house, but I’m out of town so won’t get to go check out the landing site for over a week. Will it be there? Who knows.

The real goal is to do something useful with these sondes – ideally attach them to a new balloon and fly them again. I’m planning to conduct my first USA launch this summer, so if I can get some code loaded on one of them, it can ride share. Just a few hours ago I giddily found this project which I can’t wait to give a try: and whatever I can learn from

Posted in Uncategorized | Tagged | Comments Off on Retrieved my first two radiosondes

Introduction to ESPHome

I’ve long been a tinkerer of home automation:

notice how they are all in a box, now obsoleted.

Since moving to the US in 2019 and buying my first home, my old X10 modules came out of storage. I quickly realized that a whole world of development has happened in home automation since I used these. I had experience with various environmental sensors, but I wanted lots of them, and cheaply. I ran across the ESP8266 boards and became fascinated by how much you can do for how small a cost.  I bought several and even tinkered with building some using the bare ESP8266 chips which cost just $1 each:

most of my esp boards



I’m quite comfortable with Prometheus, so I wrote some exporters from scratch and found others writing them too. I used a Grafana dashboard to keep an eye on the sensors. I later dove deep into Home Assistant and found myself pushing sensor data from Prometheus into Home Assistant. Throughout all of this, I kept running across the ESPHome project over the course of 2020 and 2021, but it just didn’t click. What is it again? Is it part of Home Assistant? It just didn’t make sense to me. So here goes…an introduction to ESPHome!

What is ESPHome?

ESPHome is a distribution of software to flash on cheap Espressif ESP8266 and ESP32 chip devices to use them with Home Assistant.

What again?

Let’s say you have some ESP hardware and something you want to do with it, for example you want to read a DHT22 temperature/humidity sensor.  You already use Home Assistant, and you want to make your sensor readings available in Home Assistant using your ESP device.  ESPHome makes that as easy as it can be:

  • Wire up the DHT22 to your ESP board
  • Start the ESPHome dashboard
  • Create a new device config and include the sensor configuration
  • Upload your first firmware via USB serial to the ESP device
  • Add the device to the Home Assistant ESPHome integration by it’s IP or mDNS name.
  • Voila – your DHT22 readings are now in Home Assistant!

Why ESPHome?

One of the reasons to love Home Assistant is that it’s yours: you can run it on your own hardware and your data remains your own. You can use it even if your home internet is down – no cloud required. No subscriptions.

ESPHome is much the same: you can make little IoT-like devices, cheaply, and not have someone’s cloud service stuck in the middle.  Home Assistant controls the devices directly on your home network.  No cloud.  Open source software.  Your data is yours.

Is it part of Home Assistant?

ESPHome is technically separate from Home Assistant, however it is basically written for Home Assistant.  It’s separate enough that has been used with OpenHAB, for example. The documentation in ESPHome does show screenshot snippets from Home Assistant. The company behind Home Assistant is maintaining ESPHome to boot.

If you don’t want to use Home Assistant, you can still use ESPHome – or you can consider other ESP firmware frameworks:

What kinds of things can you do with ESPHome?

You can read so many sensors ranging from air quality, temperature and humidity, light…if the device is simple and can be driven by GPIO pins on a ESP/Arduino/Pi board – including I2C and SPI bus applications, you can probably make it work with ESPHome. The documentation is extensive.

You can also use the ESP device to make things happen using relays, display outputs, and many more.

The list of supported devices is extensive, and every device has an example YAML snippet which you can try.  Furthermore there are a lot of brand-name devices which have ESP chips in them, and a community of examples called ESPHome-Devices gives configurations for how to run them with ESPHome.

ESPHome also provides for “OTA” updates, meaning that after the first install of the software on your ESP device via USB-serial, subsequent configuration changes and software updates are done over WiFi.  No wires.

Who is ESPHome for?

Probably two types of people:

  1. Entry level hackers who want to do some basic hardware hacking, like soldering things to GPIO pins on a device like an ESP8266 board and seeing them work in a nice UI in Home Assistant.  You don’t need to write much code, really just some configuration in YAML.
  2. Experienced hackers (maybe like me) who have gone through piles of Raspberry Pi’s, Arduinos and Espressif devices and are just looking for a good way to manage a bunch of customize-able devices around my house without too much overhead writing and maintaining software.

ESPHome Architecture

Before I used it, I was confused about the ESPHome architecture. Does it have a hub or controller? Do I need to run any centralized software separate from Home Assistant?  Short answer: No! :)

Home Assistant talks directly to individual ESP nodes via their IP address (I recommend using mDNS for simplicity). No “hub” or “controller” node in the middle.  Each individual ESP device hosts an API endpoint specific to Home Assistant. You run the ESPHome Dashboard and CLI tools to build firmware images at the time you want to make changes.

How to get started?

Find something you want to do with a little IoT device: read a sensor value, control a relay, something simple. You can even just program an ESP8266 chip to control it’s LED in Home Assistant, which is a great Hello World-esque example.

Make sure you’ve installed Home Assistant already.

Buy one or more ESP devices that come with a built-in USB-to-serial converter. If nothing else, you can find a pack of WeMos D1 Mini ESP8266 devices on Amazon for pretty cheap; however eBay is cheaper.

Install ESPHome.  What this means can vary depending on how you want to use it; I run the ESPHome Dashboard in a Docker container on a laptop separate from where I run Home Assistant.

Plug in your ESP device. Run the dashboard.  Create the device, which generates the basic device YAML:

 name: yourdevice
 platform: ESP8266
 board: esp01_1m
 password: "ee6d3cc677a5587c8e2a580b330e856f"
 ssid: !secret wifi_ssid
 password: !secret wifi_password

Now add a switch configuration to control the on-board LED:

 - platform: gpio
   # Your GPIO pin number for the LED varies by board.
   # on my WeMos D1 Mini boards it is GPIO2
     number: GPIO2
   name: "LED"

Compile, upload to the device.

Now in Home Assistant, go to Integrations, find the ESPHome integration, and add the device by it’s mDNS name, yourdevice.local:

Once you hit submit, Home Assistant talks to the ESPHome node (your ESP device) and finds what controls and sensors it has, and they become available in Home Assistant like any other object.  The LED switch we just specified will look like:

Flick the switch. If you see a light, you’re winning! If not, check your PIN number and board type and tinker until you get it.

Where to go from here?

Get tinkering!

Posted in Uncategorized | Comments Off on Introduction to ESPHome

IO91 -> EN51…NW6 1UE -> 60137…51N -> 41N…2001:8b0:da4::/48 -> 2601:249:902:50a1::/64 (completing the circuit)

There and Back Again, a hobbit’s tale by Bilbo Baggins and The Lord of the Rings by Frodo Baggins. You finally finished it.” – Sam

“Not quite. There’s room for a little more.” – Frodo

Completing the circuit

We just moved back this year from London to Chicago.  We don’t actually live in Chicago – we’ve settled in a house in Glen Ellyn, a western suburb of Chicago.

It’s now more than 8 years ago that I flew to Shanghai on this crazy adventure around the world.  Apparently I told people I’d be back after just two years.  Here I am so many years later, married, and baby CJ is over a year old!

Well traveled

I never thought I’d be tired of flying…but half a million miles of flying later, I don’t mind staying put from time to time.

While based in:

I think it should go without saying that the Great Circle Mapper has been a good friend of mine along the way. I should really get in touch with the author and show my strange maps.

Our journey while in the UK

We moved in 2015 from Shanghai to London.  That was an adventure.  We moved into a little house in southeast London in a village called Ladywell and lived there for two years before moving to the opposite side of London to West Hampstead for another two years.

I’ll remember it as the place where we had the smallest garden patch I’ll ever call “home” in my life, with our cute little shed for bicycles to live and little grill that we had to give up when we moved again.

We settled into that house pretty quick, hanging photos just about everywhere:

The two places were very different to live in.  London is an incredibly diverse city where you can easily get lost in exploring the culture of a specific area and then go to the next village over and find it a completely different place.  There’s a funny little north-south divide (“You live south of the river? We don’t go there.”) to London that I can’t help but think is just due to what I’m going to call the Beck effect; the effect that London tube maps have on the psyche of the people living there. The Thames river is shown to help aide in navigation, but perhaps a side effect is that the Thames forms a mental barrier for transit users.  It could also have something to do with the fact that many of the overground rail stations like Waterloo, Canon Street and Liverpool Street are terminal stations for huge long networks extending hundreds of miles to the north and the south, almost like the Thames river is some insurmountable depth of water to cross.

We traveled a lot within the UK: Bath, Stonehenge, Cambridge a few times, Bletchley which I can highly recommend, the South Downs, Norfolk, Dublin, Edinburgh, Loch Lomond, Liverpool, Monmouth to visit our friends Joan & Jeremy, the Isle of Wight (so easy to get to on national rail). My map of the UK is dotted with stars all over the place. Yet there’s a lot of space between those stars. Much more left to see.

For being an “old’ city London sure is well lit:

What I’ll miss

I miss the rolling, manicured patchwork fields that are distinctive of the UK. Granted, I only saw these while on a plane coming & going, or while reading the NPAS Redhill twitter feed trying to figure out why there’s a helicopter over my house, but nonetheless, I miss it.

Grocery stores in the UK are smaller than in the US, but the food quality is better – particularly the variety, quality and value of ready-to-eat meals. A godsend for young parents.

Tax is included. In the UK (and China to boot) tax was included in the list price for any item.  £2 for a box of Cadbury chocolates cost you – wait for it – £2 out of your pocket.  In the US it’s annoying listed as $2.49 and will cost you precisely $2.7698235 but don’t worry we’ll round it to the nearest lincoln and charge you a rounding fee as well.

Roundabouts.  Seriously USA, just use them.

Trains & Buses

Living where we did in the UK, a car would have been a frivolous expense. We took public transit everywhere.  If it wasn’t one train it was two; if it wasn’t two trains it was a bus and a train. If it was raining and we got the timing just right, we’d catch a cheeky bus ride up the street from our high street station to our flat which is only three stops away. It was just so damn easy. The Chicagoland transit system pales in comparison.

What I won’t miss

Narrow roads. Cycling in London scared me more than cycling in Shanghai, because the roads are narrow, bumpy, and have hard curbs which leave you no where to go when the lane inevitably ends 2.3 seconds after it just began. I didn’t cycle much in London while I was there, despite it being one of my main desires when I moved there.

2011 to 2019 – what’s different?

So many things. 8 years is a long time.

Politics continue to get better every year.  *facepalm*

Google’s now blocked in China among a whole host of things, creating the largest fragmentation the Internet has ever seen. But few of us “see” it.

We crossed 512k routes in the Internet BGP table and we survived to tell the tale.

SpaceX “took off” and even brought rockets back down to earth.

HTTPS is everywhere. IPv6 is getting real.

Smart phones are commonplace.

What’s the same?

XKCD – going strong.  Teaching us stuffHelping us figure out how to use the Internet. Keeping us nerds honest.

What’ll never be the same

Language. My view on language has changed. The English language is shit and requires constant interpretation unless you know the speaker rather enough. Chinese is a whole other complicated beast, but I can’t help but think just how much harder human existence with an imprecise language such as English being so essential.

Units of measure. I talk in centimeters and meters and it weirds people out. Unfortunately the legendary Luban Ruler was confiscated by airport security so most of my tape measures are in inches, and Menards does just about everything in inches anyway.

Food. The world is full of a wild variety of food; enough variety that you’ll never be bored of trying new things if you get out a bit. A friend of mine once told me that Indian curries are so flavourful that he “forgot” to eat meat for several months at a time instead preferring vegetarian curries. Another friend told me that food without spice cannot be enjoyed; I didn’t get what he meant at the time, but now I understand.

Picked up along the way

I learned about ham radio, as a result of developing an obsession with high-altitude ballooning.  I ended up getting my “Advanced” license in the UK, which is the highest qualification of license you can get. So far I haven’t found a route for me to get a corresponding US license for free, so I’m probably going to have to take the exams here all over again. C’est la vie.

Celsius. I learned to talk weather temperatures in Celsius.  It wasn’t hard really, you just have to try.  I switched my locale on my mobile phone to show me things in Celsius.  I wish more apps showed both because unfortunately I now live back in a place where Fahrenheit is the norm and Celsius is treated like communism.

Eddie Izzard. We saw Eddie so many times, I think four times in London. We saw him this summer while he was in Chicago too.  He’s still keeping us laughing, but also trying to tell some real stories about his life and maybe change a few things in politics too.

Andrews & Arnold ISP. I can’t say enough other than that they might just be the best damn small ISP in the world. Is your ISP on IRC available to answer you questions? Do they give you bandwidth and latency graphs for your connection to help you diagnose usage of your line? Do they promise to never censor you? So far, A&A is the only ISP I’ve ever met with this level of service. Simply impeccable.

So what about all those numbers in the title?

If you know me, you know I like numbers.

IO91 -> EN51: IARU locators, which are used in amateur radio to divide the world’s land up into evenly-sized panels.

NW6 1UE -> 60137… postcodes

51N -> 41N: GPS latitudes

2001:8b0:da4::/48 -> 2601:249:902:50a1::/64: yup, my IPv6 block that I had with AAISP in London, and my IPv6 block from Xfinity. Nerd.

Adjusting back to life in the USA?

I get asked this a lot. In short, it’s weird, on a daily basis. I think I’ll be settled by 2021.

As a form of protest, I continue to drive on the left.  Maybe it’ll catch on.

Posted in Uncategorized | Comments Off on IO91 -> EN51…NW6 1UE -> 60137…51N -> 41N…2001:8b0:da4::/48 -> 2601:249:902:50a1::/64 (completing the circuit)

HAB flight 3: two payloads, some success, and more failure

This post is a bit late given the launch was two months ago, but hey, I’ve been busy. We had a baby last year, and I’m moving to the US this month.

Launch day, site, people

We launched on Sunday February 24th from Steve Randall’s site in Elsworth, UK.  Steve (obviously) came out to meet us, and supplied the balloon and helium (and in the end the parachute too).

Helping me out on launch day was Marcus Daniels (driver) and Noel Vasquez (comedy).


  1. Trusty old tracker “EAGLE” through it’s third flight.  Only real modification is that I removed the Canon A810 camera given that it doesn’t produce very good photos, which saves weight (~170g) for other payloads. 315 grams. RTTY signal at 50 baud 8-N-2.
  2. New tracker named “hatTrick” given it’s my third flight. It’s a Pi Zero build of Dave Akerman’s “DIY Lightweight Pi Tracker” built pretty much to the letter but with my own cheap case made of an old ice cream styrofoam box. I used 3xAA batteries with no voltage regulator. 94 grams with the box! Not bad. LoRa mode 1 signal w/ SSDV.
  3. “hiadsb” – a revisit of my last flight’s “see how far away I can receive ADS-B signals” experiment. I used a different battery pack this time, and added a cantenna ground plane to the el-cheapo nooelec ADS-B antenna. 179 grams.
  4. Steve Randall’s X2 tracker + a GSM backup tracker which he wanted to try.

Balloon & such:

  • Balloon: 1200G of a new brand that Steve wanted to try (I didn’t get the name.)
  • Parachute: 36″ PML Durachute
  • Neck lift: 2.4kg

See my weight tracking sheet for reference if you’re curious how I plan for this leading up to a launch.

Launch planning challenges

February in SE England isn’t a great time to launch.  Winds shift regularly and often blow quite strongly sending any payload into the sea. At one point a few days leading up to the launch, we were convinced the launch would have to be postponed given the following options for a Saturday or Sunday launch:

hourly predictor on 2019-02-18

My original idea was to use an 800g balloon for a slightly shorter launch staying a bit further inland.  However the night before the launch the predictions shifted again, and put a 800g balloon landing exactly on Runway 22 of Stansted airport.  Bad idea!  If we launched a bit earlier, instead of Stansted we’d land in Braintree. Bad idea again. 12 hours later (a mere 4 hours before launch), the predictions shifted yet again and gave us an opening. Steve suggested to use a big balloon (1200g) to keep the payload afloat a lot longer and put it down south of Colchester.


The chase was fun because as you can see from the photos, it was a beautiful day. We watched the balloon ascend to a few thousand meters.

At some point we lost track of the balloon visually. Why?  Because we didn’t look at our prediction nor the azimuth on the tracker UI.  At 3800m the balloon hit a different layer of atmosphere and did an abrupt U-turn:

I sat in the passenger seat and gave directions to Marcus, whilst also tracking my balloon on both LoRa (using a Pi via network cable with a LoRa radio on it) and RTTY (via a SDR in my laptop). Tracking both simultaneously wasn’t as hard as I’d thought, but I did have trouble keeping two antennas mounted on the roof. In the end I just used one antenna and switched back and forth between the two trackers but I had plenty of listeners. Sadly I hadn’t announced Steve’s X2 tracker so not many people knew to tune in.

I also plugged a USB GPS receiver into my laptop to provide dl-fldigi with a GPS location source so I could show my position on the tracker website in real-time as I received data. This worked well until the GPS receiver died. It’s since been declared dead. It was a cheap enclosure of a uBlox 7 chip.


New altitude record for me: 34,000 meters!  We were aiming for 32km.  Every meter up we went was another meter closer to a wet landing, so when we started to rise above 32km I started to sweat more.  But we hit a nice high altitude and stayed dry.  PHEW.


Lucky me. We landed 20m from a road, in a field, plain sight.  Double lucky, I think the payload train missed a tree near the landing site probably by a few meters.

Good thing, because not only did I have one tracker failure on landing, but two!

Steve drove faster than we did and was waiting for us at the landing site.

We landed about 3500m from the water.

What worked & what didn’t

Success: SSDV

I can’t take any tech credit for this as it’s all Dave and the PITS software which runs on it. But it worked and sent back some great photos which was fun for family to watch as the flight went on.

Double-fail: Battery packs on landing

I’ve read over and over about people soldering batteries, which sounded like over-engineering. Until this time!

Epic fail: hiadsb ADSB experiment

This payload died entirely and presumably in spectacular fashion.  The Pi Zero that it ran on is dead – fried. The SD card is fried too – nothing will read it anymore. My suspicion? The cheap battery pack that I flew (which I’ve never tried frozen) must have a bad voltage regulator in it and it fried the Pi. Unfortunately this led to zero data coming back. Sad.

Fail: BME280 sensor on EAGLE

It failed on the last flight, why would I expect it to work this time without me fixing it?

Other things I learned

  • Payload prep is something I should do more of at home. Have the payloads with good fresh batteries ready to go, and have a way to quickly seal them up to launch quicker. We arrived at the launch site around 10:20 and didn’t launch until about 11:45 which, on a day where the winds were against us, meant a very different landing site.
  • Bring lunch. Stopping for lunch wastes valuable time. One day I’d like to see a payload land, but you’ve gotta drive efficiently to get there.
  • Mag mount antennas need testing at high speeds.
  • PITS low resolution photos on the ground mean low resolution photos on disk. Which means you get crap resolution photos of liftoff. While this is good for SSDV not great for post analysis. I might look into fixing this or next time send full size photos on the ground.
  • PITS only takes photos by default once per minute. I never thought much of this, but it’s not very often.

Photos & video

OK, here’s what you came here for:

Post launch battery rundown

After bringing the payloads home and making copies of the data, I put the used batteries back in and ran each of the trackers to exhaustion to get an idea of how much battery life was left in them.  They were powered on for about 4 hours, and each had plenty left to spare: EAGLE 16 hours, hatTrick 10 hours.

Radio listener analysis

Finally I win! All I had to do was track my own balloon.

Further analysis

Still need to figure out what happened with the BME280 sensor. That’s weird.

I would like to spend more time analyzing the ascent and descent velocities, especially somehow visualizing them vs. altitude.

I don’t know how to get a link to the telemetry data on now that the launch is a bit old. It’s like my data has been archived even though this was a “live” flight.

My photos from EAGLE have the wrong telemetry data on them. Looking at it now two months later, I think I’ve substituted data from my launch in May 2018! That would explain it. Unfortunately I’m tired and don’t have easy access to my HAB data archives at the moment, so this’ll have to wait for another day/month/never.

What’s next?

  • Fix some things
  • Maybe a first US launch when I arrive back there?
  • Maybe another similar launch in the UK in June when I visit
Posted in Uncategorized | Comments Off on HAB flight 3: two payloads, some success, and more failure

HAB flight 2 “EAGLE”

Why the name Eagle?  Good question.  I’ll explain in a bit.

You know it’s good luck when the day before the launch, you get this comic sent to you by your mom:

What’s new with this flight?

This flight is the second launch of basically the same payload as my first flight, however with some modifications:

  • INA219 voltage meter reading the Pi’s input voltage and current.  (I wanted to monitor the battery voltage before the regulator, but I didn’t get time to wire it up)
  • Replaced UBEC voltage regulator with a LM2577 regulator which is a boost-buck combination regulator, rated to boost voltages as low as 4V.
  • 6 AA batteries instead of 4.  Why?  In some of my tests, the voltage regulator was really unreliable when input voltage was around the output voltage (5V).  It worked more reliably in tests when the input was much higher.  6 batteries yielded plenty.
  • Lots of code changes – highlights:
    • Read the sensors every second and write to disk (even though we only TX every ~20 seconds since it’s 50 baud slow)
    • Keep the UART output buffer low so that the transmitted message is not 2 minutes old (a problem on the last flight where BUZZ appeared to be always 2km ahead of SAM on the map)
  • Pi camera attached to the payload side rather than the top, to compare it against the Canon A810.  Spoiler alert – the Pi pictures are much better.
  • Hwoyee HY-750 balloon instead of a HY-500 (to go higher and carry more weight)

Launch Crew

Chase car driver: Barry Tucker
Pretending to know it all: Patrick van Staveren (me)
Backup radio operator: Marcus Daniels
Moral support: Ray Pasko

Launch Site

Steve Randall hosted the launch in Elsworth which is just outside Cambridge.  During the same weekend the Big EARS rocketry event was going on from the same site, so we had to keep a bit of distance from the rocket launch pads.  There were some huge rockets being launched – with bodies at least 20cm in diameter and taller than me – some of which had engines that made us catch our breath.  Lots of fun to watch!

Big thanks to Steve!  Double thanks for loaning me his HL1 tracker to use as a backup tracker.  Good news is that I didn’t need it – but given my fun with voltage regulators…yeah.  Good idea.

The weather was absolutely perfect – blue skies as far as we could see and mid-20 (celsius) temps.


Voltage regulator tests prior to launch

Back in April I bought a 10kg box of dry ice to test out some voltage regulator options.

I tested three voltage regulators:

  • UBEC regulator from last flight
  • LM2577 adjustable boost-buck regulator, rated for 4V up
  • XL6009 adjustable boost-buck regulator, rated for 3V up

What I learned:

  • Dry ice is fun
  • Energizer L91 batteries at low load seem to increase in voltage as the temperature drops down below 0 until about -30C.  It’s only colder than that that the output voltage started to drop from the battery pack.
  • The UBEC regulator itself decreases output voltage as it’s temperature drops.  You can see a profile here.
  • A Raspberry Pi doesn’t like 17 volts.  Don’t do it.
  • The XL6009 regulator seemed great at low temperatures and input voltages as low as 4V, however it had a fluke around -30C where the output voltage would spike from 5V to 7V!  Oddly enough the Pi and all the on-board electronics handled it fine…but I didn’t feel comfortable flying it.
  • The LM2577 was OK with a sufficient input voltage, but not great when the input voltage was low.   I tested with 6x AA’s and it was solid.
  • Making arbitrary data (in this case, digitemp readings) available for prometheis node-exporter is very easy.

By the end, I had both my tracker wired up as well as a second Pi with digital temperature sensors on it and it all logging to Prometheus so I could draw nice graphs in GrafanaBut it was a wiring mess (fun!)


You can watch a video of the launch!  Thanks Marcus!

We flew from Elsworth up to March.  Flight track on Google Maps.

The flight path this time (compared to February) was rather short – only a 30-40 minute drive.  The actual path across land was about 32km which is really not far.  If only there were such roads…

The balloon burst earlier than predicted.  The estimated burst was 30,600m and the actual max altitude was about 27,700m.

I had great radio reception on the ground, which is good, because I left my SMA to MCX RF adapter at home, meaning that I couldn’t plug my yagi antenna into my best SDR radio.  Good news was that one of my cheap mag mount antennas seems to get good signal quality with 70cm waves (which is surprising given it’s length of about 147mm – a bit short for this frequency, I think? What do I know about radio!)


We lagged around a while at the launch site talking to Steve, and had lunch at a pub in Elsworth, so we were late to chase.  Next time I’m going to pack sandwiches for the drive.

The payload landed at March Golf Club.  I can’t recommend it any higher as a landing site!  One of my fears in getting started with HAB was having to knock on random people’s doors and explain why I want on their private property to retrieve my mysterious electronics equipment.  Andrew at the March Golf Club happily showed me to the payload which he had previously moved off a fairway so that it wasn’t in the way.  It doesn’t get any easier than this for recovery.

Secondary Experiment: ADS-B receiver

A few months ago I had an idea.  As I’ve been running an ADS-B tracker at home sending data to Flightaware, Opensky Network, ADSB Exchange, and Flightradar24, it’s helped me learn a bit about radio waves.  Realizing the limitations of where I live and the fact that I can’t mount a giant mast on the top of my flat to get better reception, I wondered, how far away can I receive ADS-B signals from a HAB payload?  Surely at 10km up you’ll get amazing reception, right?  I wanted to try that.

However I didn’t get until the night before this flight to actually build the receiver for it.  Since I didn’t trust it to not interfere with the code I was running on the main tracker, I set up an independent Pi computer, independent power source, and a mini SDR to receive ADS-B data.  I threw it together in about 90 minutes – so I hadn’t tested it much.  But it was worth a shot and we flew it.

It worked – however there were a few glitches.  I’m using dump1090-mutability to track planes, but you have to log it somewhere, right?  So I used this hack to log data.  Where does it log data by default?  /tmp.  What does a modern Linux OS do with /tmp on boot these days?  Erase it.  Yep, I wrote the data into /tmp, and when the tracker computer hit the ground, it rebooted (as did EAGLE) and it overwrote the data.  But – there’s always a catch!  Unlinking a file on a modern filesystem means the data is probably left there, right?  scalpel to the rescue!  I managed to recover about 95% of the data, only losing about 15 minutes of flight time.

In the end, the results aren’t amazing.  I think part of the problem is that didn’t seem to log everything – don’t ask me why.  According to the CSV that was written, I captured 297 ADS-B positions from 18 distinct aircraft.  Meh.  I get that many positions every single second from my home station.

I think the script didn’t log everything.  Looking at dump1090’s hourly stats output shows that in one hourly band during the HAB flight it tracked 200 distinct aircraft.  I just didn’t get that much logged to disk.

But it does mean I can make this cool map:

Next time need to set up better data logging, actually retain the data, and also deal with time synchronization.  In the mean time I might give the payload a ground test just to see how it performs compared to my regular ADS-B station.

The Unexpected

What didn’t go as planned?

Burst altitude: 27,700m, lower than expected

The calculated (read: estimate!) burst altitude for this configuration was about 30,600m.  Here’s what numbers we used:

Did we overfill it?

Well, the helium cylinder is a N10 which contains 2.6 cubic meters of helium, so we couldn’t have put much more in than the calculated 2.482 above?

The balloon was a bit heavier than last time (750 grams, vs 500 last time) however the balloon didn’t have a uniform burst like last time.

I think the balloon just wasn’t perfect, and it split at just one spot rather than shredding like what clearly happened with the last one.  Opinions in the launch group were divided (was it extra UV rays because it was a sunny day?) but my thought is that when I first pulled the balloon out of the bag, I did so with a sweaty hand.  Maybe that weakened the latex?  Who knows.

bme280 sensor for temperature, pressure and humidity

This sensor yielded some fun data from the last flight, because it’s measuring something that my brother-in-law Erik Tollerud pointed out is something we can model with some rather simple formulas.  Unfortunately the sensor didn’t work for this flight.

Some time within 30 minutes after power on, before the payload even took flight, the sensor readings in my code started yielding constant data every read.  The actual sensor is on an I2C bus, and is read once per second.  I can’t figure out why, but the sensor started returning the same data every time.  Further testing required.

Flight Data

This flight I recorded high resolution sensor data every second, in addition to transmitting back to the ground on RTTY every ~20 seconds.  Unfortunately less fun since the bme280 data is broken, but it’s still fun to analyze.

Have a look at the sheets yourself including some great charts.  Times are in UTC just to confuse you (the photos below are in BST).  In particular interest:

Velocity vs. Internal (LM75) Temperature:

Temperature vs. Voltage

(this is output of the voltage regulator, so shows how it performs at negative crazy C!)

Interesting one that I’m still messing with is this graph of ascent velocity. It’s hard because the GPS isn’t perfectly consistent, so you have to smooth the data out.  Looking at this you might conclude that we overfilled the balloon as the ascent velocity appears more towards 6m/s when we shot for 5m/s, however the ascent velocity decreases…and then increases later?  I expect it to increase slightly as the atmosphere thins and the balloon has less mass to move through…but I didn’t expect it to decrease for the first half of the ascent.  Anyone understand why?


We got some great shots.  Very interestingly, I think the Pi camera is taking better photos than the Canon A810.  I suppose I shouldn’t be surprised.

It was such a beautiful day that you could see the ground clearly.  Bonus points for spotting the bit of shredded balloon in the photo.

We even snapped a few photos of March where we landed.

You can check out the full photo roll, including launch site photos, videos, and all the photos from the launch (about 700 of them.)

Ideas for next time

  • ADS-B receiver: so many tests to do.  Test the ADS-B tracker and see if the antenna I have on it gets decent quality on the ground?  Try another method other than
  • Time synchronization to the Pi host would really help log analysis.
    • Perhaps for a non-connected device like the ADS-B tracker, it could just connect via wifi (to my mobile) while on the ground to get an initial time sync? From that I could even SSH in and check data reception before launching…
  • Need to get the tracker logging data in a more friendly format for post processing.
  • Don’t fly the Canon A810 camera any more, it’s a waste of weight.
  • Bring gloves.


Well what was fun.  Conclusion: lets do it again.  Sometime soon.

So why name it EAGLE?

When we were kids, my Mom named her van “Eagle”, because she liked birds.  That van became one of the first vehicles I drove when I was learning to drive.  But the best bit is – when the van would arrive home, and when my balloon landed, I had the excuse to say “The Eagle has landed.”

Posted in Uncategorized | 2 Comments

First high-altitude balloon flight: lots learned

What is High Altitude Ballooning (HAB)?

Build a computer with a GPS receiver and a radio transmitter, attach it to a big balloon full of helium, and let go.  It rises up into the atmosphere, and as the air gets thinner, the balloon expands and eventually bursts.  The computer is continuously sending radio signals down to tell you it’s GPS position.  You then drive to the estimated landing area and find the computer.  Why?  Put a sensor on board, such as a camera, and you can see what Earth looks like at an altitude well above what you’ll ever see out an airplane window.

The UKHAS website has more information:

How I got here

I’ve been preparing and building my first tracker since coming home from the UKHAS conference in 2016.  It has taken me a while to build it – I ordered the radio transmitter and RTL-SDR receiver in the fall of 2016, built and sent my first RTTY packets and learned what it means to “bit bang” a signal. I prototyped on an Arduino but quickly moved to a Raspberry Pi since I’m a Linux nerd.  I tracked a handful of balloons in 2017, and in the fall started to get serious and actually drew a “design” :)  In November, I decided I was ready.  I wasn’t, but I started looking at launch sites and asking the UKHAS community for help with my first launch – the community really is quite active and willing to help – a happy distinction from some of the IT communities that I frequent in my day job.  IRC is always busy.

Launch date bingo

After deciding my tracker was ready in November and Dave Akerman kindly agreed to host me for a launch at his site in Ross-on-Wye.  Sorting out a launch date takes time.  Weather is the top challenge: you need to have decent ground weather (e.g. not too windy, lots of precipitation makes it miserable and can also make chasing & retrieving challenging, I hear.)  You then need to think about the ever-changing weather up in the atmosphere – these winds, combined with the trajectory of the balloon up & down, give you a predicted landing spot.  We use the CUSF landing predictor to run simulations.  On top of this, you have to have approval from the CAA for the launch site, and a NOTAM issued so that air traffic control and pilots know you’ll be in their airspace.  Dave has prior approval for the launch site, so only needs to deal with the NOTAM which needs to be issued a few days in advance.

You also need to hire (“rent” in the US) a cylinder of helium, which you can keep for 3 months.  I hired mine mid-December from

Dave and I traded emails throughout November but we were both travelling.  We penciled in a date in December, but had to scratch it for weather (and I was ill enough that I’m glad we didn’t launch, hindsight.)  We picked a date in January and had to scratch for weather again – wind was going to blow the balloon almost down to Gatwick airport.

We settled on February 11th with a launch prediction landing near Banbury.  Dave filed the NOTAM; you can see active NOTAMs on various unofficial sites like  Here’s mine:


Payload specs & balloon

Balloon: Hwoyee HY-500
Parachute: Spherachute 24″
Payload box & line purchased from Random Solutions.  Dave on launch day decided that my line wasn’t strong enough for a windy day and used some of his – something I need to ask him about / what specs he looks at with payload train lines.


  • Raspberry Pi Nano W (the original was a plan Nano, but I fried it.)
  • Pi Camera v2, pointing up towards the balloon
  • uBlox MAX-M8Q from Uputronics, lines soldered in
  • Micro USB to TTL serial converter for GPS I/O
  • Radiometrix MTX2 dangling with soldered leads, TX pin to Pi UART, EN pin to a GPIO
  • UBEC DC 5V power regulator**
  • 4x AA Energizer L91 Lithium batteries
  • BME280 temperature / pressure / humidity sensor, outside the box
  • LM75 temperature sensor, inside the box
  • Canon A810 point-and-shoot camera running CHDK and a slightly modified version of the script here which takes a photo every 10 seconds.  I bought the A810 on Ebay for £13 as it had a broken screen which is perfect for this job, as I turn the LCD off anyway.

Total weight: 550 grams, including the parachute and line.  Dave’s BUZZ tracker added a whopping 37 grams.

I wrote my own tracker software.  I could probably use the PITS software with little  modifications, but I wanted to learn it.  I’ve published my software, BSD licensed, on GitHub as “radio flyer”.  It’s written in Python 3 and might be useful to someone else, if nothing else, it’s interesting.  Please borrow / fork / ask questions.

** UBEC: I’m pretty sure I shouldn’t be using this :) It’s meant for LiPo batteries…and might have been part of the failure during descent.

Launch day weather: uncooperative winds turn into another experiment

Leading up to it the prediction looked OK, but on Saturday it became apparent that the ground winds were dangerous.  Consistent winds of 15+mph and gusts of 30’s.  I’d already rented a car for the day for Sarah and I to drive out there, so I figured we’d make the drive out anyway, even if we had to scrub the launch.

We sat in Dave’s house drinking tea and getting to know each other a bit.  The wind didn’t let up, however we started to float around a crazy idea.  The launch field is on a hill, and the hill slopes down westward.  At the bottom of the hill is a line of trees.  Wind in itself isn’t a huge problem, indeed as the launch photos will show, it’s even more windy the further up you go – however wind on the ground is trouble.  The balloon needs to clear obstacles on the ground; namely, the power lines going over Dave’s house at the east end of the field.  The trees blocked the wind for the first 15 meters or so of altitude, so we could prep the balloon there, wait for a brief gap in the wind, and let it go.  We did some quick mental math to make sure the balloon’s ascent velocity would carry it high enough quickly enough to clear the power lines – and indeed we turned out to be right.

Not that it wasn’t nerve wracking, but we went ahead with it!


img_1605 img_1585 img_6437


Up, up and away!  It cleared the power lines just fine, as we’d estimated.  The wind was worrying at times – I wouldn’t recommend a windy launch.  There were a few gusts where the balloon carried to the side and without enough clearance it might be easy to puncture the balloon.

Chase drive

Something I never expected to work: I put my home-made yagi antenna in the back seat of the car, horizontal to the ground, and sat in the front passenger’s seat with my laptop + SDR receiver.  Since the balloon was above us at a decent angle for much of the chase drive, I was able to receive radio signal.  I had decent reception throughout the flight all the way to maximum altitude.  I’m getting a better feel for radio waves, I guess.  I thought a directional antenna like a yagi would almost “filter out” this sort of radio…


I had estimated the burst to be around 29km when shooting for a 5m/s ascent.  Due to the high winds, we added extra helium to shoot for a 6m/s ascent rate – which would bring the burst altitude down, I figured to more like 28km.  The balloon went further – the max altitude I recorded on the SD card was 31005m.  Crazy!  The upwards-facing photos around the time of burst show the balloon to appear shiny which is quite cool.

img_6895 Zoom in on the right-hand side photo and you can see shredded bits of the balloon.

Descent velocity

Something I hadn’t spent enough time thinking about – is that the atmosphere at the time of burst is so thin that the parachute does very little and the payload descends quite quickly.  Telemetry data confirms it for this and every other flight.  Looking at the GPS data on the SD card which is recorded at 1Hz, the maximum descent velocity is 53.9m/s which is 120mph!

During the descent, the payload gets quite cold, and sure enough, my tracker died.

Landing & recovery

We made good time driving despite a few navigational errors – I was spending too much time looking at telemetry data and not enough on the road ahead.  Dave parked at a spot near Lower Compton and we watched the telemetry data on habhub, as well as read the incoming signal on his handheld receiver.  We made such good time that we were parked about 2km away from the landing spot, at Butler Hill Farm, while the balloon was at ~1.5km altitude.  We tried but didn’t manage to catch visual of the payload descending.

Recovery was straightforward.  The GPS marker showed the payload about 500m north of a small muddy drive (which turned out to be a private drive), in the middle of several fields.  As we drove we were able to spot the payload rather easily.




SAM tracker failure & analysis

The worst part about me having radio reception in the car was realizing the moment when my tracker failed.  Suddenly the beautiful two yellow bars of RTTY signal in dl-fldigi fell silent.  Other receivers on IRC confirmed that the radio signal had fallen silent.  Not even a single tone which would indicate that the tracker software had crashed – the transmitter fell entirely silent for the rest of the flight.  Thank goodness for BUZZ, else it would be nearly impossible to find the payload.  The last transmission received from SAM was sentence 553, showing 15318m.  However as astute trackers may have noticed at the time, SAM has a large output buffer on it’s radio transmitter – on the SD card, I had two more sensor readings; a further 50 seconds of data.

My initial impression looking at photos from the Canon A810 camera were that the payload went through a cloud of snow/ice on it’s way down.  If the payload was moving quickly, maybe a lot of moisture went inside the box, causing a short?  However later correlation of photo times shows that this cloud was at 2km altitude, much later than when the tracker failed.

Looking at the temperature data on the descent, as expected, the payload got very cold.

Temperature readings at burst: external -20C, internal -18C
Temperature readings at tracker failure: external -44C, internal -30C

The views at the time of tracker failure:


I really wish I’d had a voltage sensor on-board.  I suspect that the 4x AA batteries at this temperature put out just low enough a voltage to cause the Pi to hang.   In testing I found that the Pi would crash when voltage was down around 4.5V, which isn’t much of a margin when the theoretical voltage from the battery pack is 6V (stepped down to 5V by the UBEC regulator.)  It could also be that the UBEC is unsteady with lower input voltages; Steve Randall mentioned that the UBEC I’m using is meant for higher input voltages than what I’m using in the first place.

Followup before the next flight:

Habitat reporting position in Bermuda?

One other oddity which I need to test out again is what to do when I’m transmitting sentences where the GPS has no fix.  I had a special case in my tracker code which sent a sentence like this:


I didn’t include any latitude/longitude in the sentence, thinking there’s no point in sending zeroes. But perhaps habitat interprets this in a weird way when there is no latitude/longitude interpreted at all?  Needs more testing.

Unfortunately now a week after my flight, even though habitat has my data stored, I can’t find the data on the tracker mobile site anymore.  Let me know if you can find it.

Telemetry & Sensor Data

I’ve done up a bunch of charts of sensor data in Google Sheets.

Here’s a photo of showing BUZZ’s flight path:




Other than the extensive list of todo items I keep adding to this week, only question remains: when’s the next launch?  :)

Posted in Uncategorized | Tagged , , , | Comments Off on First high-altitude balloon flight: lots learned

My first radio contact from a high altitude balloon

I’ve been watching – with awe – the number of high altitude balloon (HAB) launches there are here in the UK, and thinking about building my own and sending it up.  Last month I went up to Cambridge for the annual UKHAS Conference which was really interesting. Not only are people launching balloons to great heights above 30 kilometers, but there are also solar-powered trackers on “floater” balloons which rise to a certain altitude and circumnavigate the earth many times (see UBSEDS18 for an example).

I want to build one, but figured the first step was tracking.  I picked up a cheap SDR module, and set off building a yagi antenna.  I finished it back in August, but after the conference, I was determined to find a launch in the UK that I could try and track.

I finally got my chance on September 24th with a balloon launched in Wiltshire called “Stabilotron-II”.  The launch was a slow ascent of 1 meter / second which is slower than a lot of flights, so I had plenty of time to set up.  It worked!


This is the first clean data sentence I received.  At 50 bits / second.  Over radio waves.  Pretty cool!

Here you can see my homemade yagi mounted on a camera tripod, sticking out the skylight window of my top floor bathroom.  I tracked the balloon with varying success from the midlands over Norwich and across the sea until it was over land in the Netherlands.  The quality of my antenna & receiver setup isn’t that great – during the flight I had to make a lot of adjustments (including moving my laptop away from the antenna – makes a big difference!).  My last recorded contact was at a range of about 300km somewhere over/past Rotterdam – which is pretty amazing!  After that, I could receive some data, but only in patches; not enough to get clean tracking data back.

From the HAB tracking server statistics, I received 221 “sentences” which isn’t much compared to most of the other receivers, but not bad for only £30 in parts.

For software, I used:

  • dl-fldigi v3.1 on OSX
  • HDSDR bundle for OSX which includes rtl_tcp (my USB SDR is a RTL2832 + R820T2)
  • Soundflower for audio routing from HDSDR to dl-fldigi

I’m fussing with a raspberry pi to build a dedicated tracking machine for future flights which I’ll surely get done one of these days.

The experienced trackers are clearly a lot better at this – but hey, I parsed 221 messages, which ain’t bad for a first go :)

Next step: actually assembling my own HAB payload and launching it!

Posted in Uncategorized | Tagged , | 1 Comment

Iceland – Aurora Borealis

These photos are best viewed while listening to Island Songs (Ólafur Arnalds).

Last night we saw a spectacular show of the aurora borealis.  There aren’t any words to quite describe it.  We saw the first glimpses around 9 PM (Iceland time) while the sky was still lit from dusk, and at first I thought my eyes were playing tricks (pun intended) on me.  The show started slowly and faintly at first but didn’t waste any time.  It was quite brilliant for the first few hours and generally came in ribbons which spanned maybe 20 degrees of the sky.  The show only let up lightly – there was always a faint haze in the sky from it.  Later past midnight the show was less intense but more spread throughout the sky.  I stayed up until everyone had gone to sleep and around 2:30 AM I noticed my lens was fogging up – the temp had dropped to a cool 3°C, the camera was cold all over and I couldn’t keep the water from condensing for more than a minute at a time.  I called it a night around 3 AM.

Normally I try to pick out a favorite shot, but in my roll of 200+ shots, there’s really about 50 truly amazing photos in there.

One of the best aurora photos is this one:

My favorite shot of a rather large bunch of really truly amazing shots is a 10-minute exposure star trail + blurred aurora:

For the photos: Sit down, put on the song Particles, and browse the full image set.

I also took a few series of timed shots which I then animated and put on YouTube:

Many thanks go to the Aurora Service website, to Jake Ruston for his Aurora app, and to the Icelandic Met Office for their satellite imagery as Weather Underground’s syndicated satellite feed doesn’t go this far north.

For the photography nerds
out there…read on.

Photos taken on my Canon T5i (700D) w/ EF-S 18-55mm f/3.5-5.6 ISM lens between 10 PM on August 31st, 2016.  Most shots are fully zoomed out at 18mm, f/3.5, with exposure lengths from 4″ to 10″ and ISO set to auto varying all the way from 160 for longer 30″ exposures to ISO 3200 for some of the shorter shots.  I can’t decide which shots look better, the 30″ ISO 200 shots or the 6″ ISO 3200 shots that have so much detail but a bit of grain in them.
Photo stitching is done with mencoder and then uploaded to youtube as a 4k video.
Photo series are timed and exposure controlled with a TriggerTrap.
Since I’m traveling and using a small suit case, I only had my GorillaPod tripod with me.  A lot of shots show a small amount of false “star trail” which is artificial – it’s the camera moving slightly and slowly during the longer exposures.

All in all shooting this with my camera wasn’t really that hard.  Just put the camera on shutter priority mode, set it to a few seconds, and set it to a 2-second delay before taking the shot so you can let go of the camera before the shutter opens.  Hardest part was getting the focus right.  The only way I could get it right was to find one of the pesky neighbor houses a few miles away with a bright lamp on their porch, zoom and focus on it, and then zoom back out making sure I leave it on manual focus. Then just never touch it.  I wish the camera/lens had a firm way to zoom to infinity, but the lens lets you zoom beyond infinity which produces reliably blurry images.

To really shoot this…a full frame camera wouldn’t hurt at all.  A fixed wide angle lens would be perfect for this, and a more sturdy tripod.  I’ll probably buy a wide angle lens for just-in-case someday I find myself here again :)

Finally, for Sarah:


Posted in Uncategorized | Tagged , , , , | 3 Comments

Iceland – Day 1

We’re staying in Iceland for the next week – in a somewhat rural area north of Selfoss, right about here:

We couldn’t appreciate the landscape’s beauty last night having arrived at midnight.  However the stars were incredible.  Fans of Heavens Above would love it – sattelites with a magnitude of positive 2 and 3 were plenty easily visible.  I snapped a few long exposure photos which turned out to be not focused very well but are already pretty incredible.

Then today (Monday) I took this time lapse at 5s/frame for about 1h20m.  That’s the view out our front window.  Pretty amazing:


Finally for all you sunset lovers, get your drinks. The sunset here was just stunning.  Enjoy.  (click through!)

Posted in Uncategorized | Tagged , , | 1 Comment

Four years in Shanghai – without a doubt the coolest thing I’ve ever done. 再见上海!

I still have the one-way ticket from Chicago when I came here: June 2nd, 2011.  The week leading up to my move here was madness, and arriving here was comical.  The airline had lost my biggest suitcase, the one with all my clothes in it.  They don’t sell clothes my size here in Shanghai, at least not on the rack.  I wore the same clothes for three days!

Here I sit, four years on.  It’s been a wild ride living in Shanghai and it’s come time to turn the page again.  My wife and I are moving to London tomorrow where I’ll be continuing my same role with Mintel.

I’ve learned a lot in my time in China.  Not just about China, too – I’ve travelled around Asia so much and visited countries and cities that previously I couldn’t point out on a map.  It’s hard to remember what life was like back before I came here – I think I knew so little about the world then.  Seriously, did you know that the Vietnamese call it “The American War”?  I’d just never thought about it that way, to be honest.

To give you an idea where I’ve been, here’s my travel map for the last four years using showing the 400,000 miles I’ve flown since my first trip to Shanghai in March 2011:

Traveling around is nice, but there’s a lifetime’s worth of things you could explore just here in Shanghai.  Lets start with…


Below are Xiaolongbao pictured at Mintel-favorite Small Dragon restaurant:

My favorite cuisine though is the local Sichuan food.  When I first moved here I couldn’t eat anything spicy, and I’m living proof that spiciness in food is a learned thing.  My favorite dish is called laziji 辣子鸡 which is bits of bony fried chicken buried in a sea of chili peppers.  It’s the dish in baskets on left and right sides of this photo.  The soup in the middle is even spicier and also delicious, which is fish (with tiny bones!) in a steaming cauldron of spicy chili hot soup.

The chilies themselves are sold dry:

There’s also spicy barbeque fish!

Finally you can’t forget Portuguese egg tarts 蛋挞 (“dan ta” – easy to pronounce) available at lots of street corner shops.  The sweetest ones are from Lillian’s Bakery but different shops have a different style and they’re all good.  I hate to say it, but KFC’s are pretty good too.  Egg tarts are best eaten with a cold pearl milk tea 珍珠奶茶 (one of the first phrases I learned).  You can get a couple of egg tarts and a milk tea for an afternoon pick me up for about 10 RMB ($1.60).  Mmm…sugar…

Ok, enough about food (for now).  There’s some stuff here you just won’t see in America.

“Styrofoam Lady”

Every single day there are hundreds of people on three-wheel pedal carts riding around Shanghai picking up and hauling materials around – a lot of which is refuse being recycled somewhere else.  Every single day this same woman pictured below rides down Madang Road on my commute route with a giant load of styrofoam.  Sometimes so much tied and stacked up that you can barely find her beneath it all, like this day:

There are 24 million people in Shanghai, many of which I have seen every day, but will never meet.

My biggest surprise: I can read Chinese

Ok, not really, I know probably know about 20 of the 8,000 characters needed to be able to “read” Chinese.  But when I moved here, I thought Chinese was just madness scribbles on paper that I’d never be able to understand, so I focused on trying to listen and speak.  Strangely enough four years on, my spoken Chinese is terrible, but I recognize actually quite a few of the base characters in Chinese writing – I recognize more written symbols than I can understand when listening to people speak.

Cycling to work

Cycling on the roads here is fun if you like to live dangerously.  For the past four years I’ve been riding to/from work about 4 days out of each week, first from my apartments in Jing’An and later from my apartment in Huangpu district racing up Madang road to the office.  Tallying it up: four years, a few hundred miles a year, and just one accident – with a pedestrian.  I’ve gone through two full sets of front brake pads and snapped brake cables.  And an absolutely – almost daily incrementing – count of near misses with buses, pedestrians, motor bikes, taxis, did I mention buses?, electric bikes, and idiot taxi drivers doing 11 point U-turns.

Chinglish translations

I might have to publish a book of these someday, so here’s a taste of some of the amazing signs I’ve captured photos of:


The hardest part leaving Shanghai is the people I’ve met.  Sure you meet a lot of people when you travel, but some people stick with you, and before you know it you’re up at 2 AM with them, drinking something called “shaquila” and making cookie dough.  Jake & Sha, Mike and Sarah, Mark and Jessie, you’ve made the last few years really special.  Dale, too bad you had to leave so soon.  Co-workers Andrew, Louis, Yanchen, Frank, Daniel, Xiang and Susan, thank you for all the late nights at work and times at lunch.  Sarah Luo, our real estate agent who we later found out had never made a sale until she met us, has been an amazing help.  I hope our paths all cross again.

Who am I kidding, I can’t sum up four years in one document.  I’ll be telling these stories the rest of my life.

Posted in Uncategorized | Tagged , , , , , , | 1 Comment