TFG: Design and implementation of an access control system based on NFC technology



The B105 Electronic Systems Lab has an electronic access system in its door based on a Radio Frequency Identification (RFID) card reader. This system was developed more than 12 years ago so the technology it uses is obsolete and several of its features are out of use. The development of this degree project is intended to implement an alternative to this access control system based on Near Field Communication (NFC) technology.

The RFID system requires the use of physical cards, which are easily misplaced and force the user to carry them around with him/her to enter the laboratory. To solve this problem, the new system allows the users to open the door using their smartphone. This makes it even easier to enter the laboratory, as users always have their mobile phone with them. In addition, users are assigned specific entry times, providing greater security and a better access control to the laboratory.

There is an equipment reservation management service in the laboratory that already has a database of members, an application and an administration website. Therefore, these resources have been used to facilitate the implementation of the new system and avoid data replication on the server.

Once the system has been implemented, any user who is registered in the system and has certain permissions can open the door by bringing their mobile phone closer to the reader. To achieve this, the existing access system has been built on and relevant technologies have been studied.

The development and implementation work has been divided into three blocks: the NFC reader, the application and the server. The reader, integrated into the door opening system, acts as an intermediary between the application and the server. On the other hand, the application only has to emulate the access card and send the entry request. Then, the server evaluates this request checking the user information and its database and it sends a response to the reader. Depending on the message received, the reader opens the door or not and finally informs the user of the decision.

TFG: Design and implementation of a network of low-resources wireless nodes for the decoding and the reproduction of audio

fotoplacacompleta (1)

In recent years, the consumption of multimedia content on the Internet has increased substantially. However, there are devices without Internet access that would be interesting if they could play this content, such as loudspeakers. It would also add value if it were a low-resource device, which would have a direct impact on its cost. This TFG aimed to design and implement a network of low-resources wireless nodes for the reception, decoding and playback of MP3 audio within a multipoint communications network.

This work continued the development of the system carried out in a previous TFG, which is described on this post. The system consisted of a transmitter located into a computer and several receivers, each one of them located into a esp8266 chip. The transmitter sent codified audio to a multicast direction, which could be received the receptor chips connected to his same Wi-Fi network, to be decoded and reproduced.

The first objective was to improve the reproduction audio quality of the system. To achieve this, a MP3 decoder chip module was integrated to work as a slave system controlled by the esp8266. After that, audio tests were then carried out to check the similarity between sent and received audio.

The second objective was to provide configurability to the system. A software tool was developed, which set the esp8266 as an access point. If the user connected to it, a configuration website was deployed. This site had a form where the user may write the SSID and the password of a Wi-Fi network. After that, the esp8266 connected to that Wi-Fi network, and started the codified audio reception.

The last objective of this TFG was the design and the implementation of a hardware prototype of the node which included the two modules. For this purpose, a printed circuit board has been designed and manufactured, consisting of the necessary elements to connect all the modules of the system. The resulting PCB and the the final version of the node, connected with the esp8266, can be seen in the pictures below.


fotoplacacompleta (1)

The Twelve of B105 – Customized Foosball


Llegan las vacaciones, y qué mejor manera de empezar que disfrutando de un nuevo número de…


Y volvemos nada menos que con uno de los iconos del grupo: el futbolín. Tras una década con nosotros, este ya indispensable miembro del laboratorio ha sido objeto de múltiples mejoras y experimentos (véase su historia).

Mucho tiempo ha pasado desde el primer (y ahora arcaico) sistema para contabilizar los goles. Algunas de las últimas mejoras son:

Red inalámbrica de sensores/actuadores en el futbolín.  Las funcionalidades soportadas por esta red incluyen la gestión de la iluminación, detección de goles, lectura de huellas dactilares (ver TFG asociado), medición de la velocidad de la bola, etc.

Nuevas funcionalidades en la Raspberry Pi. Además del control de la pantalla táctil, esta plataforma actúa como nodo pasarela de la red de sensores/actuadores, registra las estadísticas de jugadores y equipos, e incluso envía notificaciones de los resultados a Slack y Twitter. Por otro lado, incorporamos una cámara para grabar las últimas jugadas, evitando así acaloradas discusiones.

Enlace con otros sistemas del AMIB105 (Ambient Intelligence). Periódicamente se transmite información de estadísticas de juego y replays.

Futbolín -Esquema (2)

Y aquí termina nuestro número de julio. Mientras esperáis al mes que viene, podéis echar un ojo a temáticas anteriores en el siguiente enlace.

¡Hasta el mes que viene!





The augmentation in the number of risk situations and accidents has caused an increase in the number of spinal cord injuries. These injuries cause plexias and paralysis of the different members of the affected person. This problem has made it necessary to start looking for possible therapies to enhance the lives of patients. One of these solutions is Functional Electrical Stimulation (FES). FES is a technique based on the use of electrical stimulation of the motor nerves in order to generate a functional movement such as walking or picking up an object. This technique involves a series of stimulation parameters that are necessary to control: the stimulation amplitude, the stimulation frequency, the pulse width that composes the stimulation pattern and the waveform of the signal. The objective of this End-of-Degree Project was the development of a platform that allows the electrical stimulation of the motor nerves and the control of the stimulation parameters.

The device designed in this project is constituted by a hardware part and a software part. The stimulator is composed of a series of modules: amplifier module, signal generation module and human-device interface. The signal generation module allows us to control the stimulation parameters through the designed software. Additionally, it is necessary to design an amplification module so that the signals generated have the voltage and current levels necessary for stimulation. The power supply module is responsible for the power supply of the amplifier module and the signal generation module. The interface between the device and the user is based on surface electrodes connected to the output of the amplifier module. The different modules and their components are implemented on a printed circuit board (PCB) that will support and join the modules.

The future of functional electrical stimulation is the creation of closed systems to control the stimulation parameters according to the position of the muscles. Two possible routes can be taken: the use of sensors such as accelerometers and the creation of brain-personal interfaces.

TFM: Design, implementation and testing of controllers for USB 2.0 communication between a software-defined radio system and a PC

The hardware platforms used in this work. Our custom designed PCB, at the center of the image, acts as an interfacing platform.

Massive and rapidly increasing use of wireless devices is raising concerns about eventual saturation of the available spectrum in wireless communications, known as the spectrum scarcity problem. This issue is especially relevant for power- and resource-constrained devices, even more when considering the largely variable and adverse environmental conditions radio channels are usually subject to.  Considering the case of a network of sensor nodes, a smart approach to face this problem is the use of Cognitive Wireless Sensor Networks (CWSNs), which consist in networks capable of modifying their communication parameters depending on the environmental conditions.

One of the ongoing research lines of the B105 Electronic Systems Lab focuses on the development of low-power CWSNs by designing sensor nodes using a Software-Defined Radio system (SDR). Specifically, an architecture based on the Atmel AT86RF215 transceiver and the SmartFusion2 System-on-Chip (SoC) is used to carry out certain cognitive tasks.

The specific objective of this project was to implement communication between the aforementioned elements and a personal computer (PC). To achieve that, a Printed Circuit Board (PCB) was developed to serve as an interface platform between the different hardware elements in the system. Then, the controllers required to manage communication between the transceiver, which acts as data source, and the PC, which is the receiver, are implemented on the FPGA embedded in the SmartFusion2 SoC.

For the successful realization of this project it was necessary to carry out both hardware and software development tasks. In addition, the programming languages C and VHDL were used, as well as the communication standard protocols Serial Peripheral Interface (SPI) and Low Voltage Differential Signaling (LVDS).

TFG: Analysis and design of an energy harvesting system for human body

shoe sole

The aim of this project, was to design a functional prototype for the transformation of energy based on the principle of piezoelectricity, in order to harvest the energy produced. After some research, this is determined to be the best postulate to generate electrical power at a low scale for applications in electrical systems that require low voltage power supply, working as a stand-alone power to charge both, medical and electronic devices.

When a piezoelectric material is exposed to mechanical deformation, a voltage is produced. The theoretical behaviour can be appreciated in the following image:


Therefore, the energy that can be harvested depends on two factors: the properties of the piezoelectric material and the amount of deformation applied to the material.

Some of the materials that show piezoelectricity are: quartz, lead zirconate titanate (PZT), aluminum nitride (AlN), zinc oxide (ZnO) and polyvinylidene fluoride (PVDF).

The special property of these piezoelectrics is that it allows them to convert physical energy into electricity, AC. However, we need DC, not AC to power devices. This problem can be solved creating a rectifier bridge with diodes to convert the power from AC to DC, and thus be able to use it.

Although piezoelectric elements generate a lot of voltage, they do not generate many amps. We can solve this problem by wiring all the piezoelectric elements in parallel

Taking into account all the mentioned above, the prototype that has been created is formed by 7 PZT piezoelectrics of 35 mm diameter, as shown in the picture at the top pf the page.

Finally, it has been proved, when charging some capacitors, that it is better to have the shoe sole outside, placed on a smooth surface (as a carpet) and then making pressure on them. In such a way, the most relevant results were obtained. The capacitors were charged more quickly than while walking with the shoe sole inside. The order of magnitude of the power generated by this assembly was mW, and the energy generated was in the order of mJ.




In the last years, the Vehicular Ad hoc Networks or VANET’s are gaining relevance in order to improve traffic management and road safety. In addition, autonomous cars technology has been a boost for VANET’s research in recent years. One of the main services provided by a VANET is the localization support with a  Global Position System or GPS. However, the GPS has an error of 3 to 7 meters, a better accuracy may be necessary in some applications. Moreover, in areas with no GPS coverage like tunnels there would not be any localization support. Therefore, another localization method should be implemented to improve accuracy and coverage, which is the main purpose of this project.

In this degree project, a VANET has been used to provide vehicle localization. However, conventional VANETs devices are very expensive and have very large power consumption, so we use a Wireless Sensor Network or WSN as a low-cost and low-power alternative. WSN’s are similar to wireless ad hoc networks, but they have a lower cost. However, these resource-constraint networks does not allow implementing complex algorithms.

The localization algorithm selected in this project is the Fuzzy Ring-Overlapping Range-Free or FRORF. It has been modified so it could be implemented in resource-constraint nodes with low computational capabilities. This algorithm has been implemented in wireless nodes developed by the B105  Electronic Systems Lab and several tests have been performed in different scenarios. The position of the vehicle has been obtained in these scenarios and has been compared with the position obtained from a commercial GPS module.

With the results it is possible to conclude that the implemented algorithm has an error of 1 to 9 meters. This error is similar to the GPS error, so the FRORF algorithm can provide a reasonable position of a car. Althougth the accuracy needed for a VANETs is not solved, the algorithm provides localization in interior areas. This advance is very important as localization support services may be provided in zones without GPS coverage.

The Twelve Of B105: Intelligent TAGs


Y para esta nueva entrega de….


… hablaremos del estado de otro de los proyectos en los que estamos trabajando.

Éste se basa en el uso de etiquetas inteligentes activas que almacenan información sobre la señal vial y el entorno que le rodea, como por ejemplo, el estado de la carretera. El esquema de cada una de éstas es el que puede verse en la imagen de abajo.


El sistema deberá encenderse periódicamente para detectar si hay alguien cercano pidiendo datos. La cercanía a la cual los datos pueden ser obtenidos por un receptor es uno de los problemas que encontramos al implementar este tipo de sistema, ya que el receptor puede estar en movimiento, debiendo poder realizarse la lectura/escritura desde un vehículo a cierta velocidad.

La gran diferencia con respecto a las etiquetas pasivas es que necesitan energía para poder funcionar, el cual es el otro problema que encontramos, porque los sistemas tienen que funcionar de forma autónoma durante varios años. Para ello, existen las técnicas de Energy Harvesting, las cuales se fundamentan en obtener energía del medio que está desaprovechada normalmente.

La técnica más implementada por el momento es la que permite obtener energía solar. Sin embargo, si buscamos la innovación en este tipo de técnicas, encontramos la energía de la radio frecuencia, dónde se pretende utilizar la energía de las ondas que se propagan por el aire; la energía mecánica que pretende utilizar las vibraciones y el flujo del aire; y la energía térmica, que intenta aprovechar los cambios de temperatura que hay en el entorno.

Esta energía debe no solo ser suficiente para alimentar el sistema, sino también para ser almacenada en baterías o supercondensadores, garantizando así el funcionamiento del sistema en condiciones límites. La elección de uno u otro dependerá de muchos factores, como la cantidad de energía generada, el tiempo en generarla, la cantidad de energía que necesitaría el sistema y cada cuanto. Aunque, preferiblemente, preferiríamos utilizar supercondensadores.

Como ya sabéis, podéis leer más sobre nuestros otros trabajos consultando los antiguos posts. También estamos en las redes sociales (@elb105) y en el edificio B, salas 104 y 105. ¡No seáis tímidos, os esperamos!

STM32F4: Depuración con OpenOCD de programas con múltiples hebras


Dentro de la serie de publicaciones relacionadas con la placa de desarrollo STM32F411-DISCOVERY, hoy os traemos un breve tutorial para activar la opción de soporte de RTOS del depurador OpenOCD, que es el que viene por defecto con el entorno de desarrollo SW4STM32. Esta opción facilita enormemente la depuración de programas en los que existen múltiples hebras corriendo en paralelo, ya que en cada paso nos proporciona información del estado de cada una de ellas. Esta técnica se conoce como thread awareness. Los sistemas operativos soportados por OpenOCD a día de hoy son: FreeRTOS, Linux, ChibiOS, embKernel, eCos, ThreadX, mqx y uCOS-III.

Para activar esta opción, que por defecto viene deshabilitada, debemos seguir los siguientes pasos:

1.- Editar el fichero stm32f4x.cfg, o el correspondiente a nuestro microcontrolador de la serie STM32, añadiendo la opción -rtos auto en la siguiente línea:

Este fichero se encuentra en la siguiente ruta:


2.- En Debug Configurations, en la pestaña de Startup, hay que cambiar la función donde se pone el breakpoint inicial al lanzar la depuración. Por defecto, esta función es main(), pero para que esta opción funcione correctamente, necesitamos que la función en la que pare sea posterior a la inicialización y puesta en marcha del sistema operativo, es decir, debe ser una función dentro de una hebra.

Figura 1. Captura de Debug Configurations. En este caso el punto de parada se pone en la función InitTask_main, que es la primera función de la primera hebra que se lanza.
Figura 1. Captura de Debug Configurations. En este caso el punto de parada se pone en la función InitTask_main, que es la primera función de la primera hebra que se lanza.


3.- Por último, al menos para el caso concreto de FreeRTOS, hay que añadir la siguiente línea en el fichero en el que se halle la función en la que hemos fijado el punto de parada anterior. En concreto, hay que colocarlo en las declaraciones globales, de forma que pueda ser leída por el depurador. De lo contrario, fallará al intentar parar la ejecución.

Esto se debe a que, en versiones anteriores de FreeRTOS, la variable uxTopUsedPriority contenía el máximo nivel de prioridad de las tareas, necesario al adquirir la información de las mismas. Esta variable cambió de nombre, pero los desarrolladores de OpenOCD aún no lo han corregido.


Una vez hayamos hecho todo lo anterior, al lanzar la depuración debemos poder ver todas nuestras hebras en la ventana de Debug.

Imagen 2. Captura de la ventana de Debug con el soporte de RTOS de OpenOCD activado.
Imagen 2. Captura de la ventana de Debug con el soporte de RTOS de OpenOCD activado.


Puede ser que, en ocasiones, sea necesario parar la ejecución antes de que se llegue a la función fijada en el punto 2, o pararla en cualquier momento antes del inicio del planificador del sistema operativo. En estos casos, será necesario revertir el argumento del paso 1 para desactivar el thread awareness, ya que si no lo hacemos OpenOCD fallará al intentar leer las hebras.

The Twelve Of B105: Augmented Reality


Ha pasado un mes más, y con él llega otra entrega más de…


… en la que aprovecharemos para ahondar en otra temática de actualidad: la realidad aumentada.

Esta tecnología y relacionadas (conocidas como RX – realidad virtual, mixta, aumentada –) se introducen discretamente en nuestro día a día, impulsadas por gigantes de la talla de Microsoft, Google, Intel o Apple. Sólo echando una ojeada en las webs de Intel o Qualcomm podemos observar algunos de los últimos avances en el sector, los cuales probablemente disfrutemos con nuestro próximo smartphone, consola, etc.


El continuo desarrollo de dichas tecnologías RX nos deja en herencia dispositivos muy versátiles, algunos de los cuales ya está aprovechando nuestro grupo. En esta línea, el proyecto LAZARO utiliza Google Tango para la detección y caracterización de barreras arquitectónicas en edificios. Con la aplicación desarrollada, y un smartphone compatible, un operario podría realizar de forma sencilla e intuitiva medidas clave de las instalaciones, y caracterizar así el grado de accesibilidad para personas con movilidad reducida.

A día de hoy, seguimos valorando aplicar este y otros tantos avances de este campo en nuestra labor. Para saber más sobre nuestro trabajo, tanto en esta línea como en otras tantas descritas en números pasados, recordad que podéis visitarnos en las redes sociales, o contactar con nosotros directamente. ¡Os esperamos!