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 socket30003.pl 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 socket30003.pl 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 socket30003.pl?
  • 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 | Leave a comment

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: https://ukhas.org.uk/

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 click4balloons.co.uk.

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 notaminfo.com.  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 tracker.habhub.org 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 , , , | Leave a comment

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: https://goo.gl/maps/S14d9aPQX6S2

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 gcmap.com 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

Net Neutrality

I’m an Internet nerd. I’ve been using the Internet since early days, on a dialup modem TUI to our local BBS, and later on MichNet which was made availably by our K-12 school in Adrian. I’ve grown up a bit since then, going to university studying computer programming, working on free software projects, and now working at Mintel for the past 8 years, recently moving into our IT Infrastructure team being the chief decision maker on what ISPs we use and how much of it we buy.

In short, I’m an Internet nerd. I really care about the Internet “tubes” I’m using. I have spent too many hours in the past few years at work, slaving away, comparing traceroutes and packet loss on Mintel’s mesh of network links to find the most optimal routes. The net neutrality thing matters to me as a network engineer.

As a computer enthusiast in my time, living in China, let me tell you what: in China, there is no net neutrality. Google, Facebook, Twitter, are blocked – not even just a few IPs, but all traffic to their ASNs on ports 80 and 443 are 100% blocked, and many of their DNS records rewritten. Once in 2013 I found that www.doorcounty.com was blocked in China – who knows why. SourceForge was blocked for a while, too. The BBC was blocked this month. Users complain that these sites are blocked, and sure that’s annoying. But the businesses out there who compete for market share of users to sustain their business – which Facebook would sure love to do in China – are boxed out of the market without even being asked. Sina Weibo, Tencent, RenRen, and the dozen other attempts at big time social media in China would have had stiff competition if we had net neutrality in China. We do not.

This week I stumbled across The Oatmeal’s explanation of Net Neutrality, and it was simple enough that I liked it. The video eluded to an Orwellian reason why websites might end up being entirely blocked in a place where the Internet is a frequently used tool in a modern, consumer-driven civilized economy where millions of happy people use the Internet. You can’t imagine the government ever blocking websites in the USA – it would never happen, right?

A laptop with Google.com blocked, with blocked looking quite dreadful, and saying

I live this crap ever day.
This is what it’s like in China. This is what it’s like in many countries around the world.

I was happy today to see this highlight from President Obama on the subject, calling for the FCC to make a firm commitment to net neutrality. I’m not big on partisan politics and I could care less what the latest debate is on the subject. In short, Net Neutrality is good, the general public agrees, and we should have it.

Being the USA where so many of the building blocks of the Internet were dreamt and built, we have a responsibility to the rest of the world to get this right and lead with example. Lets get it right, my fellow Americans.

Update May 2018

It’s been a long few years since I’ve written this article, and I’ve had a fair few emails from people over the years asking about it. Unfortunately we now stand atop a slippery slope in the US having repealed Net Neutrality rules in late 2017.

One journalist agrees where this can lead.

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

VyOS Users Meeting Japan

Today I did something cool: I attended the VyOS Users Meeting Japan #2 in Tokyo.

I clearly was not prepared for this meetup – my laptop has no stickers on the back of it.  I think every presenter’s laptop looked like this:

Consensus is: we need some VyOS stickers!

We had presentations from six VyOS users & hackers. I was the only presenter in English and I know about six words of Japanese, so a lot of it was lost on me, but it was fun still. I particularly enjoyed the presentation by Kazuhito Ohkawa (SatchanP) about VyOS at Kauli, Inc. – he’s clearly incredibly smart, and an enthusiastic presenter. I also enjoyed the presentation by Ryo Nakamura (upa) about VXLAN – especially his slide about RIP Vyatta.

Yuya Kusakabe (higebu), the organizer, gave us a good introduction to VyOS 1.1.0.  There were two more presentations which I had to miss – I had to leave the event early to catch my train out of Tokyo.

I gave a short presentation and demonstration of the build-ami scripts I’ve been working on, and a painfully long demonstration.  During my demonstration I mentioned how the Japanese Vyatta / VyOS community is the strongest in the world, to the point where when years ago I read about how to make Vyatta EC2 machines, I found myself referencing a developer named j3tm0t0 who I had never met.  He stood up – he was there in the room!

I showed everyone the Google Trends heat map which shows that Japan is the hot spot for Vyatta & VyOS users:

Special thanks to Yuya Kusakabe and Nifty Corporation for organizing this group.  The Nifty office is very nice.  Everyone, please buy Yuya a beer, and encourage him to host this user meet up regularly.

Update: due to requests, here’s an English list of the presentations given:

  • 15:00 VyOS 1.1.0 and NIFTY Cloud New Features given by @higebu.  No slides available :(
  • 15:30 VyOS VXLAN given by @upaa.  Slides all in English.
  • 16:00 About vyos/build-ami given by me (@trickv).  Slides (in English).
  • 16:30 Case studies of VyOS in Kauli SSP given by @SatchanP.  Slides all in English except for one.
  • 17:00 Debian Jessie build environment, vyos-cfg-zabbix-agent, bug #345 report given by @hiroysato.  Slides almost all in English.
  • 17:30 NAT performance testing given by @twovs.  Slides in Japanese + English.


Posted in Uncategorized | Tagged , , , , | 5 Comments

Lunar eclipse from Shanghai

Today I watched and photographed the lunar eclipse from Shanghai.  It was a lot of fun – Sarah and I ordered pizza and stood on the terrace at Mintel’s Shanghai office with my camera, snapping photos.

timeanddate.com’s eclipse calculator was very helpful as it shows the direction to look for the moon and the timing of each phase of the eclipse.

All the photos below are links to hi-res images – please click and enjoy.

The moon became visible after the eclipse was already partially in progress, coming up over the horizon around 17:30 local time, and a few minutes later I found a view of it between some buildings at 17:47:

I was rather lucky where it started to rise – right between two buildings about the same height as mine:

18:06: As the moon rose, the eclipse furthered.  Using different exposures allowed me to show the buildings around it, or to hone in on the detail of the moon itself:

18:19: As we approach the total eclipse, some pesky clouds roll by:

18:29 After a while the moon came out from behind the clouds, but we were near the total eclipse:

18:52: At last, we have a clear view of the total eclipse:

Here’s a cropped version:

The full eclipse lasts about 20 minutes.

19:20: Before you know it, the bright light of the sun starts to strike the moon directly again:

Here it is with a bit less exposure:

The following photos are all in sequence, with shorter exposures on the left to highlight the detail of the bright emerging side of the moon, and longer exposures on the right to show detail of the darker (red) side while making the bright side look like the sun:













20:39: The total eclipse has finished, but the penumbral eclipse lasts for another hour:

Finally, the penumbral eclipse is finished and the moon is back in full:

It wasn’t bad scenery, staring out the Shanghai skyline (the Bund in the bottom-left), watching a lunar eclipse!

Posted in Uncategorized | Tagged , , , , | Leave a comment

Da Moon

After seeing some beautiful photos of August’s supermoon, I pondered what kind of camera it might take to capture such detailed photos of the moon.  I’ve recently taken delivery of a Canon EOS 700D (T5i), which when pointed at the moon, does what every camera does in “auto” mode: produce a photo of a bright white blob in the sky.

I got to searching, and read How To Take Stunning Pictures Of The (Super) Moon, which lends some advice on settings (ISO speed, exposure and aperture).  Sure enough, coupled with a used 250mm zoom lens procured at the Shanghai Photography Center, I was able to capture some good detail.

Here’s the final cropped product:

Shot on September 10th from my balcony in Shanghai.


  • 1/15 exposure
  • ISO100
  • 250mm zoom
  • F16.0

I actually took the shot in raw + jpeg, but I haven’t yet had enough experience with raw to produce quality better than the automated jpeg.  I also had the camera on a tripod, and to reduce shake, used tethered shooting from the ugly Canon app.

Here’s the original jpeg photo for the curious:

Should be fun next month for the October 8th lunar eclipse – thanks for the tip, Marie!

Posted in Uncategorized | Tagged , , | Leave a comment