Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
22 lines (13 sloc) 2.41 KB

Schwung Bluetooth protocol


The goal of Schwung app is reducing the time cyclists have to wait at traffic lights by communicating the location of cyclists with traffic light controllers. A movie about the working of Schwung can be found here and here Schwung is developed as a collaboration between Infoplaza and Vialis.

This protocol is created to introduce extra functionality, in the first version of the app it was only possible to communicate from the phone to the traffic light controller. In the newest Android version it's also possible to receive feedback. In this way, the user knows if a request for green is made at the TLC and on some locations also if green is extended (at this moment only on the locations in Breda). Cyclists shouldn't be distracted by their phones during cycling. Therefore a Bluetooth protocol is developed that enables Schwung to communicate with a variety of Bluetooth peripherals. Possible devices could be smart bicycle bells, speakers, blinking LEDs, but that's up to your creativity! In the future the protocol could be extended so that it communicates the TTG (Time to green) and TTR (Time to red) as well.


The protocol is based on GATT At this moment the protocol contains one service with one characteristic.

Service Characteristic UUID Values
VRI_SERVICE 713D1000-503E-4C75-BA94-3148F18D941E
REQUEST_STATUS 713D1003-503E-4C75-BA94-3148F18D941E 0x00 = UNKNOWN
0x03 = ERROR

The status GREEN_REQUESTED means that a request for green is made to the traffic light controller. (That is similar to detections with detector loops or buttons). That can be followed by the status GREEN_EXTENDED in the city of Breda. This status means that the traffic light stays a little bit longer green, so the cyclist doesn't have to wait.


At this moment there is an example implementation available of a Bluetooth peripheral based on the BLE Nano V2 ( to get you started or if you want to experiment with the Bluetooth functionality without having to develop your own device. The source code for this example can be found in this repository.