General info:

What is it?

BPS Stands for 'Bata Positioning System'. This system provides real-time information about the current position of each team's current runner in the Batavierenrace.

What's the origin of BPS?

Combining the interests of running, programming and an interest in the working of GSM handsets. The idea of the BPS system was born.


BPS 1.0 (2003):

Last years system used a GSM module, a GPS receiver, a microcontroller and a lot of programming. They were all connected trough a lot of wires and soldering iron. Together with some batteries it was our BPS-box. This box was sending a SMS-message every minute with the latest position of the runner.

How does it work?

Using a GPS device, we will monitor the location of a team. This location data will be parsed by a microcontroller, which then creates an SMS containing all the necessary info (including Date, Time, Speed and course). Using a GSM, which is bundled with the GPS device, this SMS will be sent to a remote server. There, the SMS messages will interpreted, entering the information they carry into a database. With this information, the exact location of each team can be projected onto a map (together with additional info like speed, and estimated time of arrival).

figure 1: The architecture of the first BPS system.

Figure 1 shows the archtecture of the BPS 1.0 system. The rectangles with cut-off corners are the entities from which the system is build. The rectangles in the background (the orange and the yellow) represent the physical distribution of the system.

Building blocks

BPS-box :: This part of the system is located near or carried by the runner, it uses a GPS receiver to retrieve the runners location. This position information is send to the SMS server using a mobile phone.
SMS server :: Receives the position SMS messages send by the BPS-boxes, interpret the data from the BPS-pdu and stores this information into the position database
Position Database :: The center of the system. Accesed by three other system entities. Stores and manipulates all the position data received from the SMS server.
Map files :: This entity , provided and sponsored by Falk, contains digital mapfiles from the tracked route.
Update handler :: This program continious queries the position database, looking for any new position data. When new position information is avaiable, it retrieves this information and calculates which map data is needed. After that it fetches the needed mapdata from the map files and generates a new image from the position information, by manipulation the data from the map files and stores this map into the cached maps
Cached maps :: This part of the system contains the manipulated versions of the digital data from the map files entity
Website :: The website is the interface to all the end-users. When a user enters the web-site it requests the last position information from the Position database from the information it retrieves the right map from the cached maps. This cached map is shown to the end-user together with some additional position information

How it works

figure 2:Animation of how the BPS.1-box works

The micro controller (figure 2 in the middle) requests the position data from the GPS (figure 1 on the left) every 15 seconds. When four positions are collected it starts constructing a BPS PDU by adding some header information to the position data, and finalize the SMS with a end tag. Then the microcontroller triggers the mobile phone (figure 2 on the right) to send the BPS pdu per sms message (using AT commands).
This procedure is repreated during the race. So the system generates over 850 sms during the whole race! Figure 3 show a UML sequence diagram of the above story

figure 3: UML sequence diagram of BPS.1 box.

figure 4:Animation of whole BPS system. On the left the mobile phone from the BPS.1-box (see figure 2)

figure 5: simplyfied UML sequence diagram of the BPS.1 system

Figure 4 and 5 are showing a simplyfied view of the whole BPS system. In the middle of figure 4 there is server of our system. The server is connected with a mobile phone, which receives the sms send by the BPS boxes. The server coniniously requests the phone for new messages (using AT commands), when a new message is received, the server downloads the mesage from the phone and interprets the message. After that is stores the retrieved position information into the Posion DB (not depicted in figure 4). When a user visits our web-site the web-site retrieves the last team positions form the Position database and shows the correct maps on the website.

BPS 2.0 (2004):


  • Provide the end-user with more info about the current runner
  • More efficient data-transfer (GPRS)
  • Smaller BPS-box
  • More battery capacity
  • BPS-box with embedded linux (ECOS)
  • More server capacity
  • Provide end-user multiple zoom levels

How does it work?

The second version of the Bata Positioning System is a totaly new build system. The basic idea still remains the same a runner carrying a tracking device and a website showing the real-time position.

figure 6: The architecture of the second version of BPS.

Depending on which service is available the BPS.2 tracking boxes are using GPRS or SMS to send the positioning data to the server.
© 2003-2006 BPS Team