Imagine you’re sitting on a nice bench, the sun shines warmly, and a bus pulls up. You’re headed to Stendal from Osnabrück, how can you tell if you should get on that bus? [Julian Vanecek] is trying to turn that from an O(n) problem to an O(1) one with a Bloom filter right at the bus stop.
In [Julian’s] sample code, each stop is a 3-bit number that can be encoded into a 192-bit array. Your ticket is just that 3-bit number encoded, so you can look at the graphic on the side of the incoming bus, match it against your ticket, and hop on. Gone are the days of waiting for the little LED screen to cycle through all the stops, waiting for yours to come up. Your ticket should have just a few boxes filled in so it is relatively quick to search against the bus’s graphic.
Of course, there is a potential for a false positive rate. [Julian] points out that this can be tuned to prevent errors and has achieved a < 0.5% false positive rate using the Deutsche Bahn bus system. The code is written in Python and available on GitHub. Perhaps buses could have a large flip-dop display on the side, to adjust to show which stops they’re headed to next. Additionally, it doesn’t encode which stops are next, just which stops the bus will eventually go to.
In the video after the break, [Julian] explains how the system works. Whether it would be ultimately adopted is somewhat beside the point. We love the seeing people re-imagining ideas and trying to apply new techniques to improve the things around them.
Continue reading “Bus Stop Bloom Filter”
Waiting for the bus can be drag. You never know exactly when it will come, always looking down the road hoping to spot the vehicle as it turns a corner. When it doesn’t show up right away, the result is usually staring down at a ‘smart’ phone checking it for any incoming messages. Directing the attention up might produce a list of estimated arrival times and maybe even a map showing the routes that are taken throughout the day. But there is only one bus stop in the entire world, that we know of, where people can play Pac-Man while they watch for the bus to arrive.
It was created by the combining efforts of two maker communities in town. Norwegian Creations and Trondheim Makers teamed up to build an interactive gaming display that gave individuals the ability to pass the time by directing the famous video gaming character around a blue maze, eating yellow pellets and avoiding colorful ghosts along the way. This display was also made to raise awareness for the upcoming Trondheim Maker Faire that year. They choose Pac-Man as the foundation and integrated a slightly modified invention kit called Makey Makey with a Raspberry Pi running RetroPie into the actual frame of the bus stop. The people involved must have had some serious business connections in order to get approval for that. They figuratively hacked into the bus stop’s power grid gaining the necessary 230 volts required to energize the custom gaming unit. Once hooked up, anyone standing by could play Pac-Man until the bus came. [Ragnar] at Norwegian Creations told us in an email that future ideas of theirs include syncing up several stops that can communicate with each other, which could lead to some great multiplayer interactions. They also have a fantastic video that they uploaded that shows the building process of their current design. Check that out below, and let us know what other types of games you would like to see at a bus stop near you.
Continue reading “The Pac-Man Bus Stop For Gamers At Heart”
A few weeks ago in Finland [Oona] discovered a radio data stream centered around 76KHz in a FM broadcast and she recently managed to decode it. This 16,000bps stream uses level-controlled minimum-shift keying (L-MSK) which detection can be quite tricky to implement. She therefore decoded the stream by treating the received signal as non-coherent binary FSK, which as a side effect increased the bit error probability. [Oona] then understood that the stream she was getting was the data broadcast by Helsinky buses to the nearby bus stop timetable displays. She even got lucky when she observed a display stuck in the middle of its bootup sequence, displaying a version string. This revealed that the system is called IBus and made by the Swedish company Axentia. However their website didn’t provide the specs for their proprietary protocol. After many hours of sniffing and coding, [Oona] successfully implemented the five layer protocol stack in Perl and can now read the arrival times of the nearby buses from her apartment.