Meshtastic And Owntracks To Kick Your Google Habit

I have an admission to make. I have a Google addiction. Not the normal addiction — I have a problem with Google Maps, and the timeline feature. I know, I’m giving my location data to Google, who does who-knows-what-all with it. But it’s convenient to have an easy way to share location with my wife, and very useful to track my business related travel for each month. What we could really use is a self-hosted, open source system to track locations and display location history. And for bonus points, let’s include some extra features, like the ability to track vehicles, kids, and pets that aren’t carrying a dedicated Internet connection.

You can read the title — you know where we’re going with this. We’re setting up an Owntracks service, and then tying it to Meshtastic for off-Internet usability. The backbone that makes this work is MQTT, a network message bus that has really found its niche in the Home Assistant project among others. It’s a simple protocol, where clients send brief messages labeled by topic, and can also subscribe to specific topics. For this little endeavor we’ll use the Mosquito MQTT broker.

One of the nice things about MQTT is that the messages are all text strings, and often take the form of JSON. When trying to get two applications to talking using a shared MQTT server, there may need to be a bit of translation. One application may label a field latitude, and the other shortens it to lat. The glue code to put these together is often known as an MQTT translator, or sometimes an MQTT bridge. This is a program that listens to a given topic, ingests each message, and sends it back to the MQTT server in a different format and topic name.

The last piece is Owntracks, which has a recorder project, which pulls locations from the MQTT server, and stores it locally. Then there’s Owntracks Frontend, which is a much nicer user interface, with some nice features like viewing movement a day at a time. Continue reading “Meshtastic And Owntracks To Kick Your Google Habit”

Developing An Open Source Bike Computer

While bicycles appear to have standardized around a relatively common shape and size, parts for these bikes are another story entirely. It seems as though most reputable bike manufacturers are currently racing against each other to see who can include the most planned obsolescence and force their customers to upgrade even when their old bikes might otherwise be perfectly fine. Luckily, the magic of open source components could solve some of this issue, and this open-source bike computer is something you’ll never have to worry about being forced to upgrade.

The build is based around a Raspberry Pi Zero in order to keep it compact, and it uses a small 2.7 inch LCD screen to display some common information about the current bike ride, including location, speed, and power input from the pedals. It also includes some I2C sensors including pressure and temperature as well as an accelerometer. The system can also be configured to display a map of the current ride as well thanks to the GPS equipment housed inside. It keeps a log in a .fit file format as well so that all rides can be archived.

When compared against a commercial offering it seems to hold up pretty well, and we especially like that it’s not behind a walled garden like other products which could, at any point, decide to charge for map upgrades (or not offer them at all). It’s a little more work to set up, of course, but worth it in the end. It might also be a good idea to pair it with other open source bicycle components as well.

Thanks to [Richard] for the tip!

How Many Smartphones Does It Take To Make A Traffic Jam?

Online mapping services pack in a lot of functionality that their paper-based forebearers could simply never imagine. Adding in metadata for local landmarks, businesses and respective reviews, and even live traffic data, they have the capability to deliver more information than ever before – and also correspondingly, shape human behaviour. [Simon Weckert] decided to explore this concept with a cheeky little hack.

Pictured: All it takes to create a traffic jam on Google Maps!

The hack targets the manner in which Google collects live traffic data for display on Google Maps. When users load the app, Google takes location data from individual phones, tracking them as they travel along roadways. Large numbers of users travelling slowly down a road indicate there’s heavy traffic, and thus Google will display corresponding warnings on their maps and redirect users to take alternative paths.

To pull off the hack, [Simon] placed 99 smartphones in a handy-cart, tugging them behind him as he walked slowly down a series of streets. In the video, this is overlaid with Google’s map data captured at the time. The app updates the maps with orange and red lines down the roads which [Simon] travelled with his 99 pretend drivers, indicating a traffic jam.

We’d love to know whether [Simon] ran 99 individual SIM cards with data access, or if the hack was perpetrated with the use of a WiFi hotspot for cheaper internet access. Reddit comments note that Google will likely swiftly work on methods to prevent such tomfoolery in future. It’s simple to see that 99 individual users reporting the exact same location and speed at the same time would be trivial to filter out from traffic monitoring in future.

It’s both a commentary on the power we give these apps in our lives, as well as a great demonstration of how easily such systems can be trifled with. We first reported on Google’s traffic monitoring back in 2009, when it was a technology in its infancy. Video after the break.

Continue reading “How Many Smartphones Does It Take To Make A Traffic Jam?”

Putting That Airplane On The Map – Live And With Python

Mankind’s fascination with airplanes is unbroken. Whether you’re outside with your camera, getting an actual glimpse of the aircraft, or sitting at home with your RTL-SDR dongle and have a look at them from a distance, tracking them is a fun pastime activity. Provided, of course, that you are living close by an airport or in an area with high enough air traffic. If not, well there’s always real-time tracking online to fall back to, and as [geomatics] will show you, you can build your own live flight tracking system with a few lines of Python.

As it’s usually the case with Python, a lot of functionality is implemented and readily available from external modules, which lets you focus on the actual application without having to worry too much about the details. Similarly, plenty of data can be requested from all sorts of publicly accessible APIs nowadays. If you are looking for a simple-enough example to get into both subjects with a real-world application, [geomatics]’ flight tracker uses cartopy to create a map using Open Street Map data, and retrieves the flight information from ADS-B Exchange‘s public API.

We have seen ADS-B Exchange mentioned a few times before, for example with this ESP8266 based plane spotter and its successor. And if you’re more curious about the air traffic in your direct surroundings, it’s probably time for a DVB USB dongle.

Raspberry Pi On The Go Powers Car System

Most new cars have GPS, rear cameras, and all the other wonders an on-board system can bring. But what if you have an old car? [Fabrice Aneche] has a 2011 vehicle, and wanted a rearview camera. He started with a touch screen, a Raspberry Pi 3, and a camera. But you know how these projects take on a life of their own. So far, the project has two entries in his blog.

It wasn’t long before he couldn’t resist the urge to add a GPS. But that’s no fun without maps. Plus you need turn-by-turn directions. [Fabrice] did a lot of the user interface using Qt5 and QML. He started out running it with X11 but that was slow. It turns out though that Qt5 can drive the Pi’s video directly without using X11, so that’s what he wound up doing. The code that isn’t in QML — mainly dealing with the GPS location — is written in Go, while the code for MOCS (My Own Car System) is on GitHub.

Continue reading “Raspberry Pi On The Go Powers Car System”

Procedurally Generating Random Medieval Cities

With procedural content generation, you build data algorithmically rather than manually — think Minecraft worlds, replete with all the terrains and mobs you’d expect, but distributed differently for every seed. A lot of games use algorithms similarly to generate appropriate treasure and monsters based on the level of the character.

Game developer [Oleg Dolya] built a random city generator that creates excellently tangled maps. You select what size you want, and the application does the rest, filling in each ward with random buildings. The software also determines the purpose of each ward, so the slum doesn’t have a bunch of huge mansions, but instead sports a tangle of tiny huts. [Oleg] shows a little of how the application works, using polygons created with the guard towers serving as vertices. You can learn more about the project on Reddit.

As new as this project is, it’s limited. All the maps feature a walled community, each has one castle within a bailey, and none of the cities includes a river or ocean port. [Oleg] designed it to make cool-looking maps, not necessarily accurate or historically realistic ones. That said, he’s already tweaked the code to reduce the number of triangular buildings. Next up, he wants to generate shanty towns outside the city walls.

Bringing Nautical Charts To A Sunlight Readable Display

Road atlases are still published, but you wouldn’t know it if you have a smartphone and Google Maps. Most pilots who got their license a decade ago started on paper maps, but the iPad rules the cockpit today. On a single SD card, you can store maps for every square mile of the Earth’s surface. [Erland] figured it was high time for digital maps to go nautical and built a tablet-like device to display charts while sailing.

The Pi Chart is, of course, powered by a Raspberry Pi running a few dozen lines of JavaScript and HTML. Software wise, there’s not much to this build save for the new OpenGL-based rendering that allows for ultra smooth map rendering.

The hardware is where this build becomes useful, and for that, [Erland] is using a sunlight readable Pixel Qi display. A Li Ion battery provides about 10 hours of runtime, and a Bluetooth enabled GPS dongle tells the Pi exactly where the boat is.

Continue reading “Bringing Nautical Charts To A Sunlight Readable Display”