RapidCard: Student card recognition and payment


  • Brainstorm, choose and develop a suitable use-case for Ultra-Wideband technology with the Ultra-Wideband kit provided by Futurice. 
    • The chosen use case was contactless student card recognition and payment.
  • Develop software that detects and identifies Ultra-Wideband tags
  • Utilize the accurate distance measurements of Ultra-Wideband to demonstrate the speed of Ultra-Wideband-enabled contactless membership card recognition and payment.
  • Build a suitable user interface for the use case


Ultra-Wideband technology

The development of radio technology has long been part of a major upheaval in the world and, on its own, is already one of the biggest causes of globalization in the world. The latest in this field is Ultra-Wideband technology, abbreviated as UWB. It is a radio technology that transmits information in short and low power pulses over a wide frequency band (1-2GHz). UWB technology enables accurate location tracking, and secure and fast data transfer. The technology is already being utilized in real world applications such as Apple Airtags and the latest electronic lock systems. UWB has multiple benefits that do not exist in other radio technologies such as Wi-Fi and Bluetooth.

It is secure, because the signals it uses have characteristics that make it extremely difficult to clone or intercept by a third party. The reason is that UWB uses 3.1–10.6GHz frequency, so there is a limited probability of signal interference, which is often a problem with Bluetooth and Wi-Fi.

It is fast.  Data transfer and device connection is 1000 times faster than Bluetooth, which has approximately a 2 second delay when fetching location data. This makes UWB seamless and a much better alternative for applications that require fast connectivity.

It has low battery consumption. UWB only sends out pulses in decided intervals which greatly reduces the energy use.  This makes the technology suitable for use in smartphone and other remote devices with a small footprint. With one second signal intervals, a single coin battery is calculated to provide 7 years of usage.

It is ultra precise. Ultra-Wideband uses ToF (Time of Flight), TWR (Two Way Ranging), TDoA (Time Difference of Arrival), and AoA (Angle of Arrival) techniques to determine the distance and angle in relation to another device. This centimeter-level accuracy is much greater than for example Bluetooth, which determines the distance through signal strength. The location tracking can be further improved by having multiple antennas.


MK UWB SR150/SR040 Development Kit was provided equipment for this project by the project sponsor Futurice. The kit includes five components; two SR040 UWB Tags, MK UWB Shield 2, MK UWB SR150 Antenna, and MK UWB SR040 Antenna. For the project we used every component except the MK UWB SR040 Antenna, as we were already using the more advanced SR150 Antenna board.

MK UWB SR150 Antenna
MK UWB Shield 2
SR040 UWB Tag

The software in our project composed of C language code that was running on the UWB anchor and UWB tags and Python code for the PC Shell application. In the project we only made minor changes to the UWB anchor code, and the rest of the software development consisted of developing an extension for the PC Shell software that came with the kit.


Payment and recognition


The functionality of our software is such that if a student with a valid student card UWB tag walks within a two-meter distance of the UI, the student is identified. If the student then walks within one meter, a simulated payment for student lunch is authorized. The UI is ready for the next customer when the previous customer has walked outside the two-meter range after paying. If a valid student card that is tied to the UWB tag is not found in the database, the payment is not allowed to go through.

Our UWB Payment thread listens to an event queue that provides distance measurements and identification information from the UWB tags. It is written in Python and implements a finite-state machine with four states:


User interface

The user interface is built using Tkinter and runs in a separate thread using mttkinter as a wrapper to enable multi-threaded use. The UI implements the same four states as the UWB Payment software.

The UI is in the Scan state, when there are no UWB tags within a twometer radius:

The UI transitions into the Identified state when a UWB tag is under two meters away and a valid student card is found in the database. The UI displays the student card photo and name assigned to the UWB tag, and also shows the distance to the tag:

If a valid student card is not found in the database, the UI transitions into the Not identified state, where the unsuccessful identification is displayed:


If the student is successfully identified, the UI transitions into the Pay state, where a simulated payment is authorized. The amount and the current time are displayed. The UI exits this state and transitions back into the Scan state when the distance to the UWB tag is over two meters:



RapidCard in action



The project was a great learning experience. Ultra-Wideband was the foundation of our project required us to gain knowledge about the technology. The project consisting almost entirely of software development, we had to learn new skills, especially related to multi-threaded applications and user interface development.

During the course we learned to analyze code and pinpoint the important parts for our own software development. At first we had a hard time with the multi-threaded nature of the PC Shell applications, but after studying and some trial and error we were able to implement our own program threads alongside the existing threads. User interface development was also new to us, but Futurice provided excellent insight about what goes into building a successful customer experience with user interfaces.

The project challenged our knowledge not only from a software development and electronics standpoint, but also from a brand building and product development perspective. The project required customer based thinking to make the experience of using our product as good as possible. In the end, we successfully developed a suitable UWB application and user interface with the necessary functionality and a smooth design.



Iivo Angerpuro

Project and communication manager

Automation and system technology student

“Curiosity makes me wiser, confidence makes me sturdier and creativity makes me full of potential”



Kasperi Hannula

Software lead and work package manager

Control, robotics and autonomous systems student

“A goal without a plan is just a wish”