Crazy Wireless Range in San Francisco. (LoRa radio tests.)

At Beep, we’ve spent the past year working with a new long-range wireless technology called LoRa, designed specifically for the Internet of Things.

LoRa is different because, though it operates on unlicensed spectrum like Wi-Fi, it works at very long range. So instead of just covering one home, an access point can cover several miles. That means you can very easily deploy wireless sensors across an entire corporate campus, or track assets on a large site, with a single access point.

It also supports multiple access-points or towers, meaning cellular-like networks, for the Internet of Things.

You probably don’t believe me when I say miles of range. You shouldn’t yet. Every year a new wireless technology comes along claiming insane range that doesn’t pan out in the real world. Manufacturers tout ranges based on line-of-sight deployments with no interference. That’s all fine and good, but irrelevant for most real-world deployments.

(By the way, we know of a LoRa deployment achieving 100 miles line-of-sight, with a very tall tower in rural California. But really, who cares?)

We’ve been testing our LoRa system here in San Francisco, which is probably the toughest place to build a wireless network in the US, due to interference (lots of other radios) and topology (lots of hills). But our sensors still get several miles of range.

We’d like to share some more granular data on network quality, that’s coming later. To start, here’s a map tracing out a route I took on my scooter, testing out the range of our sensors and a single tower on the roof of our office. This certainly not a scientific, and it’s not representative of high-quality coverage. But we found it to be an interesting snapshot and thought we’d share. If you’re testing LoRa radios, we hope you’ll do the same. (We’ll even have hardware you can use for testing soon.)

First, here’s a quick look at the trip. It may not make a lot of sense until I talk it through, so please read on.

Okay, let‘s break this down.

Here’s the “tower.” It’s our LoRa gateway — the equivalent of a cell tower. It has a 6dB-gain antenna, and this one’s solar powered, just for fun. It’s on the roof of our 2-story office. Both of the buildings next to us are taller than ours, so it’s not a great location, but it’s not bad. Consider it a B+ site.

“Tower” on the top of Beep Networks HQ, 21st and Mission

Here’s where it is on the map.

Now, the test setup. I put this sensor in my backpack, with its big whip antenna (~3 dB gain) hanging out the side.

Inside the blue box is a LoRa radio operating at 27 dBm (500 mW). That’s quite a bit higher power than a standard off-the-shelf LoRa radio — we boost the signal with a power amplifier. (It’s still within FCC limits, just a bit more complex design. Maximizing range is part of what we do here at Beep.)

The sensor is set to send its location about every 10 seconds. It only transmits once, so if a packet is lost, it doesn’t show up on the map (in a standard LoRaWAN setup you would retransmit several times if you don’t receive acknowledgement, but we turned that off).

So every circle on the map is a point where the sensor got a GPS fix and transmitted its location back to our tower. The line that connects the dots shows the order in which they were received, but it doesn’t show the actual path traveled. If you see a lot of dots right next to each other, that suggests that most packets are getting through. If you see gaps with no dots, no packets got through in that area.

This is not a complete picture of network coverage. It’s a very forgiving test, really. For coverage testing we look at error rate (% of packets that were not received + packets that were received with errors / total number of packets transmitted). You’ll always lose some packets, which is okay, wi-fi works the same way. You just need a high enough percentage of them to get through to consider an area covered by your network.

It’s better to consider this a test of range, not of coverage. But I digress.

Okay, on to: Transportation. We used to walk, but that’s not fast enough. Biking those hills is exhausting. Enter, the perfect range-testing transport vehicle: the Buddy 125 scooter.

I rode this scooter West around Twin Peaks, then North to the Marina, and back. Then out around Giants Stadium in South of Market. Then South around Bernal Heights, to test all our local hills.

If you’re not familiar with San Francisco, we have a lot of hills. We’re in a relatively flat spot, the Mission neighborhood, but less than a mile in any direction there are hills.

Source: Mike Ernst.

The results were interesting. Here’s that map again, with the data points.

First, let’s look at the extreme end of the city. That’s the Marina Green, at the northern edge of San Francisco. I hung out there for a few minutes and the quality of the wireless connection was terrible, most packets transmitted by the tracker were lost. But a few of them got through.

What’s surprising here is that any packets got through at all. Seriously, that’s 3.7 miles away and there’s a 250-foot hill in the way. There’s no way that signal got through the earth, it must have bounced off… something.

Even more amazing, look at the point marked WTF on the map. Now, to be clear, I was cruising around Forest Hill for like 10 minutes, and only one packet got through. But it shouldn’t have. That’s on the other side of Twin Peaks, which is basically a small mountain in the middle of San Francisco, about 1,000 feet high.

Consider these links a fluke. You certainly couldn’t count on them. But — wow. It’s interesting to see the extremes.

On the other hand, at the location marked “Climbing Pacific Heights,” I was riding up the South slope of Pacific Heights. That’s not line-of-sight to our tower, but it’s not too far off. You can see there were lots of dots even though I was cruising pretty fast, so the link quality there wasn’t bad. Getting up on a hill makes a big difference.

Let’s look at one more interesting location: SoMa.

This is 2.7 miles away from our tower. It’s pretty flat along the route, but there are plenty of tall (5–10 story) buildings in the way.

As I was cruising down Bryant Street towards the water, the link was pretty good. Bryant is a large open road, and while it’s nothing like line-of-sight, there’s plenty of open space for radio signals to bounce around. As soon as I got to the water and turned the corner, I lost the connection (notice, no dots along Embarcadero, except where it intersects another large road).

The implication is that the signal doesn’t do a good job passing through buildings, but it does just fine bouncing around them, when there’s a nice broad street. So, on a grid-based city, you might have a few miles of range down the avenues but far less on the streets. Or something like that.

Once again, network coverage is a function of the topology and layout of the city as much as the radio’s spec sheet. This is a local game.

Interested in trying this for yourself? We’re making a developer’s version of the gateway we have on our roof, plus a GPS tracker kit to let you do similar tests. Will be ready in about a month.

We’d love to see how much range you can get in your city. Just drop us your email here and we’ll keep you posted:


Questions, comments? Let me know on Medium.