In English

Defining a minimal BLE stack - A Bluetooth Low Energy implementation in Rust

Johan Lindskogen ; Francine Mäkelä
Göteborg : Chalmers tekniska högskola, 2018. 72 s.
[Examensarbete på avancerad nivå]

Today, Internet of Things (IoT) has spread to many everyday situations. The smart devices constituting IoT can be everything from your smartwatch, to components of your car or nodes collecting environmental data in a building. It is not uncommon for these devices to be powered using limited sources, such as batteries. This means that they have to be conserved with their energy. One way for these devices to communicate is via Bluetooth Low Energy (BLE), a wireless protocol specifically designed to consume less energy than the classic Bluetooth protocol. In this master’s thesis, we aim to find the minimal BLE stack required for a device to advertise its existence and for it to enter a connection with another device and keep that connection alive. To check whether our definition holds we present a design and implementation of it in Tock, an operating system for embedded devices. As Tock is written in the programming language Rust, so is also our implementation. The evaluation of the implementation includes two parts. The first part is a validation of the behaviour of a device running our code. We perform different tests, each focusing on a particular behaviour that is required from the device. Next, we conduct performance tests to measure the reliability, power consumption and timing of the device. Our evaluation shows that the implementation fulfils the requirements, even though the performance tests reveal that it is not optimised. As the implementation is a mirror of the design, which in turn is a possible description of the definition of the minimal stack, we conclude that our definition states precisely what is required to fulfil the goal of “establish and keep a connection”.

Nyckelord: BLE, Bluetooth low energy, IoT, Rust, Tock, Embedded systems



Publikationen registrerades 2018-09-28. Den ändrades senast 2018-09-28

CPL ID: 256040

Detta är en tjänst från Chalmers bibliotek