UPDATE: when I wrote this the original #SpeedBot hadn’t posted anything for a few months so although I linked to them in my post I didn’t go overboard in case you hit a dead end but as they have been active I’ll add more details.

Twitter: https://twitter.com/BerkshireCar

GitHub: https://github.com/BerkshireCar/SpeederBot

Before I get into this please remember that in this blog I will be talking about data and data has no emotion, I’ll be dealing with the how and the what and nothing more.

The story begins in November 2020 when a guy called Gareth Rees set up the first #Speederbot to highlight the cars speeding along the A327 in Finchampstead.

In simple terms he queried the data sourced from iOS and Android GPS tracking systems that are normally used to show traffic flow, giving you a visual display of traffic jams and slow-moving traffic.

The image below is Google maps with the traffic layer turned on – you can see the coloured roads and they indicate areas of slow-moving traffic. Google knows the speed limit of the individual roads and as the devices (your phone) reporting their average speed are below the speed limit on the road they can assume there is congestion on that road.

It’s not a giant leap to then turn that system around and use it to report on devices travelling at or over a specific speed.

I initially set mine up to track the speed of traffic outside my local primary school and then moved it to another nearby primary school, if I’m honest (and I’m normally brutally honest) after a few weeks I came to the conclusion that although there are people breaking the speed limit outside both schools it wasn’t that often and was usually late or early in the day.

Then I heard about Juma and decided to move my tracking to the new forest and the results speak for themselves.

When I set this up for the schools I tracked quite a small area and always started the tracking just after a Speed Limit sign but with the New Forest tracking, I made the tracking box quite large. You can see from the image below the area that is reporting data to the Twitter account and the whole area has a 40MPH limit. 

Initially when I set it up I set the trigger to 45MPH but quickly raised that to 49MPH as one of the systems I use incurs a cost based on the number of operations (very small fee of $9.99 a month) and I also wanted to reflect a speed that would attract a fine and I’m not sure 45 would.

This next bit is my disclaimer: I am just providing data, and what you do with that data is up to you. The data is coming from anonymous devices so there is no way of knowing who it was, the system queries the data every 15 minutes so a number of people being reported at the same time could be in the same car so may not be as many separate speeders, not everyone is reporting their location so could be more speeders.

What Next?

That’s not down to me I’m just a nerd who thinks the world would be a better place with fewer cars and a lot more animals, more than happy to assist with the information but what others do with this data is for them to decide.

I’ll add the Twitter feed below and just as a final thought, at the time of writing this blog the system had been tracking for 24 hours and it had tweeted 209 times, so if you consider the minimum speeding fine is £100 that’s over £20,000 of missed revenue (to fix potholes).

Gareth made the code available through a Github page so anyone can do this see here

Lessons Learnt

This happened so I wrote it down in case it happens to you if you set up your own speedbot.

Scenario stops approx 24 hours after starting.

This was a simple case of Twitter has a security protocol that checks if you are a human being by presenting you with a Captcha (click all the pictures of clowns) to solve, obviously Integromat is not a human so it just needed me to send a tweet and verify that I am in fact a human being.

No tweets are sent

When you set up your area to track in Here make sure you click on the ‘Get Request’ button to check there is data available for the area you are tracking. you may have to increase the size of the area you are tracking.

Speeds are unbelivable

The data is by default returned in Metric (KMH) so if your country is still a member of the Rebel Alliance (MPH) you’ll need to add a parameter to the request url.

&units=imperial